Commit b0f823d8 authored by Daniel Honsel's avatar Daniel Honsel
Browse files

fixed some grammar issues

+ parsing test suite LTE_A_IWD_14wk37 without errors is possible, now
+ bad performance
+ if all references can be resolved needs to be tested
parent 67b7653e
Loading
Loading
Loading
Loading
+19 −17
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ ConstDef:
	CONSTKEYWORD type=Type defs=ConstList;

Type:
	pre=PredefinedType | ref=[ReferencedType|QualifiedIdentifier];
	pre=PredefinedType | ref=[ReferencedType|QualifiedIdentifier] extensions+=ExtendedFieldReference*;

ArrayDef:
	(SQUAREOPEN expr+=SingleExpression (RANGEOP range+=SingleExpression)? SQUARECLOSE)+;
@@ -239,7 +239,7 @@ GotoStatement:
	GOTOKEYWORD name=IDENTIFIER;

ReturnStatement:
	RETURNKEYWORD (Expression | InLineTemplate);
	{ReturnStatement} RETURNKEYWORD (expression=Expression | template=InLineTemplate)?;

InterleavedConstruct:
	INTERLEAVEDKEYWORD LBRACKET InterleavedGuardList RBRACKET;
@@ -257,7 +257,7 @@ AltConstruct:
	ALTKEYWORD LBRACKET agList=AltGuardList RBRACKET;

AltGuardList:
	{AltGuardList} (guardList+=GuardStatement | elseList+=ElseStatement)* SEMICOLON?;
	{AltGuardList} ((guardList+=GuardStatement | elseList+=ElseStatement) SEMICOLON?)*;

ElseStatement:
	SQUAREOPEN ELSEKEYWORD SQUARECLOSE block=StatementBlock;
@@ -365,7 +365,7 @@ ReceiveStatement:

	// TODO: extend with other possible references
PortOrAny:
	ref=[PortElement|IDENTIFIER] | {PortOrAny} ANYKEYWORD PORTKEYWORD;
	ref=[PortElement|IDENTIFIER] array=ArrayOrBitRef? | {PortOrAny} ANYKEYWORD PORTKEYWORD;

PortReceiveOp:
	{PortReceiveOp} RECEIVEOPKEYWORD (LPAREN template=InLineTemplate RPAREN)? from=FromClause? redirect=PortRedirect?;
@@ -431,7 +431,7 @@ ComponentRef:
	ref=ComponentOrDefaultReference | system=SYSTEMKEYWORD | self=SELFOP | mtc=MTCKEYWORD;

ComponentOrDefaultReference:
	variable=VariableRef | function=FunctionInstance /*| preFunction=PreDefFunction*/;
	variable=VariableRef /*| function=FunctionInstance /*| preFunction=PreDefFunction*/;

TestcaseInstance:
	EXECUTEKEYWORD LPAREN ref=[TestcaseDef|QualifiedIdentifier] LPAREN tcParams=TestcaseActualParList? RPAREN (COMMA
@@ -530,7 +530,7 @@ SingleConnectionSpec:
	LPAREN port1=PortRef COMMA port2=PortRef RPAREN;

PortRef:
	component=ComponentRef COLON port=[PortElement|IDENTIFIER];
	component=ComponentRef COLON port=[PortElement|IDENTIFIER] array=ArrayOrBitRef?;

CommunicationStatements:
	send=SendStatement | call=CallStatement | reply=ReplyStatement | raise=RaiseStatement | receive=ReceiveStatement |
@@ -936,9 +936,10 @@ RunningOp:
	ComponentId DOT RUNNINGKEYWORD;

OpCall:
	configuration=ConfigurationOps | verdict=GETLOCALVERDICT | timer=TimerOps | function=FunctionInstance |
	preFunction=PreDefFunction | testcase=TestcaseInstance | activate=ActivateOp | templateOps=TemplateOps
	fieldTemplate+=ExtendedFieldReference* | field+=ExtendedFieldReference+;
	configuration=ConfigurationOps | verdict=GETLOCALVERDICT | timer=TimerOps | function=FunctionInstance
	extendedFunction+=ExtendedFieldReference* | preFunction=PreDefFunction | testcase=TestcaseInstance |
	activate=ActivateOp | templateOps=TemplateOps extendedTemplate+=ExtendedFieldReference* |
	field+=ExtendedFieldReference+;

AliveOp:
	ComponentId DOT ALIVEKEYWORD;
@@ -954,7 +955,7 @@ Signature:
	ref=[SignatureDef|QualifiedIdentifier];

TemplateInstanceAssignment:
	name=IDENTIFIER ASSIGNMENTCHAR template=InLineTemplate;
	name=[BaseTemplate|IDENTIFIER] ASSIGNMENTCHAR template=InLineTemplate;

TemplateInstanceActualPar:
	InLineTemplate | {TemplateInstanceActualPar} MINUS;
@@ -1080,7 +1081,7 @@ ExtendedFieldReference:
// SingleVarInstance contained in TimerVarInstance (according to EBNF rules)
RefValue:
	SingleConstDef | ModuleParameter | FieldReference | FormalTemplatePar | SingleTempVarInstance | Enumeration |
	FunctionRef | TimerVarInstance | FormalPortPar;
	FunctionRef | TimerVarInstance | FormalPortPar | PortElement;

	// IDENTIFIER omitted
PredefinedValue:
@@ -1153,7 +1154,7 @@ GroupRefList:
	groups+=[GroupDef|QualifiedIdentifier] (COMMA groups+=[GroupDef|QualifiedIdentifier])*;

TTCN3Reference:
	ReferencedType | RefValue | TestcaseDef | AltstepDef | SignatureDef | PortElement | LabelStatement | GotoStatement;
	ReferencedType | RefValue | TestcaseDef | AltstepDef | SignatureDef | LabelStatement | GotoStatement;

TTCN3ReferenceList:
	refs+=[TTCN3Reference|IDENTIFIER] (COMMA refs+=[TTCN3Reference|IDENTIFIER])*;
@@ -1260,8 +1261,9 @@ RunsOnSpec:
ReturnType:
	RETURNKEYWORD (TEMPLATEKEYWORD | RestrictedTemplate)? type=Type;

	//TODO: try to remove extra=ExtraMatchingAttributes? from this rule 
Assignment:
	ref=VariableRef ASSIGNMENTCHAR (expression=Expression | body=TemplateBody);
	ref=VariableRef ASSIGNMENTCHAR (expression=Expression | body=TemplateBody) extra=ExtraMatchingAttributes?;

VariableRef:
	ref=ReferencedValue /*ext+=ExtendedFieldReference*/;
@@ -1908,7 +1910,7 @@ terminal fragment STRING_DOUBLEQUOTE:
terminal fragment CHAR:
	EXTENDED_ALPHA_NUM | LPAREN | RPAREN | LBRACKET | RBRACKET | SQUAREOPEN | SQUARECLOSE | ' ' | QUESTIONMARK | STAR |
	BACKSLASH | SLASH | MINUS | PLUS | SHARP | AT | COLON | STRINGOP | '=' | GREATERTHAN | LESSTHAN | PERCENT |
	DOLLAR | SINGLEQUOTE | '|' | SEMICOLON;
	DOLLAR | SINGLEQUOTE | '|' | SEMICOLON | CIRCUMFLEX;

terminal HSTRING returns ecore::EString:
	SINGLEQUOTE HEX* SINGLEQUOTE 'H';