From 30b62c88c6952120ae7ef563a16260b8b2ea01e5 Mon Sep 17 00:00:00 2001 From: Artur Meski Date: Sat, 14 Apr 2018 22:10:56 +0100 Subject: [PATCH] rsCTL PVs: process_name.entity_name. --- formrsctl.hh | 7 +++++-- rsin_parser.ll | 1 + rsin_parser.yy | 12 +++++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/formrsctl.hh b/formrsctl.hh index baddbde..f83a709 100644 --- a/formrsctl.hh +++ b/formrsctl.hh @@ -74,14 +74,16 @@ class BoolContexts Oper oper; BoolContexts *arg[2]; std::string name; + std::string proc_name; bool tf; public: - BoolContexts(std::string varName) + BoolContexts(std::string procName, std::string varName) { oper = BCTX_PV; name = varName; + proc_name = procName; arg[0] = nullptr; arg[1] = nullptr; } @@ -167,9 +169,10 @@ class FormRSCTL * @param varName variable name used mostly for printing the variable. * @param varBDD the BDD describing the set where the variable holds. */ - FormRSCTL(std::string varName) + FormRSCTL(std::string procName, std::string varName) { oper = RSCTL_PV; + proc_name = procName; entity_name = varName; arg[0] = nullptr; arg[1] = nullptr; diff --git a/rsin_parser.ll b/rsin_parser.ll index 8bf8600..3bd41f0 100644 --- a/rsin_parser.ll +++ b/rsin_parser.ll @@ -60,6 +60,7 @@ blank [ \t] ">" return token::RAB; ":" return token::COL; ";" return token::SEMICOL; +"." return token::DOT; "," return token::COMMA; "->" return token::RARR; "AND" return token::AND; diff --git a/rsin_parser.yy b/rsin_parser.yy index a702f17..fdf79b2 100644 --- a/rsin_parser.yy +++ b/rsin_parser.yy @@ -47,7 +47,7 @@ class rsin_driver; %token OPTIONS USE_CTX_AUT USE_CONCENTRATIONS %token REACTIONS INITIALCONTEXTS CONTEXTENTITIES RSCTLFORM %token CONTEXTAUTOMATON STATES INITSTATE TRANSITIONS -%token EQ LCB RCB LRB RRB LSB RSB LAB RAB COL SEMICOL COMMA RARR +%token EQ LCB RCB LRB RRB LSB RSB LAB RAB COL SEMICOL DOT COMMA RARR %token AND OR XOR IMPLIES NOT %token EX EU EF EG AX AU AF AG E A X U F G EMPTY @@ -259,9 +259,10 @@ ctxentity: IDENTIFIER { /* formulae */ -bool_contexts: IDENTIFIER { - $$ = new BoolContexts(*$1); +bool_contexts: IDENTIFIER DOT IDENTIFIER { + $$ = new BoolContexts(*$1, *$3); free($1); + free($3); } | NOT bool_contexts { $$ = new BoolContexts(BCTX_NOT, $2); @@ -315,9 +316,10 @@ f_entity: IDENTIFIER { } ; -rsctl_form: IDENTIFIER { - $$ = new FormRSCTL(*$1); +rsctl_form: IDENTIFIER DOT IDENTIFIER { + $$ = new FormRSCTL(*$1, *$3); free($1); + free($3); } | NOT rsctl_form { $$ = new FormRSCTL(RSCTL_NOT, $2);