Как импортировать грамматику из пути в другую грамматику? - PullRequest
0 голосов
/ 11 июля 2019

У меня проблема с импортом файла грамматики в другой файл грамматики из другой папки, как описано ниже:

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"и кажется, что грамматика не может распознать импортированную грамматику.

Я написал эту грамматику в VSCode для Windows.

Было бы замечательно, если бы кто-то предложил мне решение.Заранее спасибо

...