tock-mirror/frontends
Neil Brown e457d82f0c Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies)
This may seem like an odd change, but it simplifies the logic a lot.  I kept having problems with passes not operating on externals (e.g. functions-to-procs, adding array sizes, constant folding in array dimensions) and adding a special case every time to also process the externals was getting silly.

Putting the externals in the AST therefore made sense, but I didn't want to just add dummy bodies as this would cause them to throw up errors (e.g. in the type-checking for functions).  So I turned the bodies into a Maybe type, and that has worked out well.

I also stopped storing the formals in csExternals (since they are now in csNames, and the tree), which streamlined that nicely, and stopped me having to keep them up to date.
2009-04-04 14:56:35 +00:00
..
LexOccam.x Changed names to be uniquified based on their source position, and fixed the source position for things in pragmas 2009-04-02 17:45:31 +00:00
LexRain.x Added support for poison to the lexer and parser (and associated tests) 2008-09-12 14:39:57 +00:00
OccamPasses.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
OccamPassesTest.hs Moved all the remaining pass information to be with the passes themselves, and adjusted the tests accordingly 2008-06-02 14:31:19 +00:00
OccamTypes.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
OccamTypesTest.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
ParseOccam.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
ParseRain.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
ParseRainTest.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
ParseUtils.hs Added the -fwarn-unused-imports compiler option to warn about unused imports, and then set about pruning and ordering (mostly in my code) the import lists for all the modules 2007-09-27 13:13:46 +00:00
PreprocessOccam.hs Added a message so that when we fail to find a file, we say exactly where we looked 2009-04-04 12:31:06 +00:00
PreprocessOccamTest.hs Make Token a real data type. 2008-06-05 09:46:52 +00:00
RainPasses.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
RainPassesTest.hs Changed FUNCTIONs and PROCs to have optional bodies, and put all the externals into the AST (without bodies) 2009-04-04 14:56:35 +00:00
RainTypes.hs Changed the ChanEnd constructor to only keep information about its shared-ness, not about the whole channel 2009-03-23 18:40:28 +00:00
RainTypesTest.hs Changed tocktest so you can pass it -v options for use with the automatic tests 2009-02-08 16:33:53 +00:00
StructureOccam.hs Make Token a real data type. 2008-06-05 09:46:52 +00:00
StructureOccamTest.hs Fixed some StructureOccam tests that were broken recently by the change in the Token type 2008-06-06 13:14:34 +00:00
TypeUnification.hs Extended the type unification for Rain to support type-checking things that are being poisoned (which could be either end of a channel) 2008-09-12 14:40:04 +00:00
UnifyType.hs Extended the type unification for Rain to support type-checking things that are being poisoned (which could be either end of a channel) 2008-09-12 14:40:04 +00:00