我正在尝试获取令牌列表(我对关键字最感兴趣)以及他们对给定scala源文件的位置。
我认为scala编译器中有一个lexer实用程序,但我找不到它。你能指出我正确的方向吗?
答案 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可能有助于您在此处尝试实现的目标,特别是如果您以后不仅仅是在关键字解析中进行了解释。