Neil Brown
baf28ce47c
Rain: added a parse test for declaring an instance of a user-defined type
2007-08-24 17:09:33 +00:00
Neil Brown
e3ee310fe3
Rain: added parsing support for channel-end casts
2007-08-24 16:57:02 +00:00
Neil Brown
0fdcdcf4a1
Rain: added tests for parsing channel-end casts
2007-08-24 16:56:29 +00:00
Neil Brown
121714c810
Rain: filled in the pass that checks the types passed as parameters to process calls
2007-08-24 16:27:07 +00:00
Neil Brown
068336ad33
Rain: added tests for testing the pass that checks the parameter types passed to process calls
2007-08-24 16:26:16 +00:00
Neil Brown
b1daf41ecf
Added a new function to CompState that allows you to specify a custom error when lookupName fails, and changed one example of this in ParseOccam
2007-08-24 15:04:31 +00:00
Neil Brown
f5041b801c
Rain: added a dummy implementation of a new pass to check process call parameters
2007-08-24 13:53:51 +00:00
Adam Sampson
64f0e1f4cb
Monadic - and MINUS are not the same operator.
...
Neil spotted this while using MonadicSubtr in the Rain frontend -- -(MOSTNEG
INT) should fail, MINUS (MOSTNEG INT) shouldn't. This adds a MonadicMinus.
2007-08-23 22:17:15 +00:00
Adam Sampson
82df59dcfb
Fix makeLiteral for arrays inside records.
...
This was an "obvious" bug (a missing pattern) being masked by me doing a
pattern match inside an array constructor -- if the pattern doesn't match then
it'll skip that value, rather than causing an error like it does in a case.
2007-08-23 22:07:01 +00:00
Neil Brown
fad699421a
Rain: added support for parsing process calls (but need a pass to sort out parameter types)
2007-08-23 21:21:20 +00:00
Neil Brown
54ba4c3315
Rain: added tests for parsing process calls
2007-08-23 21:20:55 +00:00
Neil Brown
bf2ea2feac
Rain: tidying up some of the parse tests
2007-08-23 21:07:59 +00:00
Neil Brown
7e96da4922
Rain: fixed the parsing of channel types
2007-08-23 20:52:15 +00:00
Neil Brown
ab918eb9ab
Rain: changed the top-level parser to be able to parse multiple processes in a file
2007-08-23 20:42:21 +00:00
Neil Brown
0520f3aaa0
Rain: tidying up a few stray definitions
2007-08-23 20:08:20 +00:00
Neil Brown
cbd2ecf479
Rain: revamped the expression parsing to match the new tests
2007-08-23 20:07:56 +00:00
Neil Brown
fdff7b0d3c
Rain: Greatly expanded the tests for parsing expressions
2007-08-23 20:06:35 +00:00
Neil Brown
433c9d887d
Rain: fixed a test to expect Plus instead of Add
2007-08-23 18:45:36 +00:00
Neil Brown
e9d882f1ae
Rain: fixed the dataType parser to accept user-named types
2007-08-23 18:44:22 +00:00
Neil Brown
1d0426ac77
Rain: fixed the parsing to pass the new literal tests
2007-08-23 15:51:31 +00:00
Neil Brown
bb77f3fb91
Rain: added tests for literals, including very large integers
2007-08-23 15:51:08 +00:00
Neil Brown
e46bcefeb7
Rain: added parsing of input statements
2007-08-23 15:18:11 +00:00
Neil Brown
9b0419acbc
Rain: added tests for input statements
2007-08-23 15:17:55 +00:00
Neil Brown
9077367f6d
Rain: changed innerBlock to pass the tests
2007-08-23 14:59:45 +00:00
Neil Brown
f0d06b5219
Rain: added tests for the innerBlock parser
2007-08-23 14:59:27 +00:00
Neil Brown
5adbf7fcfc
Rain: changed the declaration parser to also return a Meta tag
2007-08-23 14:58:11 +00:00
Neil Brown
cab4ec2113
Rain: added parsing of variable declarations
2007-08-23 11:41:53 +00:00
Neil Brown
1bc92b0b37
Rain: added tests for parsing variable declarations
2007-08-23 11:37:47 +00:00
Neil Brown
23650da2ff
Fixed the findMain pass to use a proper nonce
2007-08-23 10:17:30 +00:00
Neil Brown
0913ab655c
Adjusted the tests for findMain to allow a nonce to be using during name mangling
2007-08-23 10:05:54 +00:00
Neil Brown
0c28f6255c
Added an initial crude implementation of name mangling for the main function
2007-08-22 22:40:50 +00:00
Neil Brown
1e06768c20
Added channel-end support to the C++CSP backend
...
I have added two helper functions, but since they are used in contexts that are already specific to C++CSP (i.e. the channel-ends have the ">>" and "<<" operators applied to them) I have not added them to the dictionary of functions.
This patch allows C++CSP to actually use the direction of channels to pass around channel-ends rather than channel pointers, just as C++CSP was designed for.
2007-08-22 22:27:04 +00:00
Neil Brown
63d18373b8
Changed tlpInterface to also return the direction of each channel, so that the (C++CSP) backend knows whether to pass it a whole channel, or just an end
2007-08-22 22:07:42 +00:00
Neil Brown
7c61208c93
Added a check to ensure that the channel parameters of the main function have the correct direction if they are specified
2007-08-22 21:49:33 +00:00
Adam Sampson
9efa008443
Add Set rules to PrettyShow.
...
As Neil pointed out, I'd already added some rules to PrettyShow to handle the
Maps in CompState; this does the same for the Sets, which means it's pshow-able
again.
2007-08-22 23:06:50 +00:00
Adam Sampson
36262fc55e
Rework the mechanism that GenerateC uses to get externs from AnalyseAsm.
...
Neil spotted that I'd broken the C++CSP backend with these changes, and I
wasn't very happy with what I'd done anyway, so this is take 2. Now there's a
separate pass that runs before GenerateC which builds a set of functions used
in PARs.
2007-08-22 22:26:26 +00:00
Adam Sampson
929745f05e
Tidy up how Main decides which passes to run.
...
Since the set of passes that runs now depends on several variables, there's now
an expression which builds a list of passes to run; this should be easier to
extend in the future.
2007-08-22 22:24:08 +00:00
Neil Brown
d90f0aa680
Rain: corrected the transformation of foreach loops to use ValAbbrev when looping over an expression
2007-08-22 17:03:47 +00:00
Neil Brown
9e8dd73149
Fixed the C++CSP backend by allowing it to override the tock_support.h header file with tock_support_cppcsp.h (the latter includes the former, but only after defining some preprocessor directives)
2007-08-22 16:10:47 +00:00
Neil Brown
d065338efe
Rain: Added to the resolving pass to make it pass all the tests
2007-08-22 15:54:34 +00:00
Neil Brown
1620528958
Rain: corrected the testUnique4 test to be as I intended
2007-08-22 15:54:05 +00:00
Neil Brown
412a746e25
Rain: added a test for recording and resolving process parameters
2007-08-22 15:20:40 +00:00
Neil Brown
a897712033
Rain: added a pass for finding and tagging the main function
2007-08-22 13:07:59 +00:00
Neil Brown
29f1aa0f2f
Rain: extended the resolving pass to include process declarations
2007-08-22 12:40:20 +00:00
Neil Brown
79678055bc
Rain: added a test for resolving/recording process names
2007-08-22 12:36:42 +00:00
Neil Brown
96145add21
Rain: combined two passes into one to allow them to work properly in future, and changed the tests accordingly
2007-08-22 12:24:12 +00:00
Neil Brown
9714385eba
Rain: added another test for a pass
2007-08-22 11:49:04 +00:00
Neil Brown
d681cd5d95
Rain: corrected the pass transforming the each loops so that it records the nonce names properly in the state
2007-08-22 11:12:57 +00:00
Neil Brown
289b1c79a7
Rain: corrected the tests checking the each-loop transformation to make sure that the nonce names are recorded properly
2007-08-22 11:12:35 +00:00
Neil Brown
914f4cbb2b
Rain: tweaked a few tests to use a specific integer type
2007-08-22 11:09:32 +00:00