summaryrefslogtreecommitdiff
path: root/src-3.0/tools/c/examples
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-05-21 09:26:44 +0000
committeraarne <aarne@cs.chalmers.se>2008-05-21 09:26:44 +0000
commit055c0d0d5a5bb0dc75904fe53df7f2e4f5732a8f (patch)
tree0e63fb68c69c8f6ad0f78893c63420f0a3600e1c /src-3.0/tools/c/examples
parent915a1de71783ab8446b1af9e72c7ba7dfbc12d3f (diff)
GF/src is now for 2.9, and the new sources are in src-3.0 - keep it this way until the release of GF 3
Diffstat (limited to 'src-3.0/tools/c/examples')
-rw-r--r--src-3.0/tools/c/examples/bronzeage/Makefile47
-rw-r--r--src-3.0/tools/c/examples/bronzeage/bronzeage-test.c31
2 files changed, 78 insertions, 0 deletions
diff --git a/src-3.0/tools/c/examples/bronzeage/Makefile b/src-3.0/tools/c/examples/bronzeage/Makefile
new file mode 100644
index 000000000..67367920a
--- /dev/null
+++ b/src-3.0/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-3.0/tools/c/examples/bronzeage/bronzeage-test.c b/src-3.0/tools/c/examples/bronzeage/bronzeage-test.c
new file mode 100644
index 000000000..c0bee93a2
--- /dev/null
+++ b/src-3.0/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;
+}