Skip to content
Snippets Groups Projects
Commit 69a53431 authored by Sophie Coudert's avatar Sophie Coudert
Browse files

conflicts to remove...

parent 56ed8ace
Branches
No related tags found
4 merge requests!504merge first stable version of Avatar-SysML V2,!503merge the first stable version of the Avatar-SysML parser/generator,!501Avatar sys ml 04 2024,!498Avatar sys ml 04 2024 (first merge request, only for verification)
......@@ -15,7 +15,7 @@ terminal EQ, LPAR, RPAR, LBRAC, RBRAC, COMMA, SEMICOLON, COLON, POINT, EQUAL, GE
// Field names
terminal LOSSY_F, MAXSIZE_F, PRIVATE_F, RELATION_F, BLOCK1_F, BLOCK2_F, POOL_F, REQUEST_F, STATEACTION_F, INDEX_F,
PAYLOAD_F, CHANNEL_F, VALUE_F, TARGET_F, AMOUNT_U, START_U, DONE_U;
DELAY_F, PAYLOAD_F, CHANNEL_F, VALUE_F, TARGET_F, AMOUNT_U, START_U, DONE_U;
// Communications
terminal RELATION_T, SYNCREL_T, BFIFOREL_T, NBFIFOREL_T, INMESSAGE_T, OUTMESSAGE_T, CHANNEL_T, FIFO_T, BFIFO_T,
......@@ -34,7 +34,7 @@ terminal AVDATATYPE_T, AVBLOCK_T, AVVOIDMETHOD_T, AVCALCMETHOD_T, AVSTANDARDSTA
// Timers
terminal AVSETTIMERSTATE_T, AVRESETTIMERSTATE_T, AVEXPIRETIMERSTATE_T, SETTIMERREQUEST_T, RESETTIMERREQUEST_T,
EXPIRETIMEREQUEST_T, TIMERSETMSG_T, TIMERRESETMSG_T, TIMEREXPIREMSG_T, AVTIMER_T, SET_TM,
EXPIRETIMERREQUEST_T, TIMERSETMSG_T, TIMERRESETMSG_T, TIMEREXPIREMSG_T, AVTIMER_T, SET_TM,
RESET_TM, EXPIRE_TM;
// Typed and untyped identifiers
......@@ -50,67 +50,164 @@ terminal ABOUT, ABSTRACT, ACCEPT, ACTION, ACTOR, AFTER, ALIAS, ALL, ALLOCATE, AL
EXIT, EXPOSE, FILTER, FIRST, FLOW, FOR, FORK, FRAME, FROM, HASTYPE, IF, IMPLIES, IMPORT, IN, INCLUDE, INDIVIDUAL,
INOUT, INTERFACE, ISTYPE, ITEM, JOIN, LANGUAGE, LOOP, MERGE, MESSAGE, METADATA, NONUNIQUE, NOT, OBJECTIVE, OCCURRENCE,
OF, OR, ORDERED, OUT, PACKAGE, PARALLEL, PART, PERFORM, PORT, PRIVATE, PROTECTED, PUBLIC, READONLY, REDEFINES, REF,
REFERENCES, RENDER, RENDERING, REP, REQUIRE, REQUIREMENT, RETURN, SATISFY, SEND, SNAPSHOT, specializes, STAKEHOLDER,
REFERENCES, RENDER, RENDERING, REP, REQUIRE, REQUIREMENT, RETURN, SATISFY, SEND, SNAPSHOT, SPECIALIZES, STAKEHOLDER,
STATE, SUBJECT, SUBSETS, SUCCESSION, THEN, TIMESLICE, TO, TRANSITION, UNTIL, USE, VARIANT, VARIATION, VERIFICATION,
VERIFY, VIA, VIEW, VIEWPOINT, WHEN, WHILE, XOR, REFINES;
/* Non terminals */
non terminal featureList
non terminal IBSExpressions<Spec,Comp,State,SpecState,CompState>.Expr expr;
non terminal Integer iexpr, bexpr;
non terminal model, featureList, feature, specializes, subsets, blockAlias, blockChain, datatypeDecl, datatypeDeclHEADER,
fieldDecls, fieldDecl, typeIdent, relationDecl, syncRelDecl, nbfRelDecl, bfRelDecl, syncRelParams, syncRelParam,
fifoRelParams, fifoRelParam, block1Param, block2Param, privateParam, maxsizeParam, lossyParam, typIdent;
non terminal datatypename, blockname, attributename, relationname, channelprename, signalname, channelname, messagename,
standardstatename, startstatename, stopstatename, randomstatename, countstatename, sendstatename, receivestatename,
presendstatename, prereceivestatename, settimerstatename, resettimerstatename, expiretimerstatename, presettimerstatename,
preresettimerstatename, preexpiretimerstatename, timerblockname, statename;
non terminal channelDecl, syncChDecl , nbfChDecl, bfChDecl, signalBinding, inSignalBinding, outSignalBinding, signalChain,
messageDecl, inMessageDecl, outMessageRefines, outMessageDecl, inMessageDeclBODY, messageChannel, outMessageDeclBODY,
redefineField;
non terminal blockDecl, blockDeclBODY, blockItem, attributeDecl, attributeDeclHEADER, methodDecl, voidMethodDecl,
calcMethodDecl, calcMethodItems, calcMethodItem, signalDecl, timerDecl, stateMachine, stateMachineItems, stateMachineItem;
non terminal state, startState, standardState, stopState, sendState, receiveState, randomState, countState, presendState,
prereceiveState, setTimerState, resetTimerState, expireTimerState, poolParam, requestParam, requestList, request,
simpleRequest, trivialRequest, requestCommons, requestCommon, sendRequest, receiveRequest, setTimerRequest, resetTimerRequest,
expireTimerRequest, indexParam, delayParam, delayExpr, randomExpr, sendParam, payloadParam, channelParam, settimerParam,
resettimerParam, expiretimerParam;
non terminal randomAction, targetParam, randomParam, countAction, countParam, transition, transOptions, doActions, actions,
actionSeq, act, leftHand, signalBind, stringExprList;
/* Precedences croissantes (probably useless for the current grammar) */
precedence left OR;
precedence left AND;
datatypename ::= DATATYPENAME | AVATARNAME;
blockname ::= BLOCKNAME | AVATARNAME;
attributename ::= ATTRIBUTENAME | AVATARNAME;
relationname ::= RELATIONNAME | AVATARNAME;
channelprename ::= CHANNELPRENAME | AVATARNAME;
signalname ::= SIGNALNAMENAME | AVATARNAME;
channelname ::= CHANNELNAME | AVATARNAME;
messagename ::= MESSAGENAME | AVATARNAME;
standardstatename ::= STANDARDSTATENAME | AVATARNAME;
startstatename ::= STARTSTATENAME | AVATARNAME;
stopstatename ::= STOPSTATENAME | AVATARNAME;
randomstatename ::= RANDOMSTATENAME | AVATARNAME;
countstatename ::= COUNTSTATENAME | AVATARNAME;
sendstatename ::= SENDSTATENAME | AVATARNAME;
receivestatename ::= RECEIVESTATENAME | AVATARNAME;
presendstatename ::= PRESENDSTATENAME | AVATARNAME;
prereceivestatename ::= PRERECEIVESTATENAME | AVATARNAME;
settimerstatename ::= SETTIMERSTATENAME | AVATARNAME;
resettimerstatename ::= RESETTIMERSTATENAME | AVATARNAME;
expiretimerstatename ::= EXPIRETIMERSTATENAME | AVATARNAME;
presettimerstatename ::= PRESETTIMERSTATENAME | AVATARNAME;
preresettimerstatename ::= PRERESETTIMERSTATENAME | AVATARNAME;
preexpiretimerstatename ::= PREEXPIRETIMERSTATENAME | AVATARNAME;
timerblockname ::= TIMERBLOCKNAME | AVATARNAME;
stateName ::=
STANDARDSTATENAME
| STARTSTATENAME
| STOPSTATENAME
| RANDOMSTATENAME
| COUNTSTATENAME
| SENDSTATENAME
| RECEIVESTATENAME
| PRESENDSTATENAME
| PRERECEIVESTATENAME
| SETTIMERSTATENAME
| RESETTIMERSTATENAME
| EXPIRETIMERSTATENAME
| PRESETTIMERSTATENAME
| PRERESETTIMERSTATENAME
| PREEXPIRETIMERSTATENAME
| AVATARNAME
;
/* precedence left OR; precedence left AND; */
model ::= PACKAGE AVATARNAME LBRAC featureList RBRAC | PACKAGE AVATARNAME LBRAC RBRAC;
datatypename ::=
DATATYPENAME {: :}
| AVATARNAME {: :}
;
blockname ::=
BLOCKNAME {: :}
| AVATARNAME {: :}
;
attributename ::=
ATTRIBUTENAME {: :}
| AVATARNAME {: :}
;
relationname ::=
RELATIONNAME {: :}
| AVATARNAME {: :}
;
channelprename ::=
CHANNELPRENAME {: :}
| AVATARNAME {: :}
;
signalname ::=
SIGNALNAMENAME {: :}
| AVATARNAME {: :}
;
channelname ::=
CHANNELNAME {: :}
| AVATARNAME {: :}
;
messagename ::=
MESSAGENAME {: :}
| AVATARNAME {: :}
;
standardstatename ::=
STANDARDSTATENAME {: :}
| AVATARNAME {: :}
;
startstatename ::=
STARTSTATENAME {: :}
| AVATARNAME {: :}
;
stopstatename ::=
STOPSTATENAME {: :}
| AVATARNAME {: :}
;
randomstatename ::=
RANDOMSTATENAME {: :}
| AVATARNAME {: :}
;
countstatename ::=
COUNTSTATENAME {: :}
| AVATARNAME {: :}
;
sendstatename ::=
SENDSTATENAME {: :}
| AVATARNAME {: :}
;
receivestatename ::=
RECEIVESTATENAME {: :}
| AVATARNAME {: :}
;
presendstatename ::=
PRESENDSTATENAME {: :}
| AVATARNAME {: :}
;
prereceivestatename ::=
PRERECEIVESTATENAME {: :}
| AVATARNAME {: :}
;
settimerstatename ::=
SETTIMERSTATENAME {: :}
| AVATARNAME {: :}
;
resettimerstatename ::=
RESETTIMERSTATENAME {: :}
| AVATARNAME {: :}
;
expiretimerstatename ::=
EXPIRETIMERSTATENAME {: :}
| AVATARNAME {: :}
;
presettimerstatename ::=
PRESETTIMERSTATENAME {: :}
| AVATARNAME {: :}
;
preresettimerstatename ::=
PRERESETTIMERSTATENAME {: :}
| AVATARNAME {: :}
;
preexpiretimerstatename ::=
PREEXPIRETIMERSTATENAME {: :}
| AVATARNAME {: :}
;
timerblockname ::=
TIMERBLOCKNAME {: :}
| AVATARNAME {: :}
;
statename ::=
STANDARDSTATENAME {: :}
| STARTSTATENAME {: :}
| STOPSTATENAME {: :}
| RANDOMSTATENAME {: :}
| COUNTSTATENAME {: :}
| SENDSTATENAME {: :}
| RECEIVESTATENAME {: :}
| PRESENDSTATENAME {: :}
| PRERECEIVESTATENAME {: :}
| SETTIMERSTATENAME {: :}
| RESETTIMERSTATENAME {: :}
| EXPIRETIMERSTATENAME {: :}
| PRESETTIMERSTATENAME {: :}
| PRERESETTIMERSTATENAME {: :}
| PREEXPIRETIMERSTATENAME {: :}
| AVATARNAME {: :}
;
featureList ::= feature | feature featureList;
feature ::=
......@@ -141,7 +238,7 @@ datatypeDecl ::=
| datatypeDeclHEADER LBRAC RBRAC
;
datatypeDeclHEADER ::=
ATTRIBUTE DEF datatypename specializes AVDATATYPE
ATTRIBUTE DEF datatypename specializes AVDATATYPE_T
;
fieldDecls ::=
| fieldDecl
......@@ -169,7 +266,7 @@ syncRelParam ::=
| block2Param
| privateParam
;
syncRelParams ::= fifoRelParam | fifoRelParam COMMA fifoRelParams;
fifoRelParams ::= fifoRelParam | fifoRelParam COMMA fifoRelParams;
fifoRelParam ::=
| block1Param
| block2Param
......@@ -254,21 +351,27 @@ blockItem ::=
// ATTRIBUTE DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
attributeDecl ::=
attributeDeclHEADER SEMICOLON
| attributeDeclHEADER gets STRINGEXPR SEMICOLON
| attributeDeclHEADER GETS STRINGEXPR SEMICOLON
;
attributeDeclHEADER ::=
ATTRIBUTE attributename COLON typIdent {: setStringExpr(true); :}
ATTRIBUTE attributename COLON typIdent
;
typIdent ::=
INTEGER_T
| BOOLEAN_T
| datatypename
;
// METHOD DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
methodDecl ::= voidMethodDecl | calcMethodDecl;
voidMethodDecl ::=
ACTION attributename COLON AVATARVOIDMETHOD_T LBRAC RBRAC
| ACTION attributename COLON AVATARVOIDMETHOD_T LBRAC fieldDecls RBRAC
ACTION attributename COLON AVVOIDMETHOD_T LBRAC RBRAC
| ACTION attributename COLON AVVOIDMETHOD_T LBRAC fieldDecls RBRAC
;
calcMethodDecl ::=
CALC attributename COLON AVATARCALCMETHOD_T LBRAC RBRAC
| CALC attributename COLON AVATARCALCMETHOD_T LBRAC calcMethodItems RBRAC
CALC attributename COLON AVCALCMETHOD_T LBRAC RBRAC
| CALC attributename COLON AVCALCMETHOD_T LBRAC calcMethodItems RBRAC
;
calcMethodItems ::=
calcMethodItem
......@@ -286,7 +389,7 @@ signalDecl ::=
;
// TIMER DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
timerDecl ::= PART timerblockname COLON AVATARTIMER_T = AVATARTIMER_T LPAR RPAR SEMICOLON
timerDecl ::= PART timerblockname COLON AVTIMER_T EQUAL AVTIMER_T LPAR RPAR SEMICOLON
;
// STATE MACHINE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......@@ -365,11 +468,11 @@ expireTimerState ::=
// STATES PARAMETERS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
// REQUESTS ++++++++++++++++++++++++++++++++++++
poolParam ::= POOL EQUAL requestList;
requestParam ::= REQUEST EQUAL request;
poolParam ::= POOL_F EQUAL requestList;
requestParam ::= REQUEST_F EQUAL request;
requestList ::= request | request COMMA requestList;
request ::=
IF STRINGEXPR simpleRequest ELSE NOREQUEST_U LPAR INT RPAR
IF STRINGEXPR simpleRequest ELSE NOKREQUEST_U LPAR INT RPAR
| simpleRequest
;
simpleRequest ::= trivialRequest | sendRequest | receiveRequest
......@@ -378,44 +481,44 @@ simpleRequest ::= trivialRequest | sendRequest | receiveRequest
trivialRequest ::=
IMMEDIATEREQUEST_U
| TRIVIALREQUEST_T LPAR RPAR
| TRIVIALREQUEST_T LPAR requestParams RPAR
| TRIVIALREQUEST_T LPAR requestCommons RPAR
;
requestParams ::= requestParam | requestParam requestParams;
requestParam ::= indexParam | delayParam;
requestCommons ::= requestCommon | requestCommon requestCommons;
requestCommon ::= indexParam | delayParam;
sendRequest ::=
SENDREQUEST_T LPAR sendParam RPAR
| SENDREQUEST_T LPAR sendParam COMMA requestParams RPAR
| SENDREQUEST_T LPAR requestParams COMMA sendParam RPAR
| SENDREQUEST_T LPAR requestParam COMMA sendParam COMMA requestParam RPAR
| SENDREQUEST_T LPAR sendParam COMMA requestCommons RPAR
| SENDREQUEST_T LPAR requestCommons COMMA sendParam RPAR
| SENDREQUEST_T LPAR requestCommon COMMA sendParam COMMA requestCommon RPAR
;
receiveRequest ::=
RECEIVEREQUEST_T LPAR channelParam RPAR
| RECEIVEREQUEST_T LPAR channelParam COMMA requestParams RPAR
| RECEIVEREQUEST_T LPAR channelParams COMMA channelParam RPAR
| RECEIVEREQUEST_T LPAR requestParam COMMA channelParam COMMA requestParam RPAR
| RECEIVEREQUEST_T LPAR channelParam COMMA requestCommons RPAR
| RECEIVEREQUEST_T LPAR requestCommons COMMA channelParam RPAR
| RECEIVEREQUEST_T LPAR requestCommon COMMA channelParam COMMA requestCommon RPAR
;
setTimerRequest ::=
SETTIMERREQUEST_T LPAR settimerParam RPAR
| SETTIMERREQUEST_T LPAR settimerParam COMMA requestParams RPAR
| SETTIMERREQUEST_T LPAR requestParams COMMA settimerParam RPAR
| SETTIMERREQUEST_T LPAR requestParam COMMA settimerParam COMMA requestParam RPAR
| SETTIMERREQUEST_T LPAR settimerParam COMMA requestCommons RPAR
| SETTIMERREQUEST_T LPAR requestCommons COMMA settimerParam RPAR
| SETTIMERREQUEST_T LPAR requestCommon COMMA settimerParam COMMA requestCommon RPAR
;
resetTimerRequest ::=
RESETTIMERREQUEST_T LPAR resettimerParam RPAR
| RESETTIMERREQUEST_T LPAR resettimerParam COMMA requestParams RPAR
| RESETTIMERREQUEST_T LPAR requestParams COMMA resettimerParam RPAR
| RESETTIMERREQUEST_T LPAR requestParam COMMA resettimerParam COMMA requestParam RPAR
| RESETTIMERREQUEST_T LPAR resettimerParam COMMA requestCommons RPAR
| RESETTIMERREQUEST_T LPAR requestCommons COMMA resettimerParam RPAR
| RESETTIMERREQUEST_T LPAR requestCommon COMMA resettimerParam COMMA requestCommon RPAR
;
expireTimerRequest ::=
| EXPIRETIMERREQUEST_T LPAR expiretimerParam RPAR
| EXPIRETIMERREQUEST_T LPAR expiretimerParam COMMA requestParams RPAR
| EXPIRETIMERREQUEST_T LPAR requestParams COMMA expiretimerParam RPAR
| EXPIRETIMERREQUEST_T LPAR requestParam COMMA expiretimerParam COMMA requestParam RPAR
| EXPIRETIMERREQUEST_T LPAR expiretimerParam COMMA requestCommons RPAR
| EXPIRETIMERREQUEST_T LPAR requestCommons COMMA expiretimerParam RPAR
| EXPIRETIMERREQUEST_T LPAR requestCommon COMMA expiretimerParam COMMA requestCommon RPAR
;
indexParam ::= INDEX EQUAL INT;
delayParam ::= DELAY EQUAL delayExpr;
indexParam ::= INDEX_F EQUAL INT;
delayParam ::= DELAY_F EQUAL delayExpr;
delayExpr ::=
STRINGEXPR
| randomExpr
......@@ -429,29 +532,33 @@ sendParam ::=
;
payloadParam ::= PAYLOAD_F EQUAL messagename LPAR stringExprList RPAR;
channelParam ::= CHANNEL_F EQUAL channelname;
settimerParam ::= CHANNEL_F EQUAL timername POINT SET_TM;
resettimerParam ::= CHANNEL_F EQUAL timername POINT RESET_TM;
expiretimerParam ::= CHANNEL_F EQUAL timername POINT EXPIRE_TM;
settimerParam ::= CHANNEL_F EQUAL timerblockname POINT SET_TM;
resettimerParam ::= CHANNEL_F EQUAL timerblockname POINT RESET_TM;
expiretimerParam ::= CHANNEL_F EQUAL timerblockname POINT EXPIRE_TM;
stringExprList ::=
STRINGEXPR
| stringExprList COMMA STRINGEXPR
;
// STATE ACTIONS ++++++++++++++++++++++++++++++++++++
randomAction ::=
STATEACTION_F EQUAL ASSIGNMENT_T LPAR targetParam COMMA randomParam RPAR
| STATEACTION_F EQUAL ASSIGNMENT_T LPAR randomParam COMMA targetParam RPAR
;
targetParam ::= TARGET_F EQUAL attributeName;
targetParam ::= TARGET_F EQUAL attributename;
randomParam ::= VALUE_F EQUAL randomExpr;
countAction ::=
STATEACTION_F EQUAL ASSIGNMENT_T LPAR targetParam COMMA countParam RPAR
| STATEACTION_F EQUAL ASSIGNMENT_T LPAR countParam COMMA targetParam RPAR
;
countParam ::= VALUE_F EQUAL signalName POINT AMOUNT_U LPAR RPAR;
countParam ::= VALUE_F EQUAL signalname POINT AMOUNT_U LPAR RPAR;
// TRANSITIONS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
transition ::=
TRANSITION COLON AVTRANSITION_T FIRST stateName THEN stateName SEMICOLON
| TRANSITION COLON AVTRANSITION_T FIRST stateName transOptions THEN stateName SEMICOLON
TRANSITION COLON AVTRANSITION_T FIRST statename THEN statename SEMICOLON
| TRANSITION COLON AVTRANSITION_T FIRST statename transOptions THEN statename SEMICOLON
;
transOptions ::=
IF INDEX_F EQ INT
......@@ -467,14 +574,14 @@ actions ::=
| FIRST START_U SEMICOLON actionSeq THEN DONE_U SEMICOLON
;
actionSeq ::=
THEN action SEMICOLON
| actionSeq THEN action SEMICOLON
THEN act SEMICOLON
| actionSeq THEN act SEMICOLON
;
action ::=
act ::=
ASSIGN leftHand GETS STRINGEXPR SEMICOLON
| ACTION STRINGEXPR SEMICOLON
;
leftHand ::=
attributeName
attributename
| leftHand POINT AVATARNAME
;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment