| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-07-25 16:59:20 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-07-25 16:59:20 +0200 |
| commit | d7647dda4fe577a5a9d8569e0a9e0e28496c0744 (patch) | |
| tree | 83ddf15908b79b6f47ed8ee06a5e7a1d09c7e96d /instr-to-kodkod/parser/PropertyParser.g4 | |
| parent | 54bb34b819c314f2274d560bb50cb1afaeedfa84 (diff) | |
Gets the strings seemingly working.
Diffstat (limited to 'instr-to-kodkod/parser/PropertyParser.g4')
| -rw-r--r-- | instr-to-kodkod/parser/PropertyParser.g4 | 51 |
1 files changed, 36 insertions, 15 deletions
diff --git a/instr-to-kodkod/parser/PropertyParser.g4 b/instr-to-kodkod/parser/PropertyParser.g4 index 70e672f..82eb429 100644 --- a/instr-to-kodkod/parser/PropertyParser.g4 +++ b/instr-to-kodkod/parser/PropertyParser.g4 @@ -116,29 +116,50 @@ tag_item } ; +id_or_string + returns [Expression value] + + : + ID + { + if (($ID.text).equals("_")) + { + $value = null; + } + else + { + $value = Main.get_variable_manager().get_variable(($ID.text)); + } + } + + | + STRING + { + $value = Main.get_string_manager().get_string_as_relation(($STRING.text)); + System.out.println("Using (STR \"" + ($STRING.text) + "\" " + ($value) + ")"); + } +; + id_list - returns [List<Variable> list, boolean has_joker] + returns [List<Expression> list, boolean has_joker] @init { - final List<Variable> result = new ArrayList<Variable>(); + final List<Expression> result = new ArrayList<Expression>(); boolean used_joker = false; } : ( (WS)+ - ID + id_or_string { - if (($ID.text).equals("_")) + if (($id_or_string.value) == (Expression) null) { used_joker = true; - result.add((Variable) null); - } - else - { - result.add(Main.get_variable_manager().get_variable(($ID.text))); } + + result.add(($id_or_string.value)); } )* @@ -162,7 +183,7 @@ sl_predicate { final Expression predicate; - final List<Variable> ids; + final List<Expression> ids; final Relation predicate_as_relation; predicate_as_relation = @@ -192,14 +213,14 @@ sl_predicate final List<IntExpression> columns; final int params_length; - ids = new ArrayList<Variable>(); + ids = new ArrayList<Expression>(); columns = new ArrayList<IntExpression>(); params_length = ($id_list.list).size(); for (int i = 0; i < params_length; ++i) { - if (($id_list.list).get(i) != (Variable) null) + if (($id_list.list).get(i) != (Expression) null) { columns.add(IntConstant.constant(i)); ids.add(($id_list.list).get(i)); @@ -499,7 +520,7 @@ bl_predicate [Variable current_node] { final Expression predicate; - final List<Variable> ids; + final List<Expression> ids; final Relation predicate_as_relation; predicate_as_relation = @@ -529,7 +550,7 @@ bl_predicate [Variable current_node] final List<IntExpression> columns; final int params_length; - ids = new ArrayList<Variable>(); + ids = new ArrayList<Expression>(); columns = new ArrayList<IntExpression>(); params_length = ($id_list.list).size(); @@ -539,7 +560,7 @@ bl_predicate [Variable current_node] for (int i = 0; i < params_length; ++i) { - if (($id_list.list).get(i) != (Variable) null) + if (($id_list.list).get(i) != (Expression) null) { columns.add(IntConstant.constant(i + 1)); // Offset for the node ids.add(($id_list.list).get(i)); |


