diff options
Diffstat (limited to 'contrib/py-bindings/mtest.c')
| -rw-r--r-- | contrib/py-bindings/mtest.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/contrib/py-bindings/mtest.c b/contrib/py-bindings/mtest.c new file mode 100644 index 000000000..1a323468a --- /dev/null +++ b/contrib/py-bindings/mtest.c @@ -0,0 +1,66 @@ +/* GF C Bindings + Copyright (C) 2008-2009 Kevin Kofler + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see <http://www.gnu.org/licenses/>. +*/ + +#include <stdio.h> +#include <stdlib.h> +#include "pygf.h" +//#include "gf_lexing.h" + +PyGF pgf, lang, cat; + +int main(int argc, char *argv[]) +{ + int has_lang; + gf_init(&argc, &argv); + printf("Passed init\n"); + gf_readPGF(&pgf, "Query.pgf"); + printf("passed readPGF\n"); + if (!gf_readLanguage(&lang, "QueryEng")) + return 1; + printf("passed readLanguage: %s\n", gf_showLanguage(&lang)); + gf_startCat(&pgf, &cat); + printf("passed startcat: %s\n", gf_showType(&cat)); + // char *lexed = gf_stringOp("lextext")("Is 2 prime"); + char lexed[] = "is 23 odd"; + PyGF *result = gf_parse(&pgf, &lang, &cat, &lexed); + int k; + for (k = 0; result[k].sp ; k++) { + char *str = gf_showExpr(&result[k]); + puts(str); + free(str); + printf("next: 0x%x\n",result[k+1].sp); + } + /* // free(lexed); + PyGF *p = result; + if (result[0]) { + int k = 0; + do { + printf("tree %d\n",++k); + char *str = gf_showExpr(*(p++)); + puts(str); + free(str); + } while (*p && k < 5); + } else + puts("no match"); + gf_freeTrees(result); + gf_freeType(cat); + gf_freeLanguage(lang); + gf_freePGF(pgf); */ + + gf_exit(); + return 0; +} |
