diff options
Diffstat (limited to 'src/tools/c/examples/bronzeage')
| -rw-r--r-- | src/tools/c/examples/bronzeage/Makefile | 47 | ||||
| -rw-r--r-- | src/tools/c/examples/bronzeage/bronzeage-test.c | 31 |
2 files changed, 78 insertions, 0 deletions
diff --git a/src/tools/c/examples/bronzeage/Makefile b/src/tools/c/examples/bronzeage/Makefile new file mode 100644 index 000000000..67367920a --- /dev/null +++ b/src/tools/c/examples/bronzeage/Makefile @@ -0,0 +1,47 @@ + +GFDIR=../../../../../ + +LIBGFCC_INCLUDES = $(GFDIR)/lib/c +LIBGFCC_LIBDIR = $(GFDIR)/lib/c + +GFCC2C = $(GFDIR)/bin/gfcc2c + +TEST_PROG = bronzeage-test + +GRAMMAR_DIR = $(GFDIR)/examples/bronzeage + +GRAMMAR_MODULES = Bronzeage BronzeageEng BronzeageSwe + +GRAMMAR_H_FILES = $(addsuffix .h, $(GRAMMAR_MODULES)) +GRAMMAR_C_FILES = $(addsuffix .c, $(GRAMMAR_MODULES)) +GRAMMAR_O_FILES = $(addsuffix .o, $(GRAMMAR_MODULES)) + +CFLAGS += -O2 +CPPFLAGS += -I$(LIBGFCC_INCLUDES) + +.PHONY: clean + +all: bronzeage.gfcc $(TEST_PROG) + +$(TEST_PROG): $(GRAMMAR_O_FILES) $(TEST_PROG).o $(LIBGFCC_LIBDIR)/libgfcc.a + +$(TEST_PROG).o: $(GRAMMAR_H_FILES) $(GRAMMAR_O_FILES) $(TEST_PROG).c + +$(GRAMMAR_H_FILES) $(GRAMMAR_C_FILES): $(GFCC2C) bronzeage.gfcc + $(GFCC2C) bronzeage.gfcc + +bronzeage.gfcc: + echo "i -optimize=all $(GRAMMAR_DIR)/BronzeageEng.gf" > mkBronzeage.gfs + echo "i -optimize=all $(GRAMMAR_DIR)/BronzeageSwe.gf" >> mkBronzeage.gfs + echo "s" >> mkBronzeage.gfs + echo "pm -printer=gfcc | wf bronzeage.gfcc" >> mkBronzeage.gfs + cat mkBronzeage.gfs | gf + rm -f mkBronzeage.gfs + +clean: + -rm -f $(TEST_PROG) *.o + + +distclean: clean + -rm -f $(GRAMMAR_H_FILES) $(GRAMMAR_C_FILES) + -rm -f bronzeage.gfcc diff --git a/src/tools/c/examples/bronzeage/bronzeage-test.c b/src/tools/c/examples/bronzeage/bronzeage-test.c new file mode 100644 index 000000000..c0bee93a2 --- /dev/null +++ b/src/tools/c/examples/bronzeage/bronzeage-test.c @@ -0,0 +1,31 @@ +#include "Bronzeage.h" + +#include "BronzeageEng.h" + +#include <unistd.h> + +int main() { + Tree *tree = + mk_PhrPos( + mk_SentV( + mk_lie_V(), + mk_NumCN( + mk_two_Num(), + mk_UseN(mk_wife_N()) + ) + ) + ); + + int i; + + for (i = 0; i < 1000; i++) { + Term *term; + term = BronzeageEng_lin(tree); + term_print(stdout, term); + fputs("\n", stdout); + } + + tree_free(tree); + + return 0; +} |
