diff --git a/rsin_parser.ll b/rsin_parser.ll index 23e010d..5c8249a 100644 --- a/rsin_parser.ll +++ b/rsin_parser.ll @@ -53,6 +53,7 @@ blank [ \t] "]" return token::RSB; "<" return token::LAB; ">" return token::RAB; +":" return token::COL; ";" return token::SEMICOL; "," return token::COMMA; "->" return token::RARR; diff --git a/rsin_parser.yy b/rsin_parser.yy index 6fbfa41..08722df 100644 --- a/rsin_parser.yy +++ b/rsin_parser.yy @@ -46,7 +46,7 @@ class rsin_driver; %token REACTIONS INITIALCONTEXTS CONTEXTENTITIES RSCTLFORM %token CONTEXTAUTOMATON STATES TRANSITIONS -%token LCB RCB LRB RRB LSB RSB LAB RAB SEMICOL COMMA RARR +%token LCB RCB LRB RRB LSB RSB LAB RAB COL SEMICOL COMMA RARR %token AND OR XOR IMPLIES NOT %token EX EU EF EG AX AU AF AG E A X U F G EMPTY @@ -176,20 +176,36 @@ actentity: IDENTIFIER { ctxaut: | STATES LCB autstates RCB ctxaut - | TRANSITIONS LCB auttrans RCB ctxaut + | TRANSITIONS LCB auttransitions RCB ctxaut ; autstate: IDENTIFIER { } + ; autstates: - | autstate + autstate | autstate COMMA autstates ; -auttrans: +auttransitions: + | auttrans + | auttrans SEMICOL auttransitions ; +auttrans: LCB contextset RCB COL autstate RARR autstate + ; + +contextset: + ctxentity + | contextset COMMA ctxentity + ; + +ctxentity: IDENTIFIER { + // + } + ; + /* formulae */ bool_contexts: IDENTIFIER {