1
0
forked from GitHub/gf-core
Commit Graph

32 Commits

Author SHA1 Message Date
kr.angelov
4efb2d5a22 Prelude.CAPIT is now a built-in primitive. It still generates &| in the Haskell runtime but will be intepreted in the C runtime 2014-10-09 19:34:12 +00:00
john.j.camilleri
d59749c914 PGF Web Service: include entire completion in full mode
When using full=yes in the web service 'complete' command,
you now get an additional field 'seq' with the longest possible completion.
So, given:

  lin
    f1 = ss "the" ;
    f2 = ss ("the red house" | "the real deal") ;

and trying to complete on input "th", you get:

    [
        {
            "from": "TestCnc",
            "brackets": {
                "cat": "_",
                "fid": 0,
                "index": 0,
                "fun": "_",
                "children": []
            },
            "text": "th",
            "completions": [
                {
                    "token": "the",
                    "funs": [
                        {
                            "fun": "f1",
                            "hyps": [],
                            "cat": "C",
                            "seq": "the"
                        },
                        {
                            "fun": "f2",
                            "hyps": [],
                            "cat": "C",
                            "seq": "the red house"
                        },
                        {
                            "fun": "f2",
                            "hyps": [],
                            "cat": "C",
                            "seq": "the real deal"
                        }
                    ]
                }
            ]
        }
    ]
2014-07-15 09:33:22 +00:00
john
747287055f PGF web service: Return additional completion info with 'full' flag
BETA! The 'complete' command now has a new flag 'full' which when set
returns additional info about completions.

Without 'full' flag (default):

[
    {
        "from": "PhrasebookEng",
        "brackets": {
            "cat": "_",
            "fid": 0,
            "index": 0,
            "fun": "_",
            "children": [
                {
                    "token": "the"
                }
            ]
        },
        "text": "su",
        "completions": [
            "supermarket",
            "suspect"
        ]
    }
]

With full=true or full=yes:

[
    {
        "from": "PhrasebookEng",
        "brackets": {
            "cat": "_",
            "fid": 0,
            "index": 0,
            "fun": "_",
            "children": [
                {
                    "token": "the"
                }
            ]
        },
        "text": "su",
        "completions": [
            {
                "token": "supermarket",
                "funs": [
                    {
                        "fid": 421,
                        "fun": "Supermarket",
                        "hyps": [],
                        "cat": "PlaceKind"
                    }
                ]
            },
            {
                "token": "suspect",
                "funs": [
                    {
                        "fid": 445,
                        "fun": "Suspect",
                        "hyps": [],
                        "cat": "Property"
                    }
                ]
            }
        ]
    }
]
2014-07-11 09:25:26 +00:00
kr.angelov
fbc8bb6769 fix in the Haskell runtime 2014-01-24 08:34:55 +00:00
kr.angelov
1d7b6f44b6 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
hallgren
decd7122de 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
efa4bc4d62 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
krasimir
f62d6a7ed4 now every parse state keeps reference only to the concrete and the abstract syntaxes but not to the whole PGF 2010-12-14 17:20:53 +00:00
krasimir
8a0b3b8ba8 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
92266359d3 fixed typos in the documentation for PGF.Parse 2010-12-08 10:32:18 +00:00
krasimir
51452d4ef0 added explicit depth parameter to the parsing API and the corresponding command in the shell 2010-10-18 16:51:25 +00:00
krasimir
9aa7c88c5a native representation for HOAS in PMCFG and incremental type checking of the parse forest 2010-08-09 10:10:08 +00:00
krasimir
df555d54fb fix the algorithm for items cutting in the partial parser 2010-07-15 14:01:51 +00:00
krasimir
8d63bf8d79 report type errors in the shell from command "p" 2010-07-07 12:23:21 +00:00
krasimir
e92151caf8 redesign the open-literals API 2010-07-01 08:51:59 +00:00
krasimir
97a9ddb4a7 rename isLiteralFCat -> isPredefFId, fcat(String|Int|Float) -> fid(String|Int|Float) 2010-06-30 07:40:22 +00:00
krasimir
43736135ca introduce the type synonym Token=String in the PGF API 2010-06-29 09:00:41 +00:00
krasimir
237b30d6c4 preliminary version of API for Open Literals 2010-06-22 12:31:04 +00:00
jordi.saludes
098dbc2c72 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
7e8a5d05ca now every BracketedString also has reference to the source expression(s) 2010-05-19 13:32:39 +00:00
krasimir
529447f56f now the parser could return partial parse results 2010-05-19 12:31:36 +00:00
krasimir
724ccb9b94 simple refactoring: use ActiveKey in PGF.Parse.getParseResult instead of plain pair of FId and LIndex 2010-05-17 06:12:45 +00:00
krasimir
d2ae070eac optimize/simplify the error reporting in the new API 2010-04-30 20:16:16 +00:00
krasimir
83528f15d7 first incarnation of the bracketed string API 2010-04-30 14:36:06 +00:00
krasimir
94235548c4 fix parsing of literals 2010-04-23 20:46:14 +00:00
aarne
0e2f34b269 in the shell, permit 3-letter lang codes as concrete syntax names 2010-04-04 20:46:36 +00:00
krasimir
3685595ece cleanup the code of the PGF interpreter and polish the binary serialization to match the preliminary specification 2010-01-27 09:39:14 +00:00
krasimir
a039808141 PGF is now real synchronous PMCFG 2010-01-17 21:35:36 +00:00
krasimir
362f333ebd now the linearization is completely based on PMCFG 2010-01-17 17:05:21 +00:00
krasimir
e5efe28c74 move the definitions of _B and _V to PGF.Macros 2010-01-12 14:36:41 +00:00
krasimir
11218cdbca store the label names in PMCFG 2010-01-05 08:35:33 +00:00
krasimir
76debee2c1 remove the old parsing code and the -erasing=on flag 2009-12-14 10:54:22 +00:00