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
Evan Czaplicki
cd83c4c8ed
Allow full expressions as the last member of binary expressions (t + t + e)
2013-06-23 01:31:34 -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
4a6032f239
Add file
2013-06-18 16:00:51 -07:00
evancz
afacd1b858
Add hoverable
and hoverables
2013-06-15 00:49:22 -07:00
evancz
316cd1d0ee
Add an experimental API for dev tools.
2013-06-14 21:06:54 -07:00
evancz
a9de2342dc
Solve a "non-exhaustive pattern match"
2013-06-14 19:38:03 -07:00
evancz
35981eb42f
Finish parameterizing the AST and properly check errors in let expressions.
2013-06-14 19:23:58 -07:00
evancz
d7dcf5a9e8
Get the whole compiler building again.
2013-06-13 22:59:14 -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
272ecc67fd
Rename Model/ to Metadata/ because it now only holds info about the types of library functions.
2013-06-13 20:45:12 -07:00
evancz
c7dce08193
Parameterized the AST for type annotations and variable types. Also rename Guid.hs to Unique.hs which reads a lot nicer.
2013-06-13 20:25:00 -07:00
evancz
459cf8ec73
Switch parsers over to new AST
2013-06-13 19:15:40 -07:00
evancz
339ad77c46
Begin getting the parser to match the new SourceSyntax modules.
2013-06-13 18:35:37 -07:00
evancz
bbb2b2a14f
Begin migrating the AST to its own branch for the source syntax of the language.
2013-06-13 18:00:24 -07:00
evancz
73317ed123
Switch to using MultiIf for all if expressions. Simplifies AST.
2013-06-13 16:01:35 -07:00
evancz
6fc30322ce
Print out a bunch of extra information about type checking.
2013-06-09 11:15:03 -07:00
evancz
0d96f82208
Add type constructor for extensible records.
2013-06-07 10:16:38 -07:00
evancz
6e56df59a5
Switch to only generating elmo files. Turn off the CPP flags in .cabal and remove all generated JS files on each build for now.
2013-06-07 09:38:29 -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
evancz
989d878ac5
Merge branch 'master' into dev
...
Conflicts:
compiler/Model/Ast.hs
compiler/Types/Constrain.hs
2013-06-06 22:36:14 -07:00
evancz
ba5cd880d4
Merge branch 'master' of https://github.com/evancz/Elm
2013-06-06 22:30:07 -07:00
evancz
951df07b79
Only produce elmo files. The aim is to use a layout for object files similar to Go, which has thought very hard about how to make compilation really fast.
2013-06-06 22:28:24 -07:00
evancz
ad0f1f1fed
Switch from sets of constraints to lists of constraints. This should have a positive performance impact, in that list insertion should be asymptotically faster than set insertion.
2013-06-06 21:36:18 -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
evancz
1c80966ace
Change the Haskell API for compilation to make it easier to see error messages.
2013-06-06 16:11:23 -07:00
Andrew Miller
3c71ee1c4d
Support @ patterns as in Haskell
2013-06-06 21:27:20 +12:00
evancz
44fecefde6
Merge branch 'master' of https://github.com/evancz/Elm
2013-06-05 14:22:51 -07:00
evancz
212d19c3e8
Start using the given output-directory
2013-06-05 14:22:30 -07:00
evancz
f5bdb2ca7e
Minor code changes to help allow custom infix precedence and associativity.
2013-06-05 14:22:11 -07:00
evancz
2d1e06b17b
Start generating elmi and elmo files to permit sharing of types, values, and infix info between modules.
2013-06-05 00:44:04 -07: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
e086c17e07
Resolve types for values imported from the standard library.
...
Still missing is ADT constructors in pattern matches and values from user defined modules.
2013-05-28 15:59:22 -07:00
evancz
89efcef64e
Merge branch 'master' of https://github.com/evancz/Elm into type-checker-improvements
2013-05-28 14:08:31 -07:00
evancz
22042e2967
Fix issue 162: Let expressions would re-order its members such that functions always came after values. This meant that you could not use the functions to define any values within a let.
2013-05-28 07:06:14 -07:00
evancz
8ae1d112dc
Turn on warning for undefined values.
2013-05-28 06:48:25 -07:00
evancz
3a369463ef
Simplify code for moduleName
function.
2013-05-28 06:47:57 -07:00
evancz
ce6467266f
Clean up imports in many files.
2013-05-28 06:47:36 -07:00
evancz
d292236b2e
Parse out types from ADT constructors.
...
Should help with type-checking things like the Json library.
2013-05-24 10:47:15 +02:00
evancz
f49b8ba1d2
Correct the list of the acceptable JSTypes.
2013-05-23 12:45:31 +02:00
evancz
0f76e1643c
Actually show error message for bad FFI imports and exports.
2013-05-22 16:08:05 +02:00
evancz
868e71e58b
Add JSObject to the FFI parser.
2013-05-22 15:59:47 +02:00
evancz
35fe7d6936
Fix missing var
problem.
2013-05-21 23:47:15 +02:00
evancz
5f1e3bd696
Switch back to putting let and case expressions in closures.
...
In the former case it is actually necessary, in the latter, it partially fixes a mysterious bug with Dict.diff.
Also stop using the LetBoundVars module.
2013-05-21 22:28:18 +02: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
1f1187cc74
Add open
keyword to import everything. Default is now to just import the module, not to open it into local scope.
2013-05-21 10:02:59 +02:00
evancz
94bb5e5a31
Change the type of FieldState
slightly. Now uses selectionStart
and selectionEnd
instead of the more ambiguous start
and end
.
...
Also add tons of documentation to `Graphics.Input`.
Also add the `emptyFieldState` value.
2013-05-20 15:35:44 +02:00