mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-24 10:22:50 -06:00
DEBUG mode added.
This commit is contained in:
@@ -2,6 +2,7 @@ src=../../src
|
|||||||
import=-i$src/runtime/haskell:$src/compiler
|
import=-i$src/runtime/haskell:$src/compiler
|
||||||
cbind=../c-bindings
|
cbind=../c-bindings
|
||||||
pythoninc=/usr/include/python2.5
|
pythoninc=/usr/include/python2.5
|
||||||
|
debug=-optc '-DDEBUG=1'
|
||||||
|
|
||||||
conf:
|
conf:
|
||||||
ln -s $(cbind)/PGFFFI.hs
|
ln -s $(cbind)/PGFFFI.hs
|
||||||
@@ -12,7 +13,7 @@ gf.so: PGFFFI.hs gfmodule.c
|
|||||||
gf --make ../../examples/tutorial/embedded/QueryEng.gf
|
gf --make ../../examples/tutorial/embedded/QueryEng.gf
|
||||||
ghc $(import) --make -fglasgow-exts -O2 -no-hs-main -c $<
|
ghc $(import) --make -fglasgow-exts -O2 -no-hs-main -c $<
|
||||||
ghc -O2 --make -fglasgow-exts -no-hs-main -optl '-shared' \
|
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:
|
clean:
|
||||||
rm -f *.hi *.o
|
rm -f *.hi *.o
|
||||||
rm -f *_stub.*
|
rm -f *_stub.*
|
||||||
|
|||||||
@@ -32,15 +32,28 @@
|
|||||||
#define NEWGF(OBJ,GFTYPE,TYPE,NAME,DOC) NEWOBJECT(OBJ,GFTYPE) \
|
#define NEWGF(OBJ,GFTYPE,TYPE,NAME,DOC) NEWOBJECT(OBJ,GFTYPE) \
|
||||||
NEWTYPE(TYPE,NAME,OBJ,DOC)
|
NEWTYPE(TYPE,NAME,OBJ,DOC)
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
#define DEALLOCFN(delname,t,cb,cbname) static void \
|
#define DEALLOCFN(delname,t,cb,cbname) static void \
|
||||||
delname(t *self){ cb(self->obj);\
|
delname(t *self){ cb(self->obj);\
|
||||||
printf("gf_%s has been called for stable pointer 0x%x\n", cbname, self->obj);\
|
printf("gf_%s has been called for stable pointer 0x%x\n", cbname, self->obj);\
|
||||||
self->ob_type->tp_free((PyObject*)self); }
|
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* \
|
#define REPRCB(cbid,t,gfcb) static PyObject* \
|
||||||
cbid(t *self) { \
|
cbid(t *self) { \
|
||||||
const char *str = gfcb(self->obj); \
|
const char *str = gfcb(self->obj); \
|
||||||
return PyString_FromFormat("0x%x: %s", self->obj, str); }
|
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 */
|
/* utilities */
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ import gf
|
|||||||
query = gf.read_pgf("Query.pgf")
|
query = gf.read_pgf("Query.pgf")
|
||||||
lang = gf.read_language('QueryEng')
|
lang = gf.read_language('QueryEng')
|
||||||
cat = query.startcat()
|
cat = query.startcat()
|
||||||
print 'start category:',cat
|
print 'start category:', cat
|
||||||
|
print 'language is:', lang
|
||||||
lexed = "is 2 prime"
|
lexed = "is 2 prime"
|
||||||
print "Parsing '%s':" % lexed
|
print "Parsing '%s':" % lexed
|
||||||
for e in query.parse(lexed, lang):
|
for e in query.parse(lexed, lang):
|
||||||
|
|||||||
Reference in New Issue
Block a user