我想生成Pascal
java解析器,然后在我的gradle
应用程序中使用它。
对于Pascal
,我使用了这个语法
https://github.com/antlr/grammars-v4/tree/master/pascal
我的build.gradle
看起来像这样。我使用了antlr
插件。
apply plugin: 'groovy'
apply plugin: 'antlr'
repositories {
jcenter()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.4.6'
compile 'org.antlr:antlr4:4.5.3'
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
testCompile 'junit:junit:4.12'
}
但是当我尝试运行任务generateGrammarSource
时,我收到此错误
:generateGrammarSource
L:\app\src\main\antlr\pascal.g4:36:1: unexpected token: grammar
error: Token stream error reading grammar(s):
L:\app\src\main\antlr\pascal.g4:804:8: expecting ''', found '='
L:\app\src\main\antlr\pascal.g4:36:1: unexpected token: grammar
error: Token stream error reading grammar(s):
L:\app\src\main\antlr\pascal.g4:804:8: expecting ''', found '='
L:\app\src\main\antlr\pascal.g4:36:1: rule grammar trapped:
L:\app\src\main\antlr\pascal.g4:36:1: unexpected token: grammar
TokenStreamException: expecting ''', found '='
:generateGrammarSource FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':generateGrammarSource'.
> There was 1 error during grammar generation
> ANTLR Panic: TokenStreamException: expecting ''', found '='
这是什么问题?
答案 0 :(得分:1)
来自https://docs.gradle.org/current/userguide/antlr_plugin.html#sec:antlr_dependency_management
的插件文档" antlr:antlr:2.7.7将用作默认值。"
更改此内容只需说明要使用的版本
dependencies {
//antlr "org.antlr:antlr:3.5.2" // use ANTLR version 3
antlr "org.antlr:antlr4:4.5" // use ANTLR version 4
}