Scala';编译词汇器
我试图获得一个给定scala源文件的令牌列表(我最感兴趣的是关键字)及其位置 我认为scala编译器中有一个lexer实用程序,但我找不到它。你能给我指出正确的方向吗?可能有助于你在这里实现的目标,特别是如果你以后不仅对关键字解析感兴趣。标准库中提供了一个 一个小型实用程序使用与编译器相同的lexer标记Scala源代码有一个精确的Scala lexer,您可以使用:Scala';编译词汇器,scala,Scala,我试图获得一个给定scala源文件的令牌列表(我最感兴趣的是关键字)及其位置 我认为scala编译器中有一个lexer实用程序,但我找不到它。你能给我指出正确的方向吗?可能有助于你在这里实现的目标,特别是如果你以后不仅对关键字解析感兴趣。标准库中提供了一个 一个小型实用程序使用与编译器相同的lexer标记Scala源代码有一个精确的Scala lexer,您可以使用: import scalariform.lexer._ val tokens = ScalaLexer.rawTokenise("
import scalariform.lexer._
val tokens = ScalaLexer.rawTokenise("class A", forgiveErrors = true)
val keywords = tokens.find(_.tokenType.isKeyword)
val comments = tokens.find(_.tokenType.isComment)
解析器组合器很棒,但是为scala重新创建完整的语法相当困难。我希望有现成的解决方案。它能给我scala本身的关键字和注释标记吗?@Rogach我已经添加了一个指向scala内部标记化程序的链接。看看来源,你就会知道怎么做。2018:链接断了。只有链接的答案被认为有问题是有原因的。。。