Commit Graph

29 Commits

Author SHA1 Message Date
Krasimir Angelov
b0cf72f0ec dependency labels are now stored in the PGF 2018-11-14 17:29:44 +01:00
Krasimir Angelov
bf5abe2948 the compiler and the Haskell runtime now support abstract senses 2018-11-02 14:01:54 +01:00
hallgren
5bfaf10de5 Comment out some dead code found with -fwarn-unused-binds
Also fixed some warnings and tightened some imports
2015-08-28 13:59:43 +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
hallgren
3814841d7d Eliminate mutual dependencies between the GF compiler and the PGF library
+ References to modules under src/compiler have been eliminated from the PGF
  library (under src/runtime/haskell). Only two functions had to be moved (from
  GF.Data.Utilities to PGF.Utilities) to make this possible, other apparent
  dependencies turned out to be vacuous.

+ In gf.cabal, the GF executable no longer directly depends on the PGF library
  source directory, but only on the exposed library modules. This means that
  there is less duplication in gf.cabal and that the 30 modules in the
  PGF library will no longer be compiled twice while building GF.

  To make this possible, additional PGF library modules have been exposed, even
  though they should probably be considered for internal use only. They could
  be collected in a PGF.Internal module, or marked as "unstable", to make
  this explicit.

+ Also, by using the -fwarn-unused-imports flag, ~220 redundant imports were
  found and removed, reducing the total number of imports by ~15%.
2013-11-05 13:11:10 +00:00
kr.angelov
a4194501fe linref is now used by the linearizer. The visible change is that the 'l' command in the shell now can linearize discontinuous phrases 2013-10-30 14:42:29 +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
df26b134fc fix in the GF compiler and runtime which let us to define pre construct detecting whether this is the last token. 2013-09-03 07:51:25 +00:00
peter.ljunglof
b416f5bbf7 Use nub' instead of nub in some places, remove some unused nub imports 2012-08-29 21:48:34 +00:00
kr.angelov
f8fe23fda7 A basic infrastructure for generating Teyjus bytecode from the GF abstract syntax 2012-08-29 11:43:02 +00:00
hallgren
07af8988d3 PGF run-time library: function names in BracketedString (experimental)
+ Make room for function names in the BracketedString data structure.
+ Fill in function names when linearizing an abstract syntax tree to a
  BracketedString.
+ Fill in wildCId when it is not obvious what the function is.
+ Function bracketedLinearize: for compatibility with the other linearization
  functions, return Leaf "" instead of error "cannot linearize".
+ Export flattenBracketedString from module PGF.
+ PGFServce: make function names available in the JSON representation of
  BracketedString.
2012-03-18 20:12:26 +00:00
kr.angelov
bb6905e36f the parser now use nub instead of nubsort which means that the abstract syntax trees will be returned lazily 2011-12-19 13:10:33 +00:00
krasimir
7d58efb660 optimization in the parser for large lexicons. Now, the parser is slightly slower for grammars with a small lexicon but 3-4 times faster for the English Resource Grammar used in combination with Oxford Advanced Learners Dictionary 2010-12-14 08:46:22 +00:00
krasimir
822a70cf7a change the TcM monad to continuation passing style. The old monad caused stack overflow for large search spaces 2010-10-21 15:01:52 +00:00
krasimir
82edf7bebb support for proof search with high-order functions 2010-10-21 12:47:26 +00:00
krasimir
d45b4ae426 fixed typo which broke the parsing with -openclass 2010-10-20 09:04:48 +00:00
krasimir
775e59dabe added explicit depth parameter to the parsing API and the corresponding command in the shell 2010-10-18 16:51:25 +00:00
krasimir
702b4aad3b now we use the GF reasoner to fillin meta variables in the abstract trees generated from the parser 2010-10-18 15:55:14 +00:00
krasimir
05a52d6937 now since the type checking monad TcM is nondeterministic we can use the same monad in PGF.Forest.getAbsTrees 2010-10-14 14:28:40 +00:00
krasimir
de0354f991 the exhaustive/random generator now knows how to handle computable functions in the types 2010-10-11 17:18:28 +00:00
krasimir
cb8795c222 refactor the API for random generation again. Now PGF contains probabilities in the abstract syntax 2010-10-02 13:03:57 +00:00
krasimir
b0e110cf4f native representation for HOAS in PMCFG and incremental type checking of the parse forest 2010-08-09 10:10:08 +00:00
krasimir
3ca0b6a976 fix the loopchecking in PGF.Forest.bracketedTokn 2010-07-13 12:04:06 +00:00
jordi.saludes
4061674fae Changing rec to rec_ in PGF
To make glasgow extensions happy we had to rename 'rec' to 'rec_' in sources
from PGF folder.
2010-06-05 11:02:51 +00:00
krasimir
e0dc9c80a6 now every BracketedString also has reference to the source expression(s) 2010-05-19 13:32:39 +00:00
krasimir
1743e88192 added function lengthBracketedString 2010-05-19 12:40:07 +00:00
krasimir
31856ebb4c now the parser could return partial parse results 2010-05-19 12:31:36 +00:00
krasimir
4e85f8ada3 refactor BracketedString 2010-05-01 21:02:32 +00:00
krasimir
8460598801 first incarnation of the bracketed string API 2010-04-30 14:36:06 +00:00