From c2f374a8a5de155a235caf02736c0089c75583b1 Mon Sep 17 00:00:00 2001 From: Rebecca Ghidini Date: Thu, 13 Feb 2025 13:25:10 +0100 Subject: [PATCH] added the working set to the grammar --- core/grammar/kappaParser.mly | 4 ++-- core/grammar/kparser4.mly | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core/grammar/kappaParser.mly b/core/grammar/kappaParser.mly index f6d33bed4..8874c1bd7 100644 --- a/core/grammar/kappaParser.mly +++ b/core/grammar/kappaParser.mly @@ -70,8 +70,8 @@ start_rule: | instruction newline { fun c -> let r = $2 c in match $1 with - | Ast.RULE ru -> - {r with Ast.rules = ru::r.Ast.rules} + | Ast.RULE (label, guard, rule, _) -> + {r with Ast.rules = (label, guard, rule)::r.Ast.rules} | Ast.SIG ag -> {r with Ast.signatures=ag::r.Ast.signatures} | Ast.TOKENSIG (str_pos) -> diff --git a/core/grammar/kparser4.mly b/core/grammar/kparser4.mly index 67bd1b718..a127c265c 100644 --- a/core/grammar/kparser4.mly +++ b/core/grammar/kparser4.mly @@ -802,12 +802,19 @@ perturbation_declaration: ($1,None,e,post) } ; +working_set: + | LABEL annoted rule working_set + { add (let guard, rule = $3 in Ast.RULE(Some ($1, rhs_pos 1),guard, rule, true)) } + | rule working_set { let guard,rule = $1 in add (Ast.RULE (None, guard, rule, true)) } + | { } + sentence: | LABEL annoted rule - { add (let guard, rule = $3 in Ast.RULE(Some ($1, rhs_pos 1),guard, rule)) } + { add (let guard, rule = $3 in Ast.RULE(Some ($1, rhs_pos 1),guard, rule, false)) } | LABEL annoted EQUAL annoted alg_expr { let (v,_,_) = $5 in add (Ast.DECLARE (($1,rhs_pos 1),v)) } - | rule { let guard,rule = $1 in add (Ast.RULE (None, guard, rule)) } + | rule { let guard,rule = $1 in add (Ast.RULE (None, guard, rule, false)) } + | WORKING_SET annoted OP_BRA annoted working_set CL_BRA annoted {} | SIGNATURE annoted agent_sig { let (a,_,_) = $3 in add (Ast.SIG a) } | SIGNATURE annoted error { raise