Neil Brown
3f84532695
Renamed the old pass that recorded declared types, added a new skeleton pass for recording inferred types, and wrote some tests for this new pass
2007-08-18 17:33:40 +00:00
Neil Brown
b9c12a0b22
Rain: refactored the tests, pulling out some common functionality
2007-08-18 17:32:41 +00:00
Neil Brown
88380cdc6f
Rain: implemented the pass to record the type of names in CompState
2007-08-18 17:05:08 +00:00
Neil Brown
bc24ba16b1
Rain: added a skeleton pass for recording type names in CompState, and wrote a test for it
2007-08-18 16:56:25 +00:00
Neil Brown
d7dc28ce47
Rain: generalised part of the test framework and added a new helper function for testing passes
2007-08-18 16:55:20 +00:00
Neil Brown
dcfd23db4f
Rain: expanding the unique-name pass to also resolve inner variables, and changed the tests accordingly
2007-08-18 16:03:19 +00:00
Neil Brown
34eac44d45
Rain: implemented the pass to give declarations unique names
2007-08-18 15:48:22 +00:00
Neil Brown
9d9b6dd73f
Rain: added a skeleton pass for giving variables unique names, and wrote tests for it
2007-08-18 15:39:39 +00:00
Neil Brown
f732996c13
Rain: added various helper functions to RainPassTest
2007-08-18 15:38:43 +00:00
Neil Brown
f700392676
Added a useful transformEither function to Utils
2007-08-18 15:37:29 +00:00
Neil Brown
68a3b3f4bc
Tidied up some test functions and added assertNotEqual function
2007-08-18 14:48:23 +00:00
Neil Brown
8ab4299553
Refactored TreeUtil to provide Show and Eq instances for AnyDataItem, which allowed other functions to be simplified/removed
2007-08-18 14:46:57 +00:00
Neil Brown
fe5141d310
Changed the Either order in TreeUtil of getMatchedItems to match Haskell convention
2007-08-18 11:09:37 +00:00
Neil Brown
7b81208794
Rain: refactored the pass tests to remove duplicate code
2007-08-18 10:59:00 +00:00
Neil Brown
3cb1a942f4
Rain: tidied up the types of the each tests slightly
2007-08-18 10:36:04 +00:00
Neil Brown
66fc1d706e
Rain: tidied up the transformEach pass
2007-08-18 10:28:22 +00:00
Neil Brown
18fa9cdb65
Rain: added another test for the transformEach pass
2007-08-18 10:21:44 +00:00
Neil Brown
7e255f2218
Cleared up the error messages in assertPatternMatch in TreeUtil
2007-08-18 10:20:11 +00:00
Neil Brown
1cc005f829
Added checks for consistent patterns in checkMatch in TreeUtil
2007-08-18 10:09:09 +00:00
Neil Brown
e397e95364
Simplified the checkConsEq function a little in TreeUtil
2007-08-18 10:05:09 +00:00
Adam Sampson
5628f93db6
Fix some Haddock syntax (comments that shouldn't have been Haddock)
2007-08-17 18:21:29 +00:00
Neil Brown
a49c462ca1
Corrected the test of the rain foreach-pass -- the test now passes
2007-08-16 14:17:44 +00:00
Neil Brown
e6d4425e82
Improved the printing of Patterns so that more helpful and readable output is produced when a test fails
2007-08-16 14:11:58 +00:00
Neil Brown
b9a78e99e4
Added to RainPassTest some code for setting up the defined names
2007-08-16 13:51:17 +00:00
Neil Brown
8a9ce4e205
Changed the rain for-each pass to extract the inner result type to check against, not the IO monad (oops)
2007-08-16 13:35:23 +00:00
Neil Brown
3d1d5e35ef
Changed the rain foreach-pass test to actually run the transformEach pass it was meant to be testing, and also got the transformEach test to compile
2007-08-16 13:16:04 +00:00
Neil Brown
2d7349eb5d
Added a new file for Rain passes, and a file for testing them, and altered the main test rig accordingly
2007-08-16 12:19:30 +00:00
Neil Brown
be340024ce
Added some pattern matching utilities (mainly intended for matching the AST)
2007-08-16 12:18:48 +00:00
Neil Brown
5ee2303dc7
Moved some functions into TestUtil from RainParseTest
2007-08-16 12:17:49 +00:00
Neil Brown
151134e70a
Fixed the conflict between the new AST documentation and the addition of the Rain ForEach constructor in the AST
2007-08-14 11:59:45 +00:00
Neil Brown
d574ec8e3d
Added ForEach to the replicator possibilities in the AST, and tested parsing Rain seqeach and pareach loops
2007-08-13 16:05:17 +00:00
Neil Brown
2902d085a4
Rain: added support for string and numerical literals
2007-08-13 16:03:22 +00:00
Neil Brown
38b0272555
Rain: changed the name parse function to not require the type of the name
2007-08-13 15:58:44 +00:00
Neil Brown
d2022defb0
Changed the Rain parser to use the CompState of the occam parser
2007-08-07 18:43:20 +00:00
Adam Sampson
eab08e7af2
More updates to the AST documentation.
...
This consists mostly of syntax tweaks, although I've also added documentation
to a few types that didn't already have it.
2007-08-13 20:31:07 +00:00
Neil Brown
feebea4473
Changed the AST to distinguish reading a timer from reading a channel
2007-08-13 16:26:03 +00:00
Neil Brown
872864bf81
Added documentation to the AST
2007-08-07 16:18:01 +00:00
Adam Sampson
7bdbb3b729
Make csBackend a proper type, and make the options lowercase.
...
This is to match the handling of --mode.
2007-08-08 19:56:28 +00:00
Adam Sampson
6047836456
Add a first shot at the assembly analyser, and make GenerateC use it.
...
This does about the minimum necessary for assembly analysis to work. It assumes
that any function it hasn't been able to analyse itself needs 512 bytes (most
need far less); it doesn't do any flow analysis; it doesn't do a lot of sanity
checking. However, it produces sensible numbers, and works with the demos I've
tried so far.
I was originally going to make this a separate tool, but there are a number of
bits of the code can be nicely reused, so it's a separate "operating mode" in
the existing program (as is parse-only mode now).
2007-08-08 19:39:47 +00:00
Adam Sampson
d589cf0e46
Parse doesn't need readHex any more
2007-08-07 18:44:41 +00:00
Neil Brown
0eadc2302c
Added mostneg and mostpos for my custom bool type, to get cgtest05 to compile
2007-08-06 22:42:50 +00:00
Neil Brown
00a617150e
Improved time handling by using helper function
2007-08-06 22:36:23 +00:00
Adam Sampson
e0351ca367
Unbreak the Makefile
2007-08-07 12:56:50 +00:00
Neil Brown
1f9480eb89
Added support for checking that arrays are only used in parallel with constant subscripts
...
Note that this feature makes two assumptions:
- Constant folding has already been performed on the tree
- Array subscript literals will all be simply of type A.IntLiteral (with type A.Int), without any retyping, any expressions, etc
2007-08-07 12:18:29 +00:00
Neil Brown
26e2ff85aa
Added more usage checking tests
2007-08-07 12:07:16 +00:00
Neil Brown
59e173a885
Made the literals in UsageCheckTests more distinct from the variables
2007-08-07 12:04:08 +00:00
Neil Brown
9c722ba27c
Some tests for getting the parallel usage checker working on arrays and replicated pars properly
2007-07-31 09:43:59 +00:00
Neil Brown
2e39bd463d
Deal with specifications in parallel usage checker
2007-07-30 22:39:58 +00:00
Neil Brown
bed325beea
Parallel Usage Checker and Test Rearrangement
...
This patch is a bit large, being as it encompasses two major changes:
1. The addition of the first version of a parallel usage checker. The usage checker uses the generics library (like
the other passes) to work out if the parallel usage rules are broken. It mainly consists of:
a) a function used to determine which variables are written to/read from in given bits of code, and
b) a function that applies a) across the members of any par construct in the file, and checks that
the expected usage rules hold
The parallel usage checker is in an early stage, but I think the design is sensible - at least for doing the variable
and array usage. The channel usage checker will require some slightly different functionality, and
I am not considering the abbreviation checker yet.
2. As a consquence of adding a second test file (UsageCheckTest) alongside the first (RainParseTest), I have
created a TestMain class that is intended to run all tests for all parts of Tock. I have also extracted some
useful helper functions (for creating the expected results of tests) into a file named TestUtil. I've also
modified the Makefil accordingly.
There are a few other minor changes to RainParse/RainParseTest that are also included in the patch as separating them
would have been tricky.
2007-07-30 22:04:30 +00:00
Adam Sampson
600467bbdd
Clean up the Makefile a bit
2007-08-06 23:27:54 +00:00