summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-18 16:49:08 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-18 16:49:08 +0200
commited73a9c85743c96c90d5a76e5a613dfac90ffc4c (patch)
tree3b80ffae2e01c3b328ed4891c950ff380e4ea5d0 /instr-to-kodkod/parser
parent1d0b2f2214941f97ed8f457a052e6c59904e120c (diff)
Antlr now creates the associated Java files.
Next step is to get those to compile.
Diffstat (limited to 'instr-to-kodkod/parser')
-rw-r--r--instr-to-kodkod/parser/PropertyParser.g4186
1 files changed, 110 insertions, 76 deletions
diff --git a/instr-to-kodkod/parser/PropertyParser.g4 b/instr-to-kodkod/parser/PropertyParser.g4
index 4aeeffc..5394570 100644
--- a/instr-to-kodkod/parser/PropertyParser.g4
+++ b/instr-to-kodkod/parser/PropertyParser.g4
@@ -44,13 +44,14 @@ tag_item:
;
id_list
- returns [List<Variable> list]:
+ returns [List<Variable> list]
@init
{
final List<Variable> result = new ArrayList<Variable>();
}
+ :
(
(WS)+
var=ID
@@ -69,7 +70,7 @@ id_list
/******************************************************************************/
sl_predicate
- return [Formula result]:
+ returns [Formula result]:
(WS)* L_PAREN
ID
@@ -78,22 +79,24 @@ sl_predicate
{
/* TODO */
+ result = null;
}
;
sl_non_empty_formula_list
- returns [List<Formula> list]:
+ returns [List<Formula> list]
@init
{
final List<Formula> result = new ArrayList<Formula>();
}
+ :
(
sl_formula
{
- result.add($sl_formula);
+ result.add(($sl_formula.result));
}
)+
@@ -113,7 +116,7 @@ sl_and_operator
{
/* TODO */
- $result = $sl_formula.and($sl_non_empty_formula_list);
+ $result = ($sl_formula.result).and(($sl_non_empty_formula_list.list));
}
;
@@ -127,7 +130,7 @@ sl_or_operator
{
/* TODO */
- $result = $sl_formula.or($sl_non_empty_formula_list);
+ $result = ($sl_formula.result).or(($sl_non_empty_formula_list.list));
}
;
@@ -140,7 +143,7 @@ sl_not_operator
{
/* TODO */
- $result = $sl_formula.not();
+ $result = ($sl_formula.result).not();
}
;
@@ -154,7 +157,7 @@ sl_implies_operator
{
/* TODO */
- $result = $a.implies($b);
+ $result = ($a.result).implies(($b.result));
}
;
@@ -171,14 +174,14 @@ sl_exists_operator
{
/* TODO */
$result =
- $f.forSome
+ ($f.result).forSome
(
VARIABLE_SET.get_variable
(
- $var
- ).oneOf
+ ($var.text)
+ ).in
(
- MODEL.get_type_as_relation($type)
+ MODEL.get_type_as_relation(($type.text))
)
);
}
@@ -196,14 +199,14 @@ sl_forall_operator
{
/* TODO */
$result =
- $f.forAll
+ ($f.result).forAll
(
VARIABLE_SET.get_variable
(
- $var.text
- ).oneOf
+ ($var.text)
+ ).in
(
- MODEL.get_type_as_relation($type)
+ MODEL.get_type_as_relation(($type.text))
)
);
}
@@ -211,7 +214,7 @@ sl_forall_operator
/** Special Expressions *******************************************************/
sl_ctl_verifies_operator
- returns [Formula result]:
+ returns [Formula result]
@init
{
@@ -220,6 +223,7 @@ sl_ctl_verifies_operator
root_node = VARIABLE_SET.generate_new_state_variable();
}
+ :
(WS)* CTL_VERIFIES_OPERATOR_KW
ps=ID
f=bl_formula[root_node]
@@ -229,13 +233,13 @@ sl_ctl_verifies_operator
/* TODO */
$result =
- $f.forSome
+ ($f.result).forSome
(
root_node.oneOf
(
MODEL.get_type_as_relation("node").in
(
- VARIABLE_SET.get_variable($ps).join
+ VARIABLE_SET.get_variable(($ps.text)).join
(
MODEL.get_predicate_as_relation("start_node")
)
@@ -251,60 +255,75 @@ sl_formula
sl_predicate
{
- $result = $predicate;
+ $result = ($sl_predicate.result);
}
| sl_and_operator
{
- $result = $sl_and_operator;
+ $result = ($sl_and_operator.result);
}
| sl_or_operator
{
- $result = $sl_or_operator;
+ $result = ($sl_or_operator.result);
}
| sl_not_operator
{
- $result = $sl_not_operator;
+ $result = ($sl_not_operator.result);
}
| sl_implies_operator
{
- $result = $sl_implies_operator;
+ $result = ($sl_implies_operator.result);
}
| sl_exists_operator
{
- $result = $sl_exists_operator;
+ $result = ($sl_exists_operator.result);
}
| sl_forall_operator
{
- $result = $sl_forall_operator;
+ $result = ($sl_forall_operator.result);
}
| sl_ctl_verifies_operator
{
- $result = $sl_ctl_verifies_operator;
+ $result = ($sl_ctl_verifies_operator.result);
}
;
/******************************************************************************/
/** Behavioral Level **********************************************************/
/******************************************************************************/
+bl_predicate [Variable current_state]
+ returns [Formula result]:
+
+ (WS)* L_PAREN
+ ID
+ id_list
+ (WS)* R_PAREN
+
+ {
+ /* TODO */
+ result = null;
+ }
+;
+
bl_formula_list [Variable current_state]
- returns [List<Formula> list]:
+ returns [List<Formula> list]
@init
{
final List<Formula> result = new ArrayList<Formula>();
}
+ :
(
bl_formula[current_state]
{
- result.add($bl_formula);
+ result.add(($bl_formula.result));
}
)+
@@ -324,7 +343,7 @@ bl_and_operator [Variable current_state]
{
/* TODO */
- $result = $bl_formula.and($bl_formula_list);
+ $result = ($bl_formula.result).and(($bl_formula_list.list));
}
;
@@ -338,7 +357,7 @@ bl_or_operator [Variable current_state]
{
/* TODO */
- $result = $bl_formula.or($bl_formula_list);
+ $result = ($bl_formula.result).or(($bl_formula_list.list));
}
;
@@ -351,7 +370,7 @@ bl_not_operator [Variable current_state]
{
/* TODO */
- $result = $bl_formula.not();
+ $result = ($bl_formula.result).not();
}
;
@@ -365,13 +384,13 @@ bl_implies_operator [Variable current_state]
{
/* TODO */
- $result = $a.implies($b);
+ $result = ($a.result).implies(($b.result));
}
;
/**** Computation Tree Logic Expressions **************************************/
bl_ax_operator [Variable current_state]
- returns [Formula result]:
+ returns [Formula result]
@init
{
@@ -380,6 +399,7 @@ bl_ax_operator [Variable current_state]
next_state = VARIABLE_SET.generate_new_state_variable();
}
+ :
(WS)* AX_OPERATOR_KW
bl_formula[next_state]
(WS)* R_PAREN
@@ -387,7 +407,7 @@ bl_ax_operator [Variable current_state]
{
/* TODO */
$result =
- $bl_formula.forAll
+ ($bl_formula.result).forAll
(
next_state.in
(
@@ -401,7 +421,7 @@ bl_ax_operator [Variable current_state]
;
bl_ex_operator [Variable current_state]
- returns [Formula result]:
+ returns [Formula result]
@init
{
@@ -410,6 +430,7 @@ bl_ex_operator [Variable current_state]
next_state = VARIABLE_SET.generate_new_state_variable();
}
+ :
(WS)* EX_OPERATOR_KW
bl_formula[next_state]
(WS)* R_PAREN
@@ -417,7 +438,7 @@ bl_ex_operator [Variable current_state]
{
/* TODO */
$result =
- $bl_formula.forSome
+ ($bl_formula.result).forSome
(
next_state.in
(
@@ -431,7 +452,7 @@ bl_ex_operator [Variable current_state]
;
bl_ag_operator [Variable current_state]
- returns [Formula result]:
+ returns [Formula result]
@init
{
@@ -440,6 +461,7 @@ bl_ag_operator [Variable current_state]
next_state = VARIABLE_SET.generate_new_state_variable();
}
+ :
(WS)* AG_OPERATOR_KW
bl_formula[next_state]
(WS)* R_PAREN
@@ -447,7 +469,7 @@ bl_ag_operator [Variable current_state]
{
/* TODO */
$result =
- $bl_formula.forAll
+ ($bl_formula.result).forAll
(
next_state.in
(
@@ -467,7 +489,7 @@ bl_ag_operator [Variable current_state]
;
bl_eg_operator [Variable current_state]
- returns [Formula result]:
+ returns [Formula result]
@init
{
@@ -477,6 +499,7 @@ bl_eg_operator [Variable current_state]
chosen_path = VARIABLE_SET.generate_new_state_variable();
}
+ :
(WS)* EG_OPERATOR_KW
bl_formula[next_state]
(WS)* R_PAREN
@@ -484,7 +507,7 @@ bl_eg_operator [Variable current_state]
{
/* TODO */
$result =
- $bl_formula.forAll
+ ($bl_formula.result).forAll
(
next_state.in
(
@@ -510,7 +533,7 @@ bl_eg_operator [Variable current_state]
;
bl_af_operator [Variable current_state]
- returns [Formula result]:
+ returns [Formula result]
@init
{
@@ -520,6 +543,7 @@ bl_af_operator [Variable current_state]
chosen_path = VARIABLE_SET.generate_new_state_variable();
}
+ :
(WS)* AF_OPERATOR_KW
bl_formula[next_state]
(WS)* R_PAREN
@@ -527,7 +551,7 @@ bl_af_operator [Variable current_state]
{
/* TODO */
$result =
- $bl_formula.forSome
+ ($bl_formula.result).forSome
(
next_state.in
(
@@ -553,7 +577,7 @@ bl_af_operator [Variable current_state]
;
bl_ef_operator [Variable current_state]
- returns [Formula result]:
+ returns [Formula result]
@init
{
@@ -563,6 +587,7 @@ bl_ef_operator [Variable current_state]
chosen_path = VARIABLE_SET.generate_new_state_variable();
}
+ :
(WS)* EF_OPERATOR_KW
bl_formula[next_state]
(WS)* R_PAREN
@@ -570,7 +595,7 @@ bl_ef_operator [Variable current_state]
{
/* TODO */
$result =
- $bl_formula.forSome
+ ($bl_formula.result).forSome
(
next_state.in
(
@@ -596,7 +621,7 @@ bl_ef_operator [Variable current_state]
;
bl_au_operator [Variable current_state]
- returns [Formula result]:
+ returns [Formula result]
@init
{
@@ -607,6 +632,7 @@ bl_au_operator [Variable current_state]
chosen_path = VARIABLE_SET.generate_new_state_variable();
}
+ :
(WS)* AU_OPERATOR_KW
f1=bl_formula[f1_state]
f2=bl_formula[f2_state]
@@ -615,7 +641,7 @@ bl_au_operator [Variable current_state]
{
/* TODO */
$result =
- $f1.forAll
+ ($f1.result).forAll
(
f1_state.in
(
@@ -627,6 +653,9 @@ bl_au_operator [Variable current_state]
).transpose()
)
);
+ ).and
+ (
+ ($f2.result)
).forSome
(
f2_state.in
@@ -650,7 +679,7 @@ bl_au_operator [Variable current_state]
;
bl_eu_operator [Variable current_state]
- returns [Formula result]:
+ returns [Formula result]
@init
{
@@ -661,6 +690,7 @@ bl_eu_operator [Variable current_state]
chosen_path = VARIABLE_SET.generate_new_state_variable();
}
+ :
(WS)* EU_OPERATOR_KW
f1=bl_formula[f1_state]
f2=bl_formula[f2_state]
@@ -669,7 +699,7 @@ bl_eu_operator [Variable current_state]
{
/* TODO */
$result =
- $f1.forAll
+ ($f1.result).forAll
(
f1_state.in
(
@@ -681,6 +711,8 @@ bl_eu_operator [Variable current_state]
).transpose()
)
);
+ ).and(
+ ($f2.result)
).forSome
(
f2_state.in
@@ -704,57 +736,59 @@ bl_eu_operator [Variable current_state]
;
/**** Formula Definition ******************************************************/
-bl_formula returns [Formula result]:
- predicate
+bl_formula [Variable current_state]
+ returns [Formula result]:
+
+ bl_predicate[current_state]
{
- $result = $predicate;
+ $result = ($bl_predicate.result);
}
- | bl_and_operator
+ | bl_and_operator[current_state]
{
- $result = $bl_and_operator;
+ $result = ($bl_and_operator.result);
}
- | bl_or_operator
+ | bl_or_operator[current_state]
{
- $result = $bl_or_operator;
+ $result = ($bl_or_operator.result);
}
- | bl_not_operator
+ | bl_not_operator[current_state]
{
- $result = $bl_not_operator;
+ $result = ($bl_not_operator.result);
}
- | bl_implies_operator
+ | bl_implies_operator[current_state]
{
- $result = $bl_implies_operator;
+ $result = ($bl_implies_operator.result);
}
- | bl_ax_operator
+ | bl_ax_operator[current_state]
{
- $result = $bl_ax_operator;
+ $result = ($bl_ax_operator.result);
}
- | bl_ex_operator
+ | bl_ex_operator[current_state]
{
- $result = $bl_ex_operator;
+ $result = ($bl_ex_operator.result);
}
- | bl_ag_operator
+ | bl_ag_operator[current_state]
{
- $result = $bl_ag_operator;
+ $result = ($bl_ag_operator.result);
}
- | bl_eg_operator
+ | bl_eg_operator[current_state]
{
- $result = $bl_eg_operator;
+ $result = ($bl_eg_operator.result);
}
- | bl_af_operator
+ | bl_af_operator[current_state]
{
- $result = $bl_af_operator;
+ $result = ($bl_af_operator.result);
}
- | bl_ef_operator
+ | bl_ef_operator[current_state]
{
- $result = $bl_ef_operator;
+ $result = ($bl_ef_operator.result);
}
- | bl_au_operator
+ | bl_au_operator[current_state]
{
- $result = $bl_au_operator;
+ $result = ($bl_au_operator.result);
}
- | bl_eu_operator
+ | bl_eu_operator[current_state]
{
- $result = $bl_eu_operator;
+ $result = ($bl_eu_operator.result);
}
;