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