如何从一个路径导入一个语法到另一个语法?

时间:2019-07-11 08:37:45

标签: import visual-studio-code antlr4 context-free-grammar

我有一个问题,要从另一个文件夹将一个语法文件导入另一个语法文件,如下所述:

enter image description here

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';
  而我的Seattle.g4包含以下代码:

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中编写了此语法。

如果有人建议我一个解决方案,那将很棒。 预先感谢

0 个答案:

没有答案