Skip to content

Commit e08d02d

Browse files
committed
[configure] commit
1 parent 7dd9e1e commit e08d02d

File tree

4 files changed

+2483
-2
lines changed

4 files changed

+2483
-2
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
# vscode
55
.vscode/
66

7+
# configure
8+
config.*
9+
autom4te.cache/
710

811
out/
912
temp/

Makefile

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ MNJ = deps/minijava-parser.jar
1212
PGI = deps/pgi.jar
1313
SPP = deps/spp.jar
1414
KGI = deps/kgi.jar
15+
SPIM = spim
1516

1617
default: build
1718

@@ -63,16 +64,20 @@ TEST_PGI_DIR = testcases/piglet
6364
TEST_PGI = $(wildcard $(TEST_PGI_DIR)/*.pg)
6465

6566
TEST_SPGI_DIR = testcases/spiglet
66-
TEST_SPGI = $(wildcard $(TEST_SPGI_DIR)/*.spg)
67+
TEST_SPGI = $(wildcard $(TEST_SPGI_DIR)/*.spg)
6768

68-
test: testtc testmj testpg testkg testmj2spgi testall
69+
TEST_KGI_DIR = testcases/kanga
70+
TEST_KGI = $(wildcard $(TEST_KGI_DIR)/*.kg)
71+
72+
test: testtc testmj testpg testkg testmj2spgi testmp # testall
6973
@echo Congrats! You have passed all the test.
7074

7175
testtc: $(patsubst $(TEST_TC_DIR)/%.java, %.testtc, $(TEST_TC))
7276
testmj: $(patsubst $(TEST_MJ_DIR)/%.java, %.testmj, $(TEST_MJ))
7377
testpg: $(patsubst $(TEST_PGI_DIR)/%.pg, %.testpg, $(TEST_PGI))
7478
testmj2spgi: $(patsubst $(TEST_MJ_DIR)/%.java, %.testmj2spgi, $(TEST_MJ))
7579
testkg: $(patsubst $(TEST_SPGI_DIR)/%.spg, %.testkg, $(TEST_SPGI))
80+
testmp: $(patsubst $(TEST_KGI_DIR)/%.kg, %.testmp, $(TEST_KGI))
7681
testall: $(patsubst $(TEST_MJ_DIR)/%.java, %.testall, $(TEST_MJ))
7782

7883
OkText = "Program type checked successfully"
@@ -235,3 +240,17 @@ endef
235240
false; \
236241
fi
237242

243+
%.testmp: $(TEST_KGI_DIR)/%.kg
244+
@if [ ! -d $(TEMP_DIR) ] ; then mkdir -p $(TEMP_DIR); fi
245+
@$(JAVA) -jar $(KGI) < $< >$(TEMP_DIR)/std.$@.output
246+
@$(JAVA) -cp $(OUT) K2M < $< > $(TEMP_DIR)/dump.$@.s
247+
@$(SPIM) -file $(TEMP_DIR)/dump.$@.s | sed '1,5d' > $(TEMP_DIR)/my.$@.output
248+
@diff $(TEMP_DIR)/my.$@.output $(TEMP_DIR)/std.$@.output
249+
@if [ $$? -eq 0 ]; then \
250+
echo "[ K2M ] passed!" $<; \
251+
rm $(TEMP_DIR)/std.$@.output $(TEMP_DIR)/my.$@.output $(TEMP_DIR)/dump.$@.s; \
252+
else \
253+
echo "[ K2M ] failed!" $<; \
254+
$(JAVA) -cp $(OUT) K2M < $< > $(OUT)/dump.s && \
255+
false; \
256+
fi

0 commit comments

Comments
 (0)