Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala';编译词汇器_Scala - Fatal编程技术网

Scala';编译词汇器

Scala';编译词汇器,scala,Scala,我试图获得一个给定scala源文件的令牌列表(我最感兴趣的是关键字)及其位置 我认为scala编译器中有一个lexer实用程序,但我找不到它。你能给我指出正确的方向吗?可能有助于你在这里实现的目标,特别是如果你以后不仅对关键字解析感兴趣。标准库中提供了一个 一个小型实用程序使用与编译器相同的lexer标记Scala源代码有一个精确的Scala lexer,您可以使用: import scalariform.lexer._ val tokens = ScalaLexer.rawTokenise("

我试图获得一个给定scala源文件的令牌列表(我最感兴趣的是关键字)及其位置

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

可能有助于你在这里实现的目标,特别是如果你以后不仅对关键字解析感兴趣。

标准库中提供了一个

一个小型实用程序使用与编译器相同的lexer标记Scala源代码

有一个精确的Scala lexer,您可以使用:

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:链接断了。只有链接的答案被认为有问题是有原因的。。。