Scala的编译器词法分析器

时间:2012-01-22 09:52:08

标签: scala

我正在尝试获取令牌列表(我对关键字最感兴趣)以及他们对给定scala源文件的位置。

我认为scala编译器中有一个lexer实用程序,但我找不到它。你能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:5)

标准库中提供了simple lexer for a Scala-like language

一个小型实用程序,它使用与编译器相同的词法分析器来标记Scala源lives here

答案 1 :(得分:2)

Scalariform有一个准确的Scala词法分析器,你可以使用:

import scalariform.lexer._
val tokens = ScalaLexer.rawTokenise("class A", forgiveErrors = true)
val keywords = tokens.find(_.tokenType.isKeyword)
val comments = tokens.find(_.tokenType.isComment)

答案 2 :(得分:1)

Parser Combinators可能有助于您在此处尝试实现的目标,特别是如果您以后不仅仅是在关键字解析中进行了解释。