1
0
forked from GitHub/gf-core
Commit Graph

2978 Commits

Author SHA1 Message Date
kr.angelov
79bf7056f2 now the Python binding has an alternative representation for abstract trees which is composed of Python objects. The new representation is not integrated with the core runtime yet 2013-01-07 15:11:12 +00:00
kr.angelov
3be31c62e9 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
0be179d7ff bugfix in the strings library from the C runtime 2012-12-27 21:18:46 +00:00
hallgren
368cd7ffbe bug fix in the new partial evaluator
It can leave wildcard tables in their origial form, but it easy to handle
them in the unfactor function in GeneratePMCFG.
2012-12-20 16:41:43 +00:00
aarne
793ba98249 added alltenses to the default search path (just like prelude) 2012-12-20 16:05:34 +00:00
hallgren
fa6f8f49ce PGFService.hs: code duplication reduction 2012-12-20 00:15:18 +00:00
hallgren
f73825ddf1 partial evaluator bug fix
It failed to delay table selection when the selector contains a run-time
variable, causing "gf: Prelude.(!!): index too large" instead.

Also:
  + Show better source locations on unexpected errors, to aid bug hunting.
  + Removed unused SourceGrammar argument to value2term.
2012-12-19 23:12:37 +00:00
hallgren
4aa3638549 GF.Grammar.Lookup: new function lookupResDefLoc
It's like lookupResDef but it includes a source location in the output.
2012-12-19 23:08:56 +00:00
kr.angelov
bb077b8330 bugfix: the linearizer should not generate extra space at the end of the sentence 2012-12-19 11:18:34 +00:00
kr.angelov
f7eaa8a89a bugfix for linearization of metavariables at the root of a tree 2012-12-19 10:03:05 +00:00
kr.angelov
6201640d7b rename linearize.{h/c} to linearizer.{h/c} which follows the convention used in parser.c and reasoner.c 2012-12-19 09:17:24 +00:00
kr.angelov
5c9ee467a9 a major reimplementation of the linearizer in the C runtime 2012-12-19 09:07:05 +00:00
kr.angelov
008c18a8a7 fixed accidental bug in pgf-parse.c 2012-12-18 15:42:04 +00:00
hallgren
3755ea673a partial evaluator bug fix
Int was missing from the list of predefined canonical constants.
2012-12-18 13:03:20 +00:00
kr.angelov
dc809da91f the C runtime now can read abstract expressions with literals and meta variables 2012-12-18 12:29:30 +00:00
kr.angelov
32905c8363 debugging infrastructure in the reasoner 2012-12-14 21:25:00 +00:00
kr.angelov
5cec2d5a50 bugfix for the reasoner in the C runtime 2012-12-14 21:24:17 +00:00
kr.angelov
b367dfd80f a bit more flexible API for parsing in Python 2012-12-14 16:00:52 +00:00
kr.angelov
8aefd1e072 The first prototype for exhaustive generation in the C runtime. The trees are always listed in decreasing probability order. There is also an API for generation from Python 2012-12-14 15:32:49 +00:00
hallgren
79711380a2 Add language extension for ghc<7.4
FlexibleInstances does not imply TypeSynonymInstances, apparently.
2012-12-14 14:21:46 +00:00
hallgren
950832dbba More work on the new partial evaluator
The work done by the partial evaluator is now divied in two stages:
 - A static "term traversal" stage that happens only once per term and uses
   only statically known information. In particular, the values of lambda bound
   variables are unknown during this stage. Some tables are transformed to
   reduce the cost of pattern matching.
 - A dynamic "function application" stage, where function bodies can be
   evaluated repeatedly with different arguments, without the term traversal
   overhead and without recomputing statically known information.

Also the treatment of predefined functions has been reworked to take advantage
of the staging and better handle partial applications.
2012-12-14 14:00:21 +00:00
kr.angelov
e1bab39458 bugfix in the lexer from the C runtime. the input sentence doesn't have to terminate with whitespace 2012-12-13 16:45:44 +00:00
kr.angelov
6bc32db1c3 added simple error handling in the Python test 2012-12-13 16:44:39 +00:00
kr.angelov
81428c768c added a simple test for the Python binding 2012-12-13 16:19:56 +00:00
kr.angelov
cc7ea9260b an initial API for parsing and linearization from Python 2012-12-13 15:39:07 +00:00
kr.angelov
2ba632dc9f a top-level API for parsing in the C runtime 2012-12-13 14:44:33 +00:00
kr.angelov
60942c440a bugfix: the outside probability of a PgfItemConts must always be initialized to zero 2012-12-13 11:11:45 +00:00
kr.angelov
fe51a7fb98 bugfix: pgf_read_expr no longer requires a semicolon at the end of an abstract expression 2012-12-13 11:09:26 +00:00
kr.angelov
162fd5e512 an initial Python binding to the C runtime 2012-12-12 11:29:39 +00:00
kr.angelov
1376df457d started an official API to the C runtime 2012-12-12 11:25:58 +00:00
hallgren
f39466f787 partial evaluator work
* Evaluate operators once, not every time they are looked up
* Remember the list of parameter values instead of recomputing it from the
  pattern type every time a table selection is made.
