【发布时间】:2016-01-03 21:21:47
【问题描述】:
我有点卡在空格上的解析器组合器上。即使关键字是“keywordandthererestofthestream”中的前缀,它们也会使用关键字。此外,identifier = rep1("a") 将a a 中的两个字母作为单个aa 使用。这些信息表明我需要进行一些词法分析,并且可以将解析器组合器堆叠在词法分析器的顶部。
我看到有一个特殊的Lexical 解析器来服务于这个目的。但是为什么实际上这个解析器用于标记化呢?重点是什么?为什么更有优势?它的EOL 和whitespace 方法有什么意义?它是否与我在RegexParsers 中看到的skipWhitespace 有关?此外,我找不到任何将解析器堆叠在词法分析器之上的示例。在我看来,更高级别的 RegexParsers 使用Input,这是一个字符流。怎么可能是令牌流?
顺便说一句,是否可以在其中构建位置跟踪 (line:col)?
【问题讨论】:
标签: scala scanning parser-combinators combinators