我有一个问题,要从另一个文件夹将一个语法文件导入另一个语法文件,如下所述:
TimeInterval.g4包含以下代码:
parser grammar TimeInterval;
// time
timeival: time '-' time;
time:
hour (am | pm)?
| hour ':' minute ( am | pm)?
| noon
| midnight;
hour: DIGIT DIGIT?;
minute: DIGIT DIGIT?;
noon: '12'? 'NOON';
midnight: '12'? 'MIDNIGHT';
am: 'A' | 'AM' | 'am';
pm: 'P' | 'PM' | 'pm';
grammar Seattle;
import TimeInterval;
parkRules: parkRule ( ( ',')? parkRule)*;
parkRule:
normalRule;
// normal parking type
normalRule:
timespec+ payModel;
payModel:
'PAY'
| 'PAY' '@' ('PS' | 'P' 'S')
| 'PAY' 'AT' 'PAY' 'STATION'
| 'PAY' 'TO' 'PARK';
timespec:
timeival+ daysIndicator;
daysIndicator:
'EVERYDAY'
| 'ALL' 'DAYS'
| 'ANYTIME'
| '24' 'HOURS' 'EVERYDAY'
| 'SUNDAYS';
我可以使用以下命令来编译语法: antlr4 -Dlanguage = JavaScript Seattle.g4 如果TimeInterval.g4与Seattle保存在同一文件夹中,则不会出现任何错误.g4是,但是如果我将TimeInterval.g4保存在libs文件夹中,则会在“ Seattle.g4:214:1:引用未定义的规则:timeival ”时出错,并且语法似乎无法识别导入的语法。
我在Windows上的VSCode中编写了此语法。
如果有人建议我一个解决方案,那将很棒。 预先感谢