1
0
forked from GitHub/gf-core
Commit Graph

57 Commits

Author SHA1 Message Date
kr.angelov
80acad4447 bugfix in the pattern matching compiler and a number of other fixes that I somehow did not push before 2014-09-29 15:00:04 +00:00
kr.angelov
14e6eec5ec now a complete JIT compiler and ByteCode compiler for the def rules in the abstract syntax. there might be some bugs yet to be found, meta variables and computation under lambda is only partially supported 2014-09-25 10:35:06 +00:00
kr.angelov
621d748bac a major revision of the bytecode generator and JIT compiler. the effect is that now we can compute with lambda functions and with true tail recursion 2014-09-11 15:39:39 +00:00
kr.angelov
4d28c7632e the code for def rules now uses proper graph update to preserve lazyness 2014-09-05 11:53:02 +00:00
kr.angelov
86b5f78c57 full support for recursive def rules in the C runtime 2014-09-05 10:09:43 +00:00
kr.angelov
bfd414554d partial implementation for recursive def rules 2014-09-01 14:51:20 +00:00
kr.angelov
584d589041 a partial support for def rules in the C runtime
The def rules are now compiled to byte code by the compiler and then to
native code by the JIT compiler in the runtime. Not all constructions
are implemented yet. The partial implementation is now in the repository
but it is not activated by default since this requires changes in the
PGF format. I will enable it only after it is complete.
2014-08-11 10:59:10 +00:00
kr.angelov
1ca09448f9 now fully functional Java API for custom literals 2014-04-10 14:14:31 +00:00
kr.angelov
f30c60c3d7 GuVariant is now plain uintptr_t instead of a structure to make it easier to write Haskell bindings 2014-02-09 19:07:15 +00:00
kr.angelov
0ece8f19ab loading and unloading of languages in the C runtime and in the Python bindings 2013-12-10 15:00:52 +00:00
kr.angelov
0095119ec0 added Predef.SOFT_BIND. This special token allows zero or more spaces between ordinary tokens. It is also used in the English RGL to attach the commas to the previous word. 2013-11-12 09:54:57 +00:00
kr.angelov
2483dc7728 the content of ParseEngAbs3.probs is now merged with ParseEngAbs.probs. The later is now retrained. Once the grammar is compiled with the .probs file now it doesn't need anything more to do robust parsing. The robustness itself is controlled by the flags 'heuristic_search_factor', 'meta_prob' and 'meta_token_prob' in ParseEngAbs.gf 2013-11-06 10:21:46 +00:00
kr.angelov
042243f08a added the linref construction in GF. The PGF version number is now bumped 2013-10-30 12:53:36 +00:00
kr.angelov
151f86c1e9 fix the handling of 'pre' in the C runtime 2013-10-28 12:35:37 +00:00
kr.angelov
0882396875 tabular linearization in the C and Java runtimes 2013-10-23 14:49:28 +00:00
kr.angelov
8cf03bc5b6 a major redesign in the C runtime. The parser and the linearizer now fully support BIND. The following things are still broken: parseval, word completion, handling 'pre', the robust mode 2013-10-09 12:08:51 +00:00
kr.angelov
e8335806af GuString is now an ordinary C string - it makes live easier. In addition PgfSymbolKS, PgfExprFun and PgfLiteralStr now keep their strings as embedded flexible arrays. The latest change gives us the same compactness as the old representation but it is a lot easier to use. 2013-10-04 12:04:39 +00:00
kr.angelov
71868fa053 the symbol for nonExist in the GF runtime should be the last. this simplifies the binary search in the C runtime 2013-10-03 08:21:31 +00:00
kr.angelov
426bc49a52 a major refactoring in the C and the Haskell runtimes. Note incompatible change in the PGF format!!!
The following are the outcomes:

   - Predef.nonExist is fully supported by both the Haskell and the C runtimes

   - Predef.BIND is now an internal compiler defined token. For now
     it behaves just as usual for the Haskell runtime, i.e. it generates &+.
     However, the special treatment will let us to handle it properly in 
     the C runtime.

   - This required a major change in the PGF format since both 
     nonExist and BIND may appear inside 'pre' and this was not supported
     before.
