Commit Graph

1278 Commits

Author SHA1 Message Date
Neil Brown
00d48d27de Added an AST Expression for allocating mobiles 2007-10-24 19:30:44 +00:00
Neil Brown
cd313fbbb6 Added a comment about DerefVariable in SimplifyExprs 2007-10-24 16:00:47 +00:00
Neil Brown
08c8d47e2f Overhauled cgenVariable' in GenerateC so that it passes the new tests involving DerefVariable (while still passing all the previous tests) 2007-10-24 15:58:20 +00:00
Neil Brown
0eea361f95 Added tests for DerefVariable during the genVariable function for the C and C++ backends 2007-10-24 15:57:40 +00:00
Neil Brown
f68a6cd31d Added cases for DerefVariable to some functions in Types 2007-10-24 15:57:03 +00:00
Neil Brown
f8006696b2 Added a dereferenced mobile item to Variable in the AST 2007-10-24 15:56:02 +00:00
Neil Brown
9f78582391 Added support for mobile types to the genType functions in the C and C++ backends 2007-10-21 14:37:05 +00:00
Neil Brown
86054ba754 Added code for the Mobile types to the ShowCode module 2007-10-21 14:18:51 +00:00
Neil Brown
441b700d8d Added tests for the new mobile types in the C and C++ backends 2007-10-21 14:16:24 +00:00
Neil Brown
521730bf8b Added the Mobile type to the AST 2007-10-21 14:15:56 +00:00
Neil Brown
f0fdc05ff3 Added a large hunk of code in ShowCode that allows us to print out occam programs using the right indentation.
The code is messy, and not quite finished, but for now it isn't actually being used.  So I'm committing it, ready to be fixed up at a later date.
2007-10-18 09:33:37 +00:00
Neil Brown
7d8f170b7d Added support for the #COMMENT directive to the occam parser 2007-10-15 17:12:53 +00:00
Neil Brown
acca3d03fd Removed the A.Main item from the AST entirely 2007-10-17 13:43:40 +00:00
Neil Brown
d4a766c594 Changed the occam parser to use A.Several with an empty list for its terminator, rather than A.Main 2007-10-17 13:43:12 +00:00
Neil Brown
e582f5e508 Changed the terminator in Rain source files from A.Main to A.Several (with an empty list), and updated the tests accordingly 2007-10-17 13:42:13 +00:00
Neil Brown
12191cb36a Changed the C and C++ backends to take in a Structured rather than a Process as the top-level item 2007-10-17 13:25:21 +00:00
Neil Brown
3727307a78 Changed the shared passes to operate on Structured items, rather than Process items 2007-10-17 13:24:42 +00:00
Neil Brown
1c858e112c Changed the occam and Rain parsers to return a Structured rather than a Process (which will simplify the generated ASTs) 2007-10-17 13:21:17 +00:00
Neil Brown
a25824b601 Changed the passes to be of type Pass, rather than A.Process -> PassM A.Process 2007-10-17 13:09:16 +00:00
Neil Brown
30b7cc686b Doubled the stack size for C++CSP processes, in order to get cg test 08 passing 2007-10-14 13:25:31 +00:00
Neil Brown
0fc7ceaf68 Fixed an issue where the size in counted array inputs in C++ was not being correctly calculated 2007-10-14 11:09:35 +00:00
Neil Brown
fed32e1531 Adjusted the tests for inputs to catch an error where the size in counted array inputs in C++ was not being correctly calculated 2007-10-14 11:09:08 +00:00
Neil Brown
05293f75c1 Fixed an error in the C++CSP support file where arrays with the first dimension being free would not have their size recalculated 2007-10-14 11:08:30 +00:00
Neil Brown
c19ae03116 Added a pass that changes all C++CSP channels to be of type tockSendableArrayOfBytes, so that the channels can be retyped into each other 2007-10-14 10:28:43 +00:00
Neil Brown
053f91bc59 Fixed a horrible error in the C++ support header file that was preventing byte-channels from working 2007-10-14 00:32:59 +00:00
Neil Brown
3c101bae19 Removed my old cgmap function, in favour of the identical library function mapM_ 2007-10-14 00:14:19 +00:00
Neil Brown
d4dabfd3bb Removed unused code from the GenerateCTest module 2007-10-14 00:09:28 +00:00
Neil Brown
fd74473b9b Removed a big load of unused code from the C++ code generation, that was related to the old way of handling protocols 2007-10-14 00:08:13 +00:00
Neil Brown
e9dbfbab3c Added the input-case to case pass to the pass-list, and therefore removed all code dealing with input-case statements in the C and C++ backends (and corresponding tests) 2007-10-14 00:01:44 +00:00
Neil Brown
d98cb21415 Added support for transforming ALT guards to the input-case -> case pass 2007-10-13 23:56:36 +00:00
Neil Brown
8b2e14f3bd Added tests and implementation for a new pass for transforming input-case statements into case statements 2007-10-13 23:28:41 +00:00
Neil Brown
443b648d73 Corrected the pass that creates abbreviations for output expressions to also work on OutputCase statements 2007-10-13 20:52:42 +00:00
Neil Brown
ffe8477237 Added a fix to prevent running a zero-length list of processes in CIF 2007-10-13 20:02:07 +00:00
Neil Brown
9e21e4fc0d Added a C++ implementation of the genRetypeSizes function 2007-10-13 17:57:23 +00:00
Neil Brown
1885518b8d Changed the C genRetypeSizes function to pass the tests 2007-10-13 17:54:46 +00:00
Neil Brown
acd09137f6 Added tests for genRetypeSizes in the C and C++ backends 2007-10-13 17:49:09 +00:00
Neil Brown
b4d34d1bc7 Made the C++ array stop if there is a problem with a retyping 2007-10-13 17:01:39 +00:00
Neil Brown
c74ae12810 Changed the type of genBytesIn again, to remove redundancy in its parameters 2007-10-13 16:16:52 +00:00
Neil Brown
a98ff8cad0 Removed the horrible tockBool type, now that we are no longer using vectors to store C++ arrays 2007-10-13 15:40:39 +00:00
Neil Brown
ed38f80db0 Changed the type of genRetypeSizes to removed the unused AbbrevMode parameter 2007-10-13 15:38:04 +00:00
Neil Brown
9a48683033 Refactored the C implementation of genBytesIn to better integrate the old genBytesIn' with genBytesIn 2007-10-13 15:01:51 +00:00
Neil Brown
ffd09847fe Removed genBytesIn' from the GenOps, in favour of adding a parameter to genBytesIn, and changed the tests and code accordingly 2007-10-13 14:51:29 +00:00
Neil Brown
d5d4580aa3 Changed the type of genSlice, and put the C++ version into the GenOps dictionary, as well as adding tests for the function 2007-10-13 13:20:40 +00:00
Neil Brown
886659fd09 Changed the C++ backend to pass the RETYPES tests (primarily white-space changes, and also reordering the parameters for tockArrayView) 2007-10-13 12:58:20 +00:00
Neil Brown
324257198a Changed the C backend to pass the RETYPES tests (mainly white-space changes) 2007-10-13 12:51:13 +00:00
Neil Brown
a1f0faac8f Added tests for RETYPES specifications in the C and C++ backends 2007-10-13 12:50:39 +00:00
Neil Brown
90799499d8 Changed a constructor of tockArrayView in the C++CSP support header, so that retyping conversions are more distinct from same-type constructors 2007-10-13 12:50:01 +00:00
Neil Brown
ec43e592f0 Fixed the initialisation of C++ channel arrays to initialise the correct array 2007-10-11 01:32:36 +00:00
Neil Brown
a1f209fb0d Added missing linker flags to the C++ all-in-one compilation command 2007-10-11 01:32:01 +00:00
Neil Brown
a1baa16d9e Made some fixes in the support header files, and changed functions to fix issues with const-ness in C++ 2007-10-11 01:30:49 +00:00