Mirror of http://offog.org/git/tock.git . Tock (translator from occam to C from Kent) is a Haskell-based compiler for occam and related languages.
Go to file
Adam Sampson 8a914cd19a 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.
2008-04-06 02:59:49 +00:00
backends Rewrite AnalyseAsm's parser. 2008-04-05 22:05:17 +00:00
checks Changed to a state monad for warnings, and added a runPassM function to remove duplicate code for running passes 2008-04-03 12:21:59 +00:00
common Make protocolItems give a more useful error message on failure. 2008-04-06 02:50:46 +00:00
data The type context is now used by passes, not the parser. 2008-04-06 02:59:34 +00:00
docextra Clean up the documentation hack a bit. 2008-02-28 14:43:53 +00:00
flow Removed Wait, GetTime and AlternativeWait (the old Rain time items) from the AST 2008-03-24 15:15:54 +00:00
frontends Strip out most of the type awareness from the parser. 2008-04-06 02:59:49 +00:00
pass Make the inferredTypesRecorded property check Infer has been removed. 2008-04-05 22:41:29 +00:00
support Added support for occam's flush (sending 255) and moved some of the unreachable flush commands in the C++ support headers 2008-03-25 11:37:02 +00:00
testcases Update all specifications when constant folding. 2008-04-06 02:01:47 +00:00
transformations Remove the Type/AbbrevMode information from Actual*. 2008-03-26 18:16:09 +00:00
AUTHORS Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
cgtests.mk Added some rules to cgtests.mk for profiling compilation of the cgtests and automatically generating PNGs of the profiles 2008-04-03 11:25:30 +00:00
ChangeLog Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
compile-cgtests Added rules for getting and making the cgtests to the new Automake make system 2007-10-09 00:44:41 +00:00
CompilerCommands.hs.in Reworked the way we record the C/C++ compiler flags for Tock to use 2008-03-25 14:53:06 +00:00
configure.ac Reworked the way we record the C/C++ compiler flags for Tock to use 2008-03-25 14:53:06 +00:00
COPYING Add licensing information. 2007-08-18 20:42:11 +00:00
COPYING.LIB Add licensing information. 2007-08-18 20:42:11 +00:00
GenOrdAST.hs Added a case for the top-level AST to OrdAST 2008-02-05 22:36:12 +00:00
GenTagAST.hs Changed two uses of gmapQ (const undefined) to the similar glength function in the SYB library 2008-02-24 12:32:25 +00:00
LANGUAGE Implement short-form PLACE, and fix PLACE IN WORKSPACE/VECSPACE. 2008-03-17 18:47:54 +00:00
Main.hs Changed to a state monad for warnings, and added a runPassM function to remove duplicate code for running passes 2008-04-03 12:21:59 +00:00
Makefile.am Rewrite AnalyseAsm's parser. 2008-04-05 22:05:17 +00:00
NEWS Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
README Changed tock to use autoconf/automake for its build process 2007-10-08 17:02:03 +00:00
SYNTAX Give tock its own repo -- i.e. remove everything else and move tock up 2007-07-16 21:48:55 +00:00
TestMain.hs Rewrite AnalyseAsm's parser. 2008-04-05 22:05:17 +00:00
tock-1.0.pc.in Reworked the way we record the C/C++ compiler flags for Tock to use 2008-03-25 14:53:06 +00:00
TODO Give tock its own repo -- i.e. remove everything else and move tock up 2007-07-16 21:48:55 +00:00
TypeSizes.hs.in Reworked the way we record the C/C++ compiler flags for Tock to use 2008-03-25 14:53:06 +00:00