Strip out most of the type awareness from the parser.
Type inference and checking is now handled entirely by the later passes. There are a few remaining places in the parser that look at the types of things that have been defined; this is in order to resolve syntax ambiguities (e.g. c[x], c ! x). This is a temporary measure to minimise cgtest breakage; it can't work for things that need to be inferred (e.g. "CHAN INT c:" "d IS c:" "d ! x"), so it'll need moving out to a pass in the near future. There's still quite a bit of work to do on this, but results so far are encouraging: the code is an awful lot cleaner, and about four hundred lines shorter.
This commit is contained in:
parent
249fd23e75
commit
8a914cd19a