2013-09-27 15:09:48 +00:00
kr.angelov
2a49e4e1d6 a major refactoring in the C runtime. GuList is now removed and replaced with GuSeq. The GuSeq/GuBuf API is simplified 2013-09-17 12:45:00 +00:00
kr.angelov
470eb46e96 remove leftcorner_cat_idx which is now redundant 2013-09-13 13:49:17 +00:00
kr.angelov
a20cd77d25 nonExist now does the expected thing 2013-08-23 13:17:45 +00:00
kr.angelov
d1410aba22 we no longer maintain an explicit list of functions per category since now it is implicitly kept in the JIT compiled code 2013-06-26 09:35:50 +00:00
kr.angelov
d553cb165a Now there is a just-in-time compiler which generates native code for proof search. This is already used by the exhaustive generator. The time to generate 10000 abstract trees with ParseEng went down from 4.43 sec to 0.29 sec. 2013-06-25 19:22:42 +00:00
kr.angelov
85efdf81e7 finally the statistical parser is able to return all possible abstract trees 2013-04-26 20:44:01 +00:00
kr.angelov
f050609101 added API for computing bracketed strings from Python and C 2013-04-18 13:37:09 +00:00
kr.angelov
d124fa9a12 refactoring: now all named objects in the C runtime have an explicit name field 2013-02-11 14:10:54 +00:00
kr.angelov
90c3304147 remove the pgf2yaml tool which was both broken and redundant. The declarations for generic programming from data.c are removed as well 2013-02-11 13:51:12 +00:00
kr.angelov
10ef298fa0 the grammar reader in the C runtime is completely rewritten and it doesn't use the generic programming API 2013-02-11 10:16:58 +00:00
kr.angelov
2c169406fc a new reasoner in the C runtime. It supports tabling which makes it decideable for propositional logic. dependent types and high-order types are not supported yet. The generation is still in decreasing probability order 2013-01-07 12:50:32 +00:00
kr.angelov
490a3f2286 a major reimplementation of the linearizer in the C runtime 2012-12-19 09:07:05 +00:00
kr.angelov
14e721dda9 a top-level API for parsing in the C runtime 2012-12-13 14:44:33 +00:00
kr.angelov
5779887f96 bugfix for robust parsing with multi-word units 2012-12-11 12:57:22 +00:00
kr.angelov
d185938952 a major refactoring in the robust parser: bottom-up filtering and garbage collection for the chart 2012-10-25 14:42:53 +00:00
kr.angelov
a307ed6c75 the C runtime now has a type prob_t which is used only for probability values 2012-09-18 09:18:48 +00:00
kr.angelov
86b5ec7447 bugfix in the C parser 2012-09-06 14:52:19 +00:00
kr.angelov
3ad5493758 Use a separated tag for meta productions in the robust parser. This cleans up the code a lot 2012-06-13 05:49:30 +00:00
kr.angelov
c9c5675e1d now there is a limit of 2000000 items in the chart of the robust parser. This prevents from explosion in the memory size but it will also prevent us from parsing some sentences. 2012-06-12 11:30:01 +00:00
kr.angelov
b27a440ef3 now the robust parser is purely top-down and the meta rules compete on a fair basis with the grammar rules 2012-06-12 09:29:51 +00:00
kr.angelov
f4c17cb7aa another attempt to port the robust parser to MacOS 2012-05-16 15:18:44 +00:00
kr.angelov
a6800fc0da a new unbiased statistical parser. it is still far from perfect use it on your own risk. 2012-05-08 12:13:28 +00:00
kr.angelov
17bc8e5c89 some fixes in the robust parser and a new API for literals 2012-04-12 06:55:25 +00:00
kr.angelov
230f309317 libpgf: a new implementation for literals which also allows custom literals. the same mechanism is now used for the metavariables 2012-03-12 14:25:51 +00:00
kr.angelov
ed5de8335b libpgf: implementation for built in literal categories 2012-03-07 16:39:29 +00:00
kr.angelov
0e90d1ba1f libpgf: now all concrete functions and categories are explicitly linked to their abstract counter parts 2012-03-05 12:59:31 +00:00
kr.angelov
e31c883075 libpgf: the first prototype for the robust parser 2012-02-29 14:43:08 +00:00
kr.angelov
b99fa6aa9a libpgf: now we have both complete bottom up index for robust parsing and fast lexical lookup from the same index 2012-02-22 21:27:54 +00:00
kr.angelov
7ddd0d5f3e libpgf: added index for fast lexicon lookup. Still not perfect 2012-02-21 21:17:50 +00:00
kr.angelov
5259be92e3 libpgf: remove the now redundant field extra_ccats in PgfConcr 2012-02-18 16:25:53 +00:00
kr.angelov
47e5e8c966 libpgf: now the linearization index is created during the grammar loading which also makes the types PgfLzr and PgfParser redundant. 2012-02-18 16:22:40 +00:00