Evan Czaplicki
d9c1317a25
Add pretty printing for record types
2013-07-25 17:09:10 +02:00
Evan Czaplicki
abb6dc19f6
Prettier printing for infix functions like div
2013-07-25 15:55:55 +02:00
Evan Czaplicki
8ffcf9e80e
Prettier printing for infix operator definitions
2013-07-23 15:43:21 +02:00
Evan Czaplicki
eaa751d987
Make pretty printing for types prettier
2013-07-22 14:52:57 +02:00
Evan Czaplicki
138e99cc81
Begin to canonicalize imported values and types
2013-07-22 14:42:45 +02:00
Evan Czaplicki
c140d690fc
First draft of cross-module type checking
...
Currently, all top-level types are imported. No alias resolution
happens so you need to use "import open M" atm.
2013-07-21 22:50:48 +02:00
Evan Czaplicki
22f7f8a43a
Create a serializable interface for a module's type information
...
Also add a flag to print out top-level types
2013-07-21 06:08:08 +02:00
Evan Czaplicki
b0f96a2eab
Switch from [Def t v] to (LExpr t v) for program representation
2013-07-19 18:02:24 +02:00
Evan Czaplicki
c942afea6a
Nicer pretty printing and a special variable to "Save the Environment"
2013-07-19 17:45:16 +02:00
Evan Czaplicki
1d1083600f
Fix naming bug for List type
2013-07-17 19:24:56 +02:00
Evan Czaplicki
e852ae25e3
Add field to MetadataModule for datatypes
2013-07-17 19:24:40 +02:00
Evan Czaplicki
8145e600fc
Create MetadataModule for more refined information about modules
...
Used in most places to break a module into more orthogonal components.
Some of this data needs to be serialized into the interface files.
2013-07-16 21:42:37 +02:00
Evan Czaplicki
1ffaad1f5c
Create an isOp
function for strings.
2013-07-16 21:37:48 +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
0070a844d0
Switch the internal data constructor name for tuples. Before tuple
...
constructors could be shadowed by user defined ADT's such as "Tuple0",
"Tuple2", etc. Now it uses "_Tuple0" to make it impossible to overlap
with user defined ASTs.
2013-07-14 19:52:50 +02:00
Evan Czaplicki
fe23c0e66d
fix pretty printer for chars
2013-07-13 01:05:48 +02:00
Evan Czaplicki
b5887f41c9
Get type inference working in the basic case. Begin working on
...
printing errors in a prettier way.
2013-07-10 14:31:57 +02:00
Evan Czaplicki
2ef18826de
Start adding constraint generation for declarations.
2013-07-08 18:23:18 +02:00
Evan Czaplicki
e4ca96731d
Create a source syntax for types that will get converted into the internal type representation during type checking.
2013-07-07 18:13:40 +02:00
Evan Czaplicki
f2b3ed7027
Start using the PrettyPrint library to show expressions, literals, and patterns.
2013-07-07 12:56:34 +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
69ed7631fe
Start switching over to an AST that uses patterns in lambdas and
...
pulls the arguments out of Definitions (placing them in lambdas).
2013-07-04 11:36:08 +02:00
Evan Czaplicki
cdb63bd8d1
Start writing a new type checker based on the ATAPL chapter on efficient type-inference.
2013-07-03 14:35:51 +02:00
Evan Czaplicki
e80ea9e430
Add support for pattern matching on literals.
2013-06-23 01:36:23 -07:00
Evan Czaplicki
c158155bdf
Switch to using (Map String String) instead of (String -> String) as the environment.
2013-06-23 01:35:04 -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
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
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