diff options
| author | aarne <aarne@chalmers.se> | 2009-10-23 12:54:21 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-10-23 12:54:21 +0000 |
| commit | 0e3e2d03f94fb3705bc3d2ba0ea3e76fdb814691 (patch) | |
| tree | 1b8eb84e4e2d8b508d9f2558d8b32183dae4dde7 /contrib/c-bindings/gfctest.c | |
| parent | b8df9c92bb71fc4c136dc35ce98e524cc392c7de (diff) | |
C bindings to PGF interpreter
Diffstat (limited to 'contrib/c-bindings/gfctest.c')
| -rw-r--r-- | contrib/c-bindings/gfctest.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/contrib/c-bindings/gfctest.c b/contrib/c-bindings/gfctest.c new file mode 100644 index 000000000..2010ca163 --- /dev/null +++ b/contrib/c-bindings/gfctest.c @@ -0,0 +1,48 @@ +/* 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 "pgf.h" + +int main(int argc, char *argv[]) +{ + gf_init(&argc, &argv); + + GF_PGF pgf = gf_readPGF("../examples/tutorial/embedded/Query.pgf"); + GF_Language lang = gf_readLanguage("QueryEng"); + GF_Type cat = gf_startCat(pgf); + char *lexed = gf_stringOp("lextext", "Is 2 prime"); + GF_Tree *result = gf_parse(pgf, lang, cat, lexed); + free(lexed); + GF_Tree *p = result; + if (*p) { + do { + char *str = gf_showTree(*(p++)); + puts(str); + free(str); + } while (*p); + } else + puts("no match"); + gf_freeTrees(result); + gf_freeType(cat); + gf_freeLanguage(lang); + gf_freePGF(pgf); + + gf_exit(); + return 0; +} |
