Commit 08f2eeb0 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ fixed parsing issues for select union #67

+ added features to preserve continue/break statemets
+ added features to preserve referenced components/all in stop tc statement
parent 63ab1bfc
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@ BehaviourStatements:
	testcase=TestcaseInstance | function=FunctionInstance | return=ReturnStatement | alt=AltConstruct |
	interleaved=InterleavedConstruct | label=LabelStatement | goto=GotoStatement | {BehaviourStatements} REPEATSTATEMENT
	| deactivate=DeactivateStatement | altstep=AltstepInstance | activate=ActivateOp | {BehaviourStatements}
	BREAKSTATEMENT | {BehaviourStatements} CONTINUESTATEMENT;
	break=BREAKSTATEMENT | {BehaviourStatements} continue=CONTINUESTATEMENT;

ActivateOp:
	ACTIVATEKEYWORD LPAREN altstep=AltstepInstance RPAREN;
@@ -526,7 +526,7 @@ KillTCStatement:
	KILLKEYWORD);

StopTCStatement:
	{StopTCStatement} STOPKEYWORD | (ComponentReferenceOrLiteral | {StopTCStatement} ALLKEYWORD COMPONENTKEYWORD) DOT
	{StopTCStatement} STOPKEYWORD | (ref=ComponentReferenceOrLiteral | {StopTCStatement} all=ALLKEYWORD COMPONENTKEYWORD) DOT
	STOPKEYWORD;

ComponentReferenceOrLiteral:
@@ -1261,7 +1261,7 @@ Initial:
	variable=VarInstance | assignment=Assignment;

SelectCaseConstruct:
	SELECTKEYWORD LPAREN expression=SingleExpression RPAREN body=SelectCaseBody;
	SELECTKEYWORD (union=UNIONKEYWORD)? LPAREN expression=SingleExpression RPAREN body=SelectCaseBody;

SelectCaseBody:
	LBRACKET (cases+=SelectCase)+ RBRACKET;