1
0
forked from GitHub/gf-core
Commit Graph

121 Commits

Author SHA1 Message Date
hallgren
1c0429c322 GF.Grammar.PatternMatch: relax overly restrictive type signatures 2012-11-07 17:23:08 +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
86d17827ee GF shell, show_operations: nicer looking types for linearization functions
Adding a lock field to the result type of linearization functions.
TODO: figure out how to add a lock field to the argument types too.
2012-09-28 12:38:26 +00:00
hallgren
8154e480dd GF shell, show_operations: also show the types of linearization functions
This is a simple change in GF.Grammar.Lookup.allOpers, which is used only in
the implementation of the show_operations command in the shell.

This is useful when importing a concrete syntax (like LexiconEng) as a resource.
However, the types don't always look as nice as I hoped...
2012-09-27 15:55:20 +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
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
aarne
3dc2e55949 printing ResValue judgements as comments, to provide useful information when a conflict is found between parameter constructors 2012-06-25 09:24:04 +00:00
hallgren
b76d1ecdcd Add file name to error message when reading a bad .gfo file (in some cases)
This turns error messages like 

	gf: too few bytes. Failed reading at byte position 1

	gf: /some/path/somefile.gfo: too few bytes. Failed reading at byte position 1

but a better fix would be to ignore bad .gfo files and compile from source.
The problem is the way this decision is made in
GF.Compile.ReadFiles.selectFormat...
2012-06-15 10:15:16 +00:00
hallgren
841e54e3dc alex 3 incompatibility workaround
As a temporary workaround, alex is no longer invoked automatically when
building with cabal. Developers who want to modify the lexer need to run
alex on Lexer.x manually and record the modified Lexer.hs.

    src/compiler/GF/Grammar/lexer/Lexer.x    -- hidden from cabal
    src/compiler/GF/Grammar/Lexer.hs         -- update it manually
2012-05-04 12:39:07 +00:00
aarne
aa7668ef75 the Predef function eqVal to compare equality of parameter values 2012-02-24 10:00:27 +00:00
hallgren
9ebc423004 gfse: experimental support for editing concrete syntax in text mode 2012-02-22 16:30:42 +00:00
kr.angelov
e6135d963e missing cases in GF.Grammar.Binary 2011-12-02 09:58:18 +00:00
kr.angelov
7863b21c1a more stuff in the new type checker 2011-11-30 14:55:52 +00:00
kr.angelov
fffc5f2507 Sketch of the new type checker for the concrete syntax. Enabled only with -new-comp 2011-11-29 12:12:51 +00:00
kr.angelov
04fdb41927 fix in the versioning of the .gfo files 2011-11-15 19:46:02 +00:00
kr.angelov
a2626e24dd now we store version number in every .gfo file. If the file is compiled with different compiler then we simply recompile it. 2011-11-15 19:12:22 +00:00
kr.angelov
8a10aa5cf9 now the pretty printer in GF has a new mode called Internal. This is the most detailed mode and it can print even things that are not in the GF syntax. For example PMCFG snippets and indirections. 2011-11-15 15:55:45 +00:00
kr.angelov
61c16f2eb2 more structured format for errors and warnings from the compiler 2011-11-15 13:33:44 +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
ed451653bd Introduce an explicit error value in the Term type
This makes it easier to treat run-time errors (e.g. caused by calls to
Predef.error) in a way that is more typical for a lazy functional language.
2011-10-20 14:36:30 +00:00
hallgren
e5accc0d8d Some experiments with PSeq (left commented out) 2011-10-20 14:25:31 +00:00
aarne
a83b6bea62 don't count app nodes in term size 2011-09-26 13:56:39 +00:00
aarne
780d9ef528 bug fixes in code size analysis 2011-09-24 08:20:58 +00:00
kr.angelov
bb599029c9 change the precedence for the left argument of -> 2011-09-22 16:24:02 +00:00
aarne
6db0c74c2f the sd -size command now shows the size of all code needed for defining an oper 2011-09-22 12:11:03 +00:00
aarne
baa9bcd9d0 documented the ss command 2011-09-22 07:40:19 +00:00
aarne
bd22b935de statistics on grammar size in terms of constructors 2011-09-21 13:24:59 +00:00
aarne
958e81126d commands ss to show source, and sd to show the dependencies of a constant 2011-09-21 08:12:14 +00:00
aarne
33a42b1c7c module for analysing source grammars 2011-09-20 16:00:56 +00:00
aarne
a2ccf1ce69 command ss to show source (including gfo) in text; to be extended 2011-09-20 14:58:27 +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
hallgren
d180dadf08 GF.Infra.Modules: minor tweaks
Still keeping the modules both in a list and in a finite map. The overhead is
smaller than I initially thought.
2011-08-31 11:18:16 +00:00
hallgren
ba10b5b0ca GF.Infra.Modules: keep the modules of a grammar in a finite map instead of a list
This speeds up the compilation of PhrasebookFin.pgf by 12%, mosly by speeding
up calls to lookupModule in calls from lookupParamValues, in calls
from allParamValues.

The invariant "modules are stored in dependency order" is no longer respected!
But the type MGrammar is now abstract, making it easier to maintain this or
other invariants in the future.
2011-08-30 18:54:50 +00:00
hallgren
fe2fad8f8d GF.Grammar.Lookup: added function lookupQIdentInfo
+ Avoids some code duplication by combinging lookupModule and lookupIdentInfo.
+ Also removed lookupIdentInfo from export list, since it is not used anywhere
  else.
2011-08-30 14:53:11 +00:00
hallgren
a0c785d5d0 PatternMatch.hs: commented out suspicious unused function varsOfPatt 2011-08-30 12:13:50 +00:00
aarne
848373e29e GenIP, GenRP in Extra and any_Quant in ExtraEng 2011-07-21 08:25:04 +00:00
aarne
a3924abece Predef functions toUpper, toLower, isUpper 2011-06-02 16:10:46 +00:00
aarne
7361ddea45 make it possible to override opers defined in an interface by syntax 'instance Foo of Bar - [f,g,h]' 2011-03-12 11:24:14 +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
aarne
4a5d8d9f55 option cc -list added 2010-12-14 17:42:42 +00:00
aarne
96433c2914 preparing resource api for multilingual documentation 2010-12-10 08:48:26 +00:00
krasimir
f6a7292ad2 bugfix for the abstract operations 2010-11-15 09:38:31 +00:00
krasimir
115b4213d5 operations in the abstract syntax 2010-11-12 19:37:19 +00:00
aarne
709b0518fa restored the .ebnf grammar format 2010-09-24 12:39:49 +00:00
krasimir
5ae7be358d redesign the open-literals API 2010-07-01 08:51:59 +00:00