| summaryrefslogtreecommitdiff |
path: root/instr-to-kodkod
diff options
Diffstat (limited to 'instr-to-kodkod')
| -rw-r--r-- | instr-to-kodkod/Makefile | 11 | ||||
| -rw-r--r-- | instr-to-kodkod/parser/PropertyLexer.g4 | 4 | ||||
| -rw-r--r-- | instr-to-kodkod/src/Main.java | 11 | ||||
| -rw-r--r-- | instr-to-kodkod/src/VariableManager.java | 2 |
4 files changed, 24 insertions, 4 deletions
diff --git a/instr-to-kodkod/Makefile b/instr-to-kodkod/Makefile index b708c16..322205f 100644 --- a/instr-to-kodkod/Makefile +++ b/instr-to-kodkod/Makefile @@ -91,6 +91,8 @@ ANTLR_JAR = ${CURDIR}/antlr-4.7-complete.jar SOURCES = $(wildcard src/*.java) CLASSES = $(SOURCES:.java=.class) SOLUTION_FILES = $(addprefix $(SOL_DIR)/,$(notdir $(PROPERTY_FILES:.pro=.sol))) +DEPENDENCY_FILES = \ + $(addprefix $(DEPENDENCIES_DIR)/,$(notdir $(PROPERTY_FILES:.pro=.deps))) MODEL_FILES = \ $(MODEL_DIR)/structural.mod \ $(MODEL_DIR)/depths.mod \ @@ -115,12 +117,14 @@ clean: $(MAKE) -C cfg-to-paths clean rm -f $(CLASSES) rm -f $(SOL_DIR)/*.sol + rm -f $(DEPENDENCY_FILES) clean_model: $(MAKE) -C cfg-to-paths clean_model clean_solutions: rm -f $(SOL_DIR)/*.sol + rm -f $(DEPENDENCY_FILES) ######## cfg-generator: @@ -129,7 +133,8 @@ cfg-generator: $(PARSER_CLASSES): antlr-4.7-complete.jar kodkod.jar $(PARSER_SOURCES) $(MAKE) -C parser -$(SOL_DIR)/%.sol: $(PROPERTY_FILES) $(MODEL_FILES) $(LEVEL_FILES) +$(SOL_DIR)/%.sol: \ + $(DEPENDENCIES_DIR)/%.deps $(PROPERTY_FILES) $(MODEL_FILES) $(LEVEL_FILES) touch $@ $(JAVA) -cp $(CLASSPATH) Main $@ -v \ $(filter %$(basename $(notdir $@)).pro,$(PROPERTY_FILES)) \ @@ -137,6 +142,10 @@ $(SOL_DIR)/%.sol: $(PROPERTY_FILES) $(MODEL_FILES) $(LEVEL_FILES) $(MODEL_FILES) \ $(wildcard $(PATH_MODEL_DIR)/*.mod) +$(DEPENDENCY_FILES): $(PROPERTY_FILES) + sed -n 's/^#require \"\(.*\)\"$$/\1/p' \ + $(filter %$(basename $(notdir $@)).pro,$(PROPERTY_FILES)) > $@ + src/%.class: src/%.java $(PARSER_CLASSES) $(REQUIRED_JARS) $(JAVAC) -cp $(CLASSPATH) $< diff --git a/instr-to-kodkod/parser/PropertyLexer.g4 b/instr-to-kodkod/parser/PropertyLexer.g4 index 3b6011d..e100efb 100644 --- a/instr-to-kodkod/parser/PropertyLexer.g4 +++ b/instr-to-kodkod/parser/PropertyLexer.g4 @@ -37,7 +37,7 @@ DEPTH_NO_CHANGE_OPERATOR_KW: ('(NDCB' | '(does_not_change_depth_before') SEP; WS: SEP; -ID: [a-zA-Z0-9_]+; +ID: [a-zA-Z0-9_~]+; STRING: '"' ~('\r' | '\n' | '"')* '"'; -COMMENT: ';;' .*? '\n' -> channel(HIDDEN); +COMMENT: (';;'|'#require') .*? '\n' -> channel(HIDDEN); diff --git a/instr-to-kodkod/src/Main.java b/instr-to-kodkod/src/Main.java index 11a357a..be5cb21 100644 --- a/instr-to-kodkod/src/Main.java +++ b/instr-to-kodkod/src/Main.java @@ -355,10 +355,21 @@ public class Main solver = new Solver(); solver.options().setSkolemDepth(-1); + solver.options().setSymmetryBreaking(0); solver.options().setSolver(SATFactory.DefaultSAT4J); if (PARAMETERS.be_verbose()) { + System.out.println(bounds); + System.out.println + ( + "Final formula:" + + + property.and + ( + VARIABLE_MANAGER.generate_tagged_variable_constraints() + ).toString() + ); solver.options().setReporter(new ConsoleReporter()); } diff --git a/instr-to-kodkod/src/VariableManager.java b/instr-to-kodkod/src/VariableManager.java index 249b183..fee499e 100644 --- a/instr-to-kodkod/src/VariableManager.java +++ b/instr-to-kodkod/src/VariableManager.java @@ -144,7 +144,7 @@ public class VariableManager for (final TaggedVariable tg: tagged_variables.values()) { - result = result.and(tg.as_relation.one()); + result = result.and(tg.as_relation.one()); } return result; |