* Quick fix for partial application of some predefined functions.
2012-12-11 15:37:41 +00:00
john.j.camilleri
60f8a6b647 Syntax editor: unwrap feature 2012-12-11 15:09:16 +00:00
john.j.camilleri
acd2f73c8c Syntax editor: link to about page 2012-12-11 09:48:44 +00:00
john.j.camilleri
64d463dddf Syntax editor: add about.html (and a Makefile for generating it) 2012-12-11 09:42:57 +00:00
kr.angelov
3182e382dc bugfix for robust parsing with multi-word units 2012-12-11 12:57:22 +00:00
hallgren
ab97deae57 Compute.ConcreteNew: add missing case for variant functions
Also adding a test case in the test suite for this.
2012-12-10 13:25:32 +00:00
john.j.camilleri
36d2f165ea Syntax editor: change startcat when wrapping top node 2012-12-07 15:32:31 +00:00
hallgren
e966a4ccc8 Make -new-comp the default and bump the version number to 3.3.11-darcs
* -new-comp (the new partial evaluator) is now chosen by default when you run
  cabal install (or cabal configure). To revert to using the old partial
  evaluator by default, use "cabal install -f-new-comp" (or
  "cabal configure -f-new-comp").

* Regardless of the configured default, you can choose which partial evaluator
  to use when you invoke gf by using the -new-comp or -old-comp command line
  option.

* The cc command in the GF shell uses the chosen partial evaluator by default,
  but you can override this by using "cc -new" or "cc -old".

The plan is that these flags will be romeved in a future version.
2012-12-07 14:01:42 +00:00
john.j.camilleri
fe2fb1c51b Syntax editor: various small improvements...
- separate tree edit buttons from option buttons
- fix bug when wrapping on freshly imported ast
- add interface for import & export of ast
- cleaner internal implementation of Editor.add_refinement
- small style updates
2012-12-07 12:55:17 +00:00
hallgren
7d0f649f29 Compute.ConcreteNew: bug fix for indirectly defined pattern macros
More changes are probably needed to make pattern macros first class values.
Also includes minor changes related to variants and error messages.
2012-12-06 16:44:03 +00:00
john.j.camilleri
44138ff8ce Syntax editor: wrap now handles multiple possible positions for subtree 2012-12-04 15:45:41 +00:00
john.j.camilleri
cf0051bbb3 Syntax editor: add wrap feature 2012-12-03 14:02:47 +00:00
kr.angelov
1863e4c3d6 added experimental script for chunking in the C runtime 2012-12-03 10:07:54 +00:00
kr.angelov
2da23e9872 added INSTALL file and updated README file for the C runtime 2012-12-03 09:09:08 +00:00
aarne
d34adff894 produce error message instead of failure of irrefutable pattern Ok ty_C in GrammarToPGF, to help find compilation errors; the ones I've found are because an inherited abstract excludes something that the inherited concrete does not exclude. 2012-12-02 19:40:45 +00:00
john.j.camilleri
596cd4d473 Syntax editor: internal optimizations by pre-computing certain stuff 2012-11-30 15:08:46 +00:00
john.j.camilleri
589e1e4f08 Syntax editor: in-place replacement of functions
When at a non-leaf node, refinements with identical type signatures
are highlighting and can re placed without destroying the children.
If not, the refinement is greyed and the user is asked to clear
the current subtree first if they wish to replace it.
This aspect of the UI should be polished, but at least it is obvious.
Also, some substantial optimizations can still be made to cache
the processed type signatures (which determine what can be replaced
in-place)
2012-11-30 10:56:42 +00:00
hallgren
7b87169c76 minibar: add a button to get detailed grammar info
After pressing the "i" button to view grammar info, there is now a
"More info" button to get more detailed information about all categories and
functions in the grammar.
2012-11-29 19:15:30 +00:00
hallgren
c9522c0a37 minibar: add tool tips to some of the buttons
Also move the functions title and attr from editor/editor.js to js/support.js.
Also mention recent changes in minibar/about.html.
2012-11-29 16:05:42 +00:00
john.j.camilleri
d9b0895e57 Syntax editor: internal improvements. re-introduce initialize_from function 2012-11-29 15:40:18 +00:00