简体   繁体   English

帕斯卡语法上的恐慌

[英]antlr panic on pascal grammar

I want to generate Pascal java parser and then use it in my gradle application. 我想生成Pascal java解析器,然后在我的gradle应用程序中使用它。

For Pascal I used this grammar https://github.com/antlr/grammars-v4/tree/master/pascal 对于Pascal我使用了这个语法https://github.com/antlr/grammars-v4/tree/master/pascal

My build.gradle looks like this. 我的build.gradle看起来像这样。 I used antlr plugin. 我用过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'
}

But when I try to run task generateGrammarSource I get this error 但是当我尝试运行task 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 '='

What it is the problem? 这是什么问题?

from the plug in docs at https://docs.gradle.org/current/userguide/antlr_plugin.html#sec:antlr_dependency_management 来自插件文档https://docs.gradle.org/current/userguide/antlr_plugin.html#sec:antlr_dependency_management

"antlr:antlr:2.7.7 will be used as the default." “antlr:antlr:2.7.7将被用作默认值。”

to change this simply say which version to use as below 要改变这个,只需说出要使用的版本,如下所示

dependencies {
    //antlr "org.antlr:antlr:3.5.2" // use ANTLR version 3
    antlr "org.antlr:antlr4:4.5" // use ANTLR version 4
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM