Neil Brown
cbeeef486e
Fixed the C backend putting too many braces in array literals, and removed some old comments
2009-02-01 22:27:43 +00:00
Neil Brown
80a3eba49a
Had the first attempt at correcting the occam passes to work with the new array literals
2009-02-01 21:54:51 +00:00
Neil Brown
7d185fd72a
Adjusted the Rain passes to cope with the new array literals
2009-02-01 21:54:32 +00:00
Neil Brown
46394b8c34
Fixed the occam and Rain parsers to work with the new system for array literals
2009-02-01 21:54:02 +00:00
Neil Brown
3458a9197a
Adjusted the backends and transformations module to match the new array literal changes
2009-02-01 21:53:17 +00:00
Neil Brown
8de2dbca88
Adjusted the modules in common to match the new array constructor change
2009-02-01 21:52:13 +00:00
Neil Brown
957699313f
Combined ArrayLiteral and ListLiteral into ArrayListLiteral, and dispensed with ArrayConstr in favour of having array literals as Structured Expression that can contain replicators
2009-02-01 21:50:39 +00:00
Neil Brown
4f83187549
Fixed up all the tests in light of the new recursive procs
2009-01-29 00:56:32 +00:00
Neil Brown
8a28d765e7
Implemented recursive procs
...
This works fine in the C++ backend, not tested with the C backend yet
2009-01-29 00:43:24 +00:00
Neil Brown
10e6b4ce02
Updated all the tests to work with the new recursive functions
2009-01-29 00:34:12 +00:00
Neil Brown
7722e95dfd
Added support for recursive functions (not procs, yet)
...
At the moment, the information is only needed in the parser, which must define recursive names before parsing the body of the function. But in future, we should keep the information when the function becomes a proc, and then the C/C++ backends may need to use it (for example, when calculating stack space usage)
2009-01-29 00:27:11 +00:00
Neil Brown
3e8273f4f6
Adjusted the C backend to work with the new step count
2009-01-28 23:51:19 +00:00
Neil Brown
2c6f624ea3
Changed the occam type-checker and the Rain stuff to be okay with the new step count
2009-01-28 23:47:36 +00:00
Neil Brown
6d7f456791
Changed the occam parser to accept STEP in replicators
2009-01-28 23:47:00 +00:00
Neil Brown
e1056dd0c9
Changed the lexer to accept the STEP reserved word
2009-01-28 23:46:36 +00:00
Neil Brown
6693a8b8b9
Changed things in the transformations directory in light of the new step count
2009-01-28 23:46:04 +00:00
Neil Brown
594d7ef242
Tweaked various code in the common and checks directory to work with the new step count in the For replicator
2009-01-28 23:43:16 +00:00
Neil Brown
a68c871329
Added an expression to represent a STEP count to the For replicator constructor in the AST
2009-01-28 23:42:31 +00:00
Neil Brown
49ea4f053e
Fixed the occam parser to allow comments after pragmas on the same line
...
One of the more recent cgtests has a comment after a pragma
2009-01-28 23:40:14 +00:00
Neil Brown
a4f0e85c72
Fixed a bug involving abbreviation of arrays of channels into arrays of channel-ends in the C++ backend
...
The array for the channel-ends was not being allocated storage, so the array (a pointer to some random location) was being written to and causing a seg-fault
2009-01-28 23:16:31 +00:00
Neil Brown
6ff8e3b163
Fixed a bug where records were being recorded with the wrong name type in the occam parser
2009-01-28 22:11:23 +00:00
Neil Brown
52459e7557
Turned on usage checking by default
...
I think the Tock usage checking is now sufficiently advanced (it only rejects one or two parts of the cgtest at the moment) to turn it on by default
2009-01-28 17:34:34 +00:00
Neil Brown
6e0b56c7f6
Added some preprocessor stuff to help stop Tock trampling over various defines
2009-01-27 17:04:18 +00:00
Neil Brown
d4f1ac2797
Added nearly all the remaining intrinsic functions (all the *TOSTRING and STRINGTO*, except for floating-point types)
2009-01-27 17:00:28 +00:00
Neil Brown
592ed1d4ef
Added a line to fix an autoconf warning and added -lm to the link options (for the math libraries)
2009-01-27 16:59:35 +00:00
Neil Brown
f4f08e09aa
Fixed the RAN/DRAN intrinsic
2009-01-27 13:50:42 +00:00
Neil Brown
9b1368ffe7
Implemented all but one (RAN) of the intrinsic functions in appendix N by mapping them directly to the C versions
2009-01-27 13:38:00 +00:00
Neil Brown
63d558df20
Fixed some GCC warnings resulting from not passing the printf format through to all the necessary support functions
2009-01-27 13:03:26 +00:00
Neil Brown
dbc75ef0b1
Added a pass that helps stop some GCC warnings about literals equivalent to INT_MIN and similar
2009-01-27 13:00:08 +00:00
Neil Brown
addcefdab2
Stopped GCC warning about unused variables
...
We detect real unused variables from the occam program ourselves, but we don't want GCC warnings for all the unused _sizes variables and so on
2009-01-27 12:56:32 +00:00
Neil Brown
d1e0ec07c4
Finished off the last of the floating point intrinsics (from appendices K and M)
...
cgtest19 now passes all its tests
2009-01-27 12:21:18 +00:00
Neil Brown
08f862685c
Implemented several of the remaining floating-point intrinsics
2009-01-27 12:04:30 +00:00
Neil Brown
2fc545d09d
Implemented REAL32OP and REAL64OP
2009-01-26 19:02:19 +00:00
Neil Brown
20e24b807f
Cleared up some signed/unsigned warnings in the latest intrinsics
2009-01-26 19:01:56 +00:00
Neil Brown
41946716f0
Implemented ASHIFTRIGHT (straightforward) and ASHIFTLEFT (amazingly hard) and tested them
2009-01-26 18:57:50 +00:00
Neil Brown
ec9efd378f
Corrected some warnings about unsigned constants in the C++ support headers
2009-01-26 18:55:07 +00:00
Neil Brown
e0e0b46052
Implemented SHIFTLEFT and SHIFTRIGHT
2009-01-26 18:11:15 +00:00
Neil Brown
8df1bc80f9
Implemented LONGDIV (passes the cgtests, but I'm not 100% confident in it)
2009-01-26 18:03:27 +00:00
Neil Brown
4a12999989
Implemented LONGPROD, in a slightly long-winded way
2009-01-26 17:57:45 +00:00
Neil Brown
df66042a99
Corrected a problem with LONGADD and implemented both LONGSUB and LONGDIFF
2009-01-26 15:46:37 +00:00
Neil Brown
0802d79d6c
Fixed a few more of the intrinsic functions
2009-01-25 22:30:07 +00:00
Neil Brown
062b47bad9
Made some intrinsics stop when they are supposed to (and tested it from rangetest) and implemented a couple more
2009-01-25 22:06:30 +00:00
Neil Brown
588d24bfea
Fixed a mistake with a missing type in a header
2009-01-25 22:06:01 +00:00
Neil Brown
ff61ebfa2b
Implemented several of the floating point intrinsics (using cgtest19 and the occam 2.1 manual)
2009-01-25 21:31:58 +00:00
Neil Brown
65171e4492
Implemented the ROTATELEFT and ROTATERIGHT intrinsics
2009-01-25 21:31:41 +00:00
Neil Brown
0b2708b2ed
Fixed a few small things related to generating intrinsic calls in the C and C++ backends
2009-01-25 20:43:39 +00:00
Neil Brown
c30db7b11e
Added in C headers (dummy bodies) for all the intrinsic functions that I have so far defined in the Intrinsics module
2009-01-25 20:42:57 +00:00
Neil Brown
c19039e90e
Added the definitions of most of the intrinsics from the occam 2.1 manual (but not yet the implementations)
2009-01-25 18:54:57 +00:00
Neil Brown
0189ba3793
Began implementing the occam intrinsics (some of them, at least) in the C support header
2009-01-23 19:20:26 +00:00
Neil Brown
7337978dcf
Added many more intrinsics to the list of occam intrinsics
2009-01-23 19:19:36 +00:00