![]() 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. |
||
---|---|---|
.. | ||
CommonTest.hs | ||
Errors.hs | ||
EvalConstants.hs | ||
EvalLiterals.hs | ||
GenericUtils.hs | ||
Intrinsics.hs | ||
OccamEDSL.hs | ||
Pattern.hs | ||
PrettyShow.hs | ||
ShowCode.hs | ||
TestFramework.hs | ||
TestHarness.hs | ||
TestUtils.hs | ||
TreeUtils.hs | ||
Types.hs | ||
Utils.hs |