Commit graph

30 commits

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