1
0
forked from GitHub/gf-core

DEBUG mode added.

This commit is contained in:
jordi.saludes
2010-06-13 17:07:49 +00:00
parent be77286bbb
commit e18d121315
3 changed files with 18 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ src=../../src
import=-i$src/runtime/haskell:$src/compiler
cbind=../c-bindings
pythoninc=/usr/include/python2.5
debug=-optc '-DDEBUG=1'
conf:
ln -s $(cbind)/PGFFFI.hs
@@ -12,7 +13,7 @@ gf.so: PGFFFI.hs gfmodule.c
gf --make ../../examples/tutorial/embedded/QueryEng.gf
ghc $(import) --make -fglasgow-exts -O2 -no-hs-main -c $<
ghc -O2 --make -fglasgow-exts -no-hs-main -optl '-shared' \
-optc '-DMODULE=PGFFFI' -optc '-I$(pythoninc)' -o $@ $^
-optc '-DMODULE=PGFFFI' $(debug) -optc '-I$(pythoninc)' -o $@ $^
clean:
rm -f *.hi *.o
rm -f *_stub.*
@@ -20,4 +21,4 @@ clean:
superclean:
make clean
rm -f PGFFFI.hs pgf.h Query.pgf
rm -f gf.so
rm -f gf.so

View File

@@ -32,15 +32,28 @@
#define NEWGF(OBJ,GFTYPE,TYPE,NAME,DOC) NEWOBJECT(OBJ,GFTYPE) \
NEWTYPE(TYPE,NAME,OBJ,DOC)
#ifdef DEBUG
#define DEALLOCFN(delname,t,cb,cbname) static void \
delname(t *self){ cb(self->obj);\
printf("gf_%s has been called for stable pointer 0x%x\n", cbname, self->obj);\
self->ob_type->tp_free((PyObject*)self); }
#else
#define DEALLOCFN(delname,t,cb,cbname) static void \
delname(t *self){ cb(self->obj);\
self->ob_type->tp_free((PyObject*)self); }
#endif
#ifdef DEBUG
#define REPRCB(cbid,t,gfcb) static PyObject* \
cbid(t *self) { \
const char *str = gfcb(self->obj); \
return PyString_FromFormat("0x%x: %s", self->obj, str); }
#else
#define REPRCB(cbid,t,gfcb) static PyObject* \
cbid(t *self) { \
const char *str = gfcb(self->obj); \
return PyString_FromString(str); }
#endif
/* utilities */

View File

@@ -3,7 +3,8 @@ import gf
query = gf.read_pgf("Query.pgf")
lang = gf.read_language('QueryEng')
cat = query.startcat()
print 'start category:',cat
print 'start category:', cat
print 'language is:', lang
lexed = "is 2 prime"
print "Parsing '%s':" % lexed
for e in query.parse(lexed, lang):