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

improved parsing of CSTRING

parent 553bae9a
Loading
Loading
Loading
Loading
+17 −16
Original line number Diff line number Diff line
@@ -688,8 +688,8 @@ PortDefAttribs:
	message=MessageAttribs | procedure=ProcedureAttribs | mixed=MixedAttribs;

MixedAttribs:
	{MixedAttribs} MIXEDKEYWORD LBRACKET ((addressDecls+=AddressDecl | mixedLists+=MixedList | configDefs+=ConfigParamDef) SEMICOLON?)+
	RBRACKET;
	{MixedAttribs} MIXEDKEYWORD LBRACKET ((addressDecls+=AddressDecl | mixedLists+=MixedList |
	configDefs+=ConfigParamDef) SEMICOLON?)+ RBRACKET;

MixedList:
	Direction list=ProcOrTypeList;
@@ -835,7 +835,8 @@ PatternParticle:
	{PatternParticle} CSTRING | ReferencedValue;

TemplateDef:
	TEMPLATEKEYWORD restriction=TemplateRestriction? base=BaseTemplate derived=DerivedDef? ASSIGNMENTCHAR body=TemplateBody;
	TEMPLATEKEYWORD restriction=TemplateRestriction? base=BaseTemplate derived=DerivedDef? ASSIGNMENTCHAR
	body=TemplateBody;

DerivedDef:
	MODIFIESKEYWORD template=[BaseTemplate|QualifiedIdentifier];
@@ -968,7 +969,7 @@ LogStatement:
	LOGKEYWORD LPAREN item+=LogItem (COMMA item+=LogItem)* RPAREN;

LogItem:
	{LogItem} FREE_TEXT | InLineTemplate;
	text=FREE_TEXT | template=InLineTemplate;

Expression:
	SingleExpression | CompoundExpression;
@@ -1246,8 +1247,8 @@ FormalPortPar:
	INOUTPARKEYWORD? name=IDENTIFIER id=IDENTIFIER;

FormalTemplatePar:
	(inOut=(INPARKEYWORD | OUTPARKEYWORD | INOUTPARKEYWORD))? (TEMPLATEKEYWORD | restriction=RestrictedTemplate) type=Type
	name=IDENTIFIER (ASSIGNMENTCHAR (templ=InLineTemplate | MINUS))?;
	(inOut=(INPARKEYWORD | OUTPARKEYWORD | INOUTPARKEYWORD))? (TEMPLATEKEYWORD | restriction=RestrictedTemplate)
	type=Type name=IDENTIFIER (ASSIGNMENTCHAR (templ=InLineTemplate | MINUS))?;

RunsOnSpec:
	RUNSKEYWORD ONKEYWORD component=[ComponentDef|QualifiedIdentifier];
@@ -1869,6 +1870,14 @@ terminal fragment NUM:
terminal NUMBER:
	NUM+;

terminal CSTRING returns ecore::EString:
	DOUBLEQUTE CHAR* DOUBLEQUTE;

	// TODO: complete CHAR
terminal fragment CHAR:
	EXTENDED_ALPHA_NUM | LPAREN | RPAREN | LBRACKET | RBRACKET | SQUAREOPEN | SQUARECLOSE | ' ' | QUESTIONMARK | STAR |
	BACKSLASH | SLASH | SEMICOLON | MINUS | PLUS | SHARP | AT | COLON | STRINGOP | '=';

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

@@ -1878,20 +1887,12 @@ terminal OSTRING returns ecore::EString:
terminal BSTRING returns ecore::EString:
	SINGLEQUOTE BIN* SINGLEQUOTE 'B';

terminal CSTRING returns ecore::EString:
	DOUBLEQUTE CHAR* DOUBLEQUTE;

terminal fragment UPPERALPHA:
	'A'..'Z';

terminal fragment LOWERALPHA:
	'a'..'z';

	// TODO: complete CHAR
terminal fragment CHAR:
	EXTENDED_ALPHA_NUM | ' ' | QUESTIONMARK | STAR | BACKSLASH | SQUAREOPEN | SQUARECLOSE | SEMICOLON | MINUS | SHARP
	LPAREN | RPAREN | LBRACKET | RBRACKET | AT | COLON;

terminal fragment BIN:
	'0' | '1';