Commit Graph

506 Commits

Author SHA1 Message Date
Neil Brown
bd0af91813 Fixed a slightly confusing inner predicate name for findMeta 2007-08-20 22:06:26 +00:00
Neil Brown
34c61702de Rain: added a new test for testing the parsing of top-level declarations 2007-08-20 18:44:11 +00:00
Neil Brown
810dcbfbd9 Added Rain as a possible frontend for Tock, by adding a new command-line option. 2007-08-20 17:39:33 +00:00
Neil Brown
4d16320d26 Added a PassTest file intended for tests of the occam passes, and put in it a test for the functions-to-procs pass 2007-08-20 17:23:20 +00:00
Neil Brown
6d0cf6464a Added a fix for the Eq instance of toConstr being too weak, by adding a new helper function to TreeUtil 2007-08-19 09:20:35 +00:00
Neil Brown
e38d29f43d Moved a bunch of functions from RainPassTest to TestUtil, so that they can be re-used 2007-08-18 23:00:41 +00:00
Adam Sampson
c4a04675ad Make RainParse contain its own definition of RainParser.
It was previously defined in terms of OccParser, which I'm about to change.
2007-08-20 00:52:16 +00:00
Adam Sampson
a9f1e52103 Structure analyser for the new lexer. 2007-08-20 00:48:55 +00:00
Adam Sampson
543a7b6872 Add a first shot at a lexer for occam.
The aim is to separate lexing from the existing parser, which should make
indentation processing a good deal less painful.

The lexer is compiled using Alex, which generates Haskell code from the .x
file; it's not particularly elegant but the input syntax is nice and it does
seem to work well.
2007-08-19 20:21:40 +00:00
Adam Sampson
65d5fc450d Remove readSource in favour of readFile.
It turns out there's a Prelude function that does what readSource does already
-- so just use that. (I was in the process of moving readSource into Utils when
I found it, since I want to use it in other places.)
2007-08-19 18:21:23 +00:00
Adam Sampson
c8d5a4ff40 Add licensing information.
The compiler itself is under the GPLv2+; the support code that gets built into
user programs is under the LGPLv2+. This matches the existing practice for the
KRoC project.

(As with Occade, I've used the new GPLv3-style license header in the source
files, though, since that avoids having to update the FSF's postal address.)
2007-08-18 20:42:11 +00:00
Neil Brown
f9a811e775 Rain: implemented the pass for recording inferred types, and added one more test for it 2007-08-18 18:10:51 +00:00
Neil Brown
3473c512a3 Rain: Added a helper function to the pass tests for tests that are expected to fail 2007-08-18 18:10:09 +00:00
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