Antlr从文件中读取语法符号



我想解析句子"i am looking for a java developer"。输出是language=java.

创建了一个语法文件,如下所示。

grammar Job;
eval returns [String value]
    :    output=jobExp { $value = $output.text;}
    ;
jobExp returns [String value]
    :    ind=indro whitespace var1=language ' developer'  {$value = $var1.text;}
    ;
indro
    :
    'i am looking for a' |   'i am searching for a'
    ;
language :
    'java' | 'python' | 'cpp'
    ;
whitespace :
    (' '|'t')+
    ;

在这里,在规则language中,我在语法文件本身内硬编码一组语言。是否有可能从文件中读取语言并相应地处理语法?输入文件应该像这样

languages.txt

 java
 python
 cpp

我使用antlr 4.5.1-1

不太确定这是否完全满足您的问题,但请查看复合语法:

https://theantlrguy.atlassian.net/wiki/display/ANTLR3/Composite +语法

如果你真的需要它在一个文件中,考虑创建一个从languages.txt到languages的处理/构建步骤。语法和使用语言。

相关内容

  • 没有找到相关文章

最新更新