Commit 70fc1632 authored by Daniel Honsel's avatar Daniel Honsel
Browse files

replaced rule ArrayIdentifierRef by corresponding ones according to old antlr implementation

parent 2d737b0c
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -410,18 +410,22 @@ FunctionActualParList:
	asssign+=FunctionActualParAssignment)*);

FunctionActualParAssignment:
	template=TemplateInstanceAssignment | component=ComponentRefAssignment | array=ArrayIdentifierRefAssignment;
	template=TemplateInstanceAssignment | component=ComponentRefAssignment | port=PortRefAssignment |
	timer=TimerRefAssignment;

	// FormalValuePar according to antlr implementation
ComponentRefAssignment:
	ref=[FormalValuePar|IDENTIFIER] ASSIGNMENTCHAR value=ComponentRef;

	//TODO: check ref
ArrayIdentifierRefAssignment:
	name=IDENTIFIER ASSIGNMENTCHAR value=ArrayIdentifierRef;
PortRefAssignment:
	port=[FormalPortPar|IDENTIFIER] ASSIGNMENTCHAR value=PortRef;

TimerRefAssignment:
	timer=[FormalTimerPar|IDENTIFIER] ASSIGNMENTCHAR value=[TimerVarInstance|IDENTIFIER];

FunctionActualPar:
	idRef=ArrayIdentifierRef | template=InLineTemplate | component=ComponentRef | {FunctionActualPar} MINUS;
	template=InLineTemplate | component=ComponentRef | timer=[TimerVarInstance|IDENTIFIER] | port=PortRef |
	{FunctionActualPar} MINUS;

ComponentRef:
	ref=ComponentOrDefaultReference | system=SYSTEMKEYWORD | self=SELFOP | mtc=MTCKEYWORD;
@@ -455,10 +459,6 @@ TimerRefOrAny:
TimerRefOrAll:
	ref=[TimerVarInstance|IDENTIFIER] | {TimerRefOrAll} ALLKEYWORD timer=TIMERKEYWORD;

//TODO: references
 ArrayIdentifierRef:
	name=IDENTIFIER arryRefs+=ArrayOrBitRef*;

BasicStatements:
	log=LogStatement | block=StatementBlock | loop=LoopConstruct | conditional=ConditionalConstruct |
	select=SelectCaseConstruct | assign=Assignment;
@@ -557,16 +557,16 @@ ClearStatement:
	port=PortOrAll DOT CLEAROPKEYWORD;

PortOrAll:
	ref=ArrayIdentifierRef | {PortOrAll} ALLKEYWORD PORTKEYWORD;
	port=[PortElement|IDENTIFIER] arrayRefs+=ArrayOrBitRef* | {PortOrAll} ALLKEYWORD PORTKEYWORD;

RaiseStatement:
	array=ArrayIdentifierRef DOT op=PortRaiseOp;
	port=[PortElement|IDENTIFIER] arrayRefs+=ArrayOrBitRef* DOT op=PortRaiseOp;

PortRaiseOp:
	RAISEKEYWORD LPAREN signature=[SignatureDef|QualifiedIdentifier] COMMA template=InLineTemplate RPAREN to=ToClause?;

ReplyStatement:
	array=ArrayIdentifierRef DOT op=PortReplyOp;
	port=[PortElement|IDENTIFIER] arrayRefs+=ArrayOrBitRef* DOT op=PortReplyOp;

PortReplyOp:
	REPLYKEYWORD LPAREN template=InLineTemplate value=ReplyValue? RPAREN to=ToClause?;
@@ -575,7 +575,7 @@ ReplyValue:
	VALUEKEYWORD expr=Expression;

CallStatement:
	array=ArrayIdentifierRef DOT op=PortCallOp body=PortCallBody?;
	port=[PortElement|IDENTIFIER] arrayRefs+=ArrayOrBitRef* DOT op=PortCallOp body=PortCallBody?;

PortCallOp:
	CALLOPKEYWORD LPAREN params=CallParameters RPAREN to=ToClause?;
@@ -1074,7 +1074,7 @@ ExtendedFieldReference:

RefValue:
	SingleConstDef | ModuleParameter | FieldReference | FormalTemplatePar | SingleTempVarInstance | Enumeration |
	FunctionRef | TimerVarInstance | FormalPortPar | BaseTemplate;
	FunctionRef | TimerVarInstance | FormalPortPar;

	// IDENTIFIER omitted
PredefinedValue:
@@ -1179,7 +1179,7 @@ RunningTimerOp:
	timerRef=TimerRefOrAny DOT RUNNINGKEYWORD;

ReadTimerOp:
	arrayRed=ArrayIdentifierRef DOT READKEYWORD;
	timer=[TimerVarInstance|IDENTIFIER] DOT READKEYWORD;

PermutationMatch:
	PERMUTATIONKEYWORD list=ListOfTemplates;