2
我想解析句子"i am looking for a java developer"
。我需要的輸出是language=java.
antlr從文件中讀取語法標記
我創建瞭如下的語法文件。
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
。
爲什麼你要在語法中做到這一點?爲什麼不解析'language'(在這個例子中是一個單一的標記作爲字符串)並讓程序使用輸入文件來檢查,如果語言是否被支持?再加上一個動作,你可以在你的語法中確保這個檢查。 – BeyelerStudios