Commit Graph

57 Commits

Author SHA1 Message Date
kr.angelov
7036d56d29 the literals API is now exposed in Python 2014-09-25 11:59:40 +00:00
kr.angelov
818896dec2 fix a portability problem with the Python binding (found by Prasanth) 2014-09-17 16:12:40 +00:00
kr.angelov
0222d2440c implemented computing with abstract syntax trees. It passes all test cases except those that require def rules. The design is consistent with the STG virtual machine 2014-07-08 19:45:49 +00:00
kr.angelov
ada85ae44e an API for visitor patterns on abstract syntax trees from Python. This makes the embedded grammars especially pleasing 2014-07-06 23:48:51 +00:00
kr.angelov
85672af858 small fix for the embedded mode in Python 2014-07-06 19:55:08 +00:00
kr.angelov
e52d5bf715 embedded mode for GF grammar in Python. Only generation for now 2014-07-06 19:49:17 +00:00
kr.angelov
333e537e72 small fix in tabularLinearize 2014-05-22 13:33:18 +00:00
kr.angelov
757db06ba0 added tabularLinearize in the python binding 2014-05-22 13:30:14 +00:00
kr.angelov
d816c34986 added hasLinearization method in the Python binding 2014-03-20 14:48:47 +00:00
kr.angelov
eb1aa24896 fix in the Python binding which was forgoten after a change in the C runtime 2014-03-20 14:48:02 +00:00
kr.angelov
ae1512c926 compute the right word probability 2014-03-12 15:36:40 +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
9a2725279e fix in the Python binding 2013-11-20 09:54:37 +00:00
kr.angelov
546c7ac859 A simple type checker in the C runtime. Dependent types are not supported yet but HOAS is implemented. The API is accessible from Python as well 2013-11-04 17:10:46 +00:00
kr.angelov
050ebd469c bracketedLinearize in Python is now using the linref 2013-10-31 09:04:07 +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
9303fe100f fix the bracketed linearization in Python after the introduction of nonExist and BIND 2013-09-30 11:49:51 +00:00
kr.angelov
13822c9a2d better handling for nonExist in the C runtime. BIND is also supported in the linearizer but not in the parser yet 2013-09-30 10:25:39 +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
4baae48178 a small fix in the python binding after the refactoring in the C runtime 2013-09-24 09:14:43 +00:00
kr.angelov
7c0bad5092 remove the read and write modules from libgu. this simplifies the i/o layer 2013-09-05 11:20:39 +00:00
kr.angelov
1f4b55735e fix a crash in the python binding 2013-08-21 12:47:40 +00:00
kr.angelov
d1368c3519 word completion in the C runtime now returns multi-word expressions and the category for every expression 2013-08-19 15:34:19 +00:00
kr.angelov
e9eeefa6f0 fullFormLexicon in C and Python 2013-08-19 12:16:30 +00:00
kr.angelov
87e34b11dc implemented lookupMorpho for C and Python 2013-08-16 15:02:24 +00:00
kr.angelov
662a35bbb3 provide API to access the language code for the concrete language 2013-08-16 12:54:16 +00:00
kr.angelov
1e44fdb3d3 fixes in the C and Python API to make them closer to the Haskell API 2013-08-16 12:44:37 +00:00
kr.angelov
fc7e77bf50 added graphvizParseTree in the C and Python runtimes 2013-08-15 15:10:28 +00:00
kr.angelov
5337b4bef7 graphvizAbstractTree in the C and Python runtimes 2013-08-15 08:06:37 +00:00
kr.angelov
d7e42f00c5 the hash function for pgf.Expr is now really added 2013-07-05 05:35:22 +00:00
kr.angelov
478b46be87 typos in the documentation for the Python binding 2013-06-27 10:11:49 +00:00
kr.angelov
155afdf9b7 a complete Python API for reading, printing and manipulation of abstract trees and types. This includes dependent types, high-order abstract syntax and implicit arguments 2013-06-27 09:39:15 +00:00
kr.angelov
f4f76e4638 dummy compute function in the Python binding 2013-06-26 10:36:42 +00:00
kr.angelov
3c2d1890d0 patch for adjustable heuristics from Python 2013-06-26 07:36:03 +00:00
kr.angelov
f8073ea1cd fíx in the Python binding for compatibility with Python<2.7 2013-06-19 19:31:55 +00:00
kr.angelov
0ad4c9bf65 fix an issue in the Python binding related to the 32 vs 64 bit compatibility 2013-06-19 18:47:52 +00:00
kr.angelov
b0b4f57775 bugfix in the python binding 2013-06-14 07:02:53 +00:00
kr.angelov
54a0642bee now the call Expr.unpack("? e1 e2") in Python returns a pair with None as the first element and a the list [e1,e2] as the second. This makes it easier to decompose partial abstract trees 2013-05-31 09:24:15 +00:00
kr.angelov
1ce5fa3663 improved error message in the Python binding 2013-05-31 09:13:16 +00:00
kr.angelov
739b10f2a8 a simple refactoring in the Python runtime 2013-05-29 11:02:18 +00:00
kr.angelov
43bffd3f7d readPGF in the Python runtime now throws "No such file or directory" exception if the grammar is missing 2013-05-29 10:49:56 +00:00
kr.angelov
b7cbee7940 fix the encoding problem with unicode literals in the Python binding 2013-05-21 10:53:20 +00:00
kr.angelov
517b8ff1ee bugfix for bracketedLinearize which was causing crash if the tree cannot be linearized 2013-05-07 08:35:33 +00:00
kr.angelov
7ba27229b3 the statistical parser is now using two memory pools: one for parsing and one for the output trees. This means that the memory for parsing can be released as soon as the needed abstract trees are retrieved, while the trees themselves are retained in the separate output pool 2013-05-06 15:28:04 +00:00
kr.angelov
22f44ef61f word completion in the C runtime. The runtime/python/test.py example is now using readline with word completion 2013-05-01 06:09:55 +00:00
kr.angelov
542dcaa0ec the C runtime and the Python binding now have an API for parser evaluation. The API computes PARSEVAL and Exact Match for a given tree. As a side effect the abstract trees in Python are now compared for equality by value and not by reference 2013-04-19 10:57:46 +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
6a36ce77ff the class PgfConcr from the Python binding now has a property name which returns the name of the concrete syntax 2013-02-11 15:51:26 +00:00
kr.angelov
5e2474e346 This patch removes Gregoire's parse_tokens function in the python binding and adds another implementation which builds on the existing API for lexers in the C runtime. Now it is possible to write incremental Lexers in Python 2013-02-01 09:29:43 +00:00