Commit Graph

19 Commits

Author SHA1 Message Date
hallgren
0feb386691 Faster regular expression pattern matching in the grammar compiler.
The sequence operator (x+y) was implemented by splitting the string to be
matched at all positions and trying to match the parts against the two
subpatterns. To reduce the number of splits, we now estimate the minimum and
maximum length of the string that the subpatterns could match. For common
cases, where one of the subpatterns is a string of known length, like
in (x+"y") or (x + ("a"|"o"|"u"|"e")+"y"), only one split will be tried.
2013-02-27 20:59:43 +00:00
hallgren
b2965730f1 GF.Grammar.Macros: add function collectPattOp
collectPattOp :: (Patt -> [a]) -> Patt -> [a]
2012-10-25 16:12:21 +00:00
hallgren
619c341ee9 GF.Grammar.Macros: add function composPattOp
For Patt, analogous to composOp for Term.
2012-10-24 22:40:18 +00:00
hallgren
b094274c0e Report many type errors instead of stopping after the first one
In GF.Compile.CheckGrammar, use a new topological sorting function that
groups independent judgements, allowing them all to be checked before
continuing or reporting errors.
2012-06-26 14:46:18 +00:00
kr.angelov
416d231c5e Now PMCFG is compiled per module and at the end we only link it. The new compilation schema is few times faster. 2011-11-10 14:09:41 +00:00
kr.angelov
734c66710e merge GF.Infra.Modules and GF.Grammar.Grammar. This is a preparation for the separate PGF building 2011-11-02 13:57:11 +00:00
kr.angelov
5fe49ed9f7 Now the compiler maintains more precise information for the source locations of the different definitions. There is a --tags option which generates a list of all identifiers with their source locations. 2011-11-02 11:44:59 +00:00
hallgren
e5accc0d8d Some experiments with PSeq (left commented out) 2011-10-20 14:25:31 +00:00
hallgren
8098f79941 GF.Grammar.Macros: simplify composOp and composSafeOp 2011-09-07 17:11:52 +00:00
hallgren
bfe4b0b2a4 GF.Grammar.*: generalized the type of some functions that can not fail from the Err monad to arbitrary monads 2011-09-01 16:35:53 +00:00
aarne
f8c4903285 overloaded opers included in sorting of judgements 2011-03-03 15:10:31 +00:00
aarne
0dfbc9b730 the command show_operations to inspect opers in scope 2011-02-28 13:31:04 +00:00
krasimir
115b4213d5 operations in the abstract syntax 2010-11-12 19:37:19 +00:00
krasimir
992a7ffb38 Yay!! Direct generation of PMCFG from GF grammar 2010-06-18 12:55:58 +00:00
krasimir
c3f4c3eba7 refactoring in GF.Grammar.Grammar 2010-05-28 14:15:15 +00:00
krasimir
f9f2491fcc composOp should iterate under ImplArg 2010-05-28 12:19:04 +00:00
krasimir
bf74f50733 store and propagate the exact source location for all judgements in the grammar. It may not be used accurately in the error messages yet 2010-03-22 21:15:29 +00:00
krasimir
19b17dceb6 no need to keep the list of constructors per category in .gfo 2010-02-16 09:34:02 +00:00
krasimir
f85232947e reorganize the directories under src, and rescue the JavaScript interpreter from deprecated 2009-12-13 18:50:29 +00:00