Commit graph

108 commits

Author SHA1 Message Date
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