Commit Graph

52 Commits

Author SHA1 Message Date
Adam Sampson
a8f0fc2caa Implement record literals 2007-05-05 00:26:26 +00:00
Adam Sampson
4551d97b28 Make unsubscriptType produce the right types for slices 2007-05-03 20:21:19 +00:00
Adam Sampson
ed847a1ea9 Do array assignment check at runtime, and produce better metadata 2007-05-03 18:07:22 +00:00
Adam Sampson
a17ee03393 Rework how array contexts are handled in actuals 2007-05-03 17:44:26 +00:00
Adam Sampson
c6e062cde0 Resolve user types for subscripts and case selectors 2007-05-03 03:53:06 +00:00
Adam Sampson
043e8e1114 Recurse into array types 2007-05-03 03:38:25 +00:00
Adam Sampson
200619042d Implement user datatypes 2007-05-03 02:17:53 +00:00
Adam Sampson
ff3bd7fd71 Split UserDataType and Record 2007-05-02 23:44:27 +00:00
Adam Sampson
a90fefefb2 Use Maps for things that should be maps 2007-05-02 20:14:44 +00:00
Adam Sampson
c55137c7f4 Better runtime checks for RETYPEs 2007-05-02 14:22:56 +00:00
Adam Sampson
4510f523cb Permit BOOL as CASE selector, and make sure selectors are constant 2007-05-02 00:40:57 +00:00
Adam Sampson
618ad6d55f Implement INLINE PROC and INLINE FUNCTION 2007-04-30 23:08:32 +00:00
Adam Sampson
73dc1c7057 Make TIMER arguments work 2007-04-30 22:30:15 +00:00
Adam Sampson
576c31aa72 Don't attempt to constant-fold empty arrays 2007-04-30 04:03:29 +00:00
Adam Sampson
6c9293fa7b Do away with the Literal type, which makes subscripting much more straightforward 2007-04-30 02:16:10 +00:00
Adam Sampson
439cedb494 Handle unsubscriptable type contexts 2007-04-30 01:48:30 +00:00
Adam Sampson
7205272fa5 Use genStructured to do PAR -- which is much shorter 2007-04-30 01:28:17 +00:00
Adam Sampson
ace34232fd Conversions to and from and between reals 2007-04-29 22:35:07 +00:00
Adam Sampson
f7029f6312 Add a trivialSubscriptType function to avoid problems with 0-length slices 2007-04-29 21:43:22 +00:00
Adam Sampson
1932ae534a Intrinsic functions (SQRT and DSQRT) 2007-04-29 16:10:29 +00:00
Adam Sampson
5de146234f Be a bit smarter about figuring out when conversions are precise 2007-04-29 14:05:28 +00:00
Adam Sampson
5e32facc59 Better reporting of invalid subscripts 2007-04-27 18:39:32 +00:00
Adam Sampson
09be48dca3 Split the literal evaluator into a new module, and make type subscripting smarter 2007-04-27 12:59:40 +00:00
Adam Sampson
5a89e1722c Initial RETYPES/RESHAPES support 2007-04-27 03:01:32 +00:00
Adam Sampson
8a0702dfa3 Add simplifyType (unused for now) 2007-04-26 20:20:44 +00:00
Adam Sampson
f2a9093a4f Big parser rework part 2: proper type checking and inference 2007-04-25 13:03:30 +00:00
Adam Sampson
2383345f88 Make all the Types functions monadic; make Errors useful 2007-04-24 21:49:03 +00:00
Adam Sampson
3d4a1d1020 Range check type conversions, and implement arithmetic ops for all basic types 2007-04-23 23:17:36 +00:00
Adam Sampson
f38d548c33 Make Meta a simple structure 2007-04-21 02:54:08 +00:00
Adam Sampson
c39d7ee237 Constant expression evaluation 2007-04-20 21:15:36 +00:00
Adam Sampson
ca5c56f813 Move a lot of FIXMEs into the to-do list 2007-04-20 01:40:41 +00:00
Adam Sampson
05aad0602c Allow SIZE cs, where cs is an array of channels or timers or ports
This isn't in the occam2 ordered syntax, but it's very common in occam2 code,
so I assume it's not an intentional omission.
2007-04-19 16:49:12 +00:00
Adam Sampson
e610e85a8a Implement functions, and fix parsing of function calls 2007-04-19 15:48:19 +00:00
Adam Sampson
4b9e3a1ed5 Identify and deal with constant expressions/variables 2007-04-19 00:17:02 +00:00
Adam Sampson
2ec22a5c24 Multidimensional arrays and slices 2007-04-13 23:58:40 +00:00
Adam Sampson
5840659ade Implement array slices 2007-04-13 17:34:09 +00:00
Adam Sampson
7f18241afb RECORD and PACKED RECORD support 2007-04-13 15:53:00 +00:00
Adam Sampson
3f45d38f15 Lots more stuff implemented -- tagged and count protocols, CASE, rep PAR 2007-04-13 01:35:09 +00:00
Adam Sampson
00cec5cd5c Pull up array expressions 2007-04-12 16:55:26 +00:00
Adam Sampson
fd1f559d5c Nearer to getting code to compile -- now needs constant pullups 2007-04-12 03:09:11 +00:00
Adam Sampson
f1c17bea50 More arrays work -- now producing a reasonable-looking commstime 2007-04-12 02:30:26 +00:00
Adam Sampson
2e9a7e8bd6 Do away with the channel/variable distinction 2007-04-11 19:41:42 +00:00
Adam Sampson
74efa43389 Work towards getting arrays working -- needs a cleanup, though 2007-04-11 17:08:16 +00:00
Adam Sampson
e6cf94c60e Type cleanups 2007-04-11 13:02:54 +00:00
Adam Sampson
6085cae11f Use AbbrevMode to track whether things are abbreviated, and thus generate C 2007-04-10 22:12:53 +00:00
Adam Sampson
41edc0008b Free name removal 2007-04-08 03:03:22 +00:00
Adam Sampson
f0e25bec2d Wrap PAR subprocesses, and add some Haddock 2007-04-07 16:08:31 +00:00
Adam Sampson
74b2d6d9b9 More work 2007-04-07 14:33:58 +00:00
Adam Sampson
77cef723ec AbbrevMode support 2007-04-07 11:57:12 +00:00
Adam Sampson
77555d1a48 More generation stuff -- as far as I can get without making changes elsewhere 2007-04-07 00:32:39 +00:00