Evan Czaplicki
a56efd851b
Check that imports actually exist in the known interfaces
2013-07-31 12:12:30 -07:00
Evan Czaplicki
a400ab140a
Get compling
2013-07-31 07:42:21 -07:00
Evan Czaplicki
a4c4cf0493
Use Location.none
less
2013-07-30 11:55:41 -07:00
Evan Czaplicki
b26edcc46e
Simplify representation of source locations
2013-07-30 11:43:42 -07:00
Evan Czaplicki
fda1d2f979
Add canonicalization for aliases and ADTs
2013-07-29 19:25:24 +02:00
Evan Czaplicki
0f3910d59e
Make SortDefinitions aware of ADT constructors, gave incorrect sorts before
2013-07-29 15:29:23 +02:00
Evan Czaplicki
3f96acf1f1
Get rid of logging and add Int, Float, Char, Bool to the global environment
2013-07-29 13:23:02 +02:00
Evan Czaplicki
2f5639c4fb
Introduce Transform.Canonicalize
...
Run this to create a properly formatted ModuleInterface
2013-07-29 11:59:55 +02:00
Evan Czaplicki
7b90975dad
Simplify code to check for structural errors
2013-07-23 16:15:56 +02:00
Evan Czaplicki
621a9c2d2e
Add a way to flatten lets that have become nested
2013-07-16 21:40:11 +02:00
Evan Czaplicki
ce357b3d0d
Switch to reporting errors with [Doc] for prettier layout.
2013-07-16 14:52:50 +02:00
Evan Czaplicki
93a948cd67
Add back in checks for duplicate and out-of-order definitions.
2013-07-15 01:06:00 +02:00
Evan Czaplicki
fe7357a0b5
Export boundVars function, which is currently reeded to generate JS.
2013-07-14 01:41:52 +02:00
Evan Czaplicki
7f433922ed
Create module to sort let-blocks into "strongly connected components".
...
This does two things:
* makes it possible to automatically generalize functions without
bothering the programmer about managing dependencies.
* sorts values such that they'll be defined in the appropriate order
when they are mapped down to JavaScript.
2013-07-12 22:24:12 +02:00
Evan Czaplicki
078692ad8c
Get Optimize.hs updated for the newer AST.
2013-07-07 12:55:08 +02:00
Evan Czaplicki
5c68f6bb73
Convert more files to the new Expression format that relies more on
...
patterns. Seems to clean things up so far.
Also, begin adding a module that resorts definitions to make sure
that each definition comes after the ones it depends on. This will
also make it possible to disallow recursive values statically.
2013-07-04 17:24:04 +02:00
Evan Czaplicki
74d3c35131
Fix optimization bug with > sign.
2013-07-02 16:58:19 +02:00
Evan Czaplicki
d700acfeac
Fix substitutions for ExplicitList.
2013-07-01 20:00:37 +02:00
Evan Czaplicki
98eceb5496
Clean up Transform/Replace.hs. Switch the environment from a (String -> String) to a (Map String String).
2013-06-23 01:33:33 -07:00
evancz
9a40249e05
Fix the confusion with "Cons" and "Nil" in issue #176 .
...
Also add the ExplicitList expression.
2013-06-20 21:25:10 -07:00
evancz
721ce4f192
Continue reorganizing the code-base.
...
Remove uses of uniplate, introduces a regression in testing the ordering of Defs in let-expressions.
2013-06-13 22:45:08 -07:00
evancz
339ad77c46
Begin getting the parser to match the new SourceSyntax modules.
2013-06-13 18:35:37 -07:00
evancz
73317ed123
Switch to using MultiIf for all if expressions. Simplifies AST.
2013-06-13 16:01:35 -07:00
evancz
28db384691
Fix parsing bug in as
patterns that would fully commit if any spaces were seen.
...
Also add `as` variables to reported variables in patterns.
2013-06-06 23:16:46 -07:00
Andrew Miller
f8547cf4be
Update 'at patterns' to use the as notation per mailing list discussion
2013-06-07 12:53:50 +12:00
Andrew Miller
3c71ee1c4d
Support @ patterns as in Haskell
2013-06-06 21:27:20 +12:00
Andrew Miller
6a34482849
Add support for type annotations in let
2013-06-03 19:44:45 +12:00
evancz
6b28feaa2b
Switch name of Context to Located. Whoo static types :)
2013-05-29 16:20:38 -07:00
evancz
b4bf8e9810
Get rid of ($)
...
...
http://www.youtube.com/watch?v=a1Y73sPHKxw
2013-05-28 17:03:48 -07:00
evancz
ce51a0e39f
Add type-class for lists in LetBoundVars.hs
2013-05-21 22:11:23 +02:00
evancz
4eb973a206
Update Optimize.hs to use some of the newer infix operators.
2013-05-21 22:09:08 +02:00
evancz
1d04b342d8
Permit pattern matching on records in case-expressions.
2013-04-07 06:46:46 -07:00
evancz
99ae5c6ba0
Finish moving the compiler down a directory.
2013-03-16 12:07:32 -07:00