Commit Graph

506 Commits

Author SHA1 Message Date
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