Commit Graph

89 Commits

Author SHA1 Message Date
Adam Sampson
5ffe4de9ad Support (but ignore in the code generator for now) PLACE AT/IN 2007-04-30 23:24:37 +00:00
Adam Sampson
618ad6d55f Implement INLINE PROC and INLINE FUNCTION 2007-04-30 23:08:32 +00:00
Adam Sampson
77949846ca Ignore unrecognised preprocessor directives 2007-04-30 22:56:56 +00:00
Adam Sampson
73dc1c7057 Make TIMER arguments work 2007-04-30 22:30:15 +00:00
Adam Sampson
8460eea254 Parse channel array abbreviations after channel IS abbreviations 2007-04-30 16:38:01 +00:00
Adam Sampson
72eafaedea Ignore INLINE FUNCTION 2007-04-30 04:31:00 +00:00
Adam Sampson
39ec48c1e3 Fix known-dimension arrays in specifiers 2007-04-30 04:25:13 +00:00
Adam Sampson
db1c16c2cb Do away with operandNotTable -- it's not needed now we have state, and it breaks stuff 2007-04-30 02:51:46 +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
f7029f6312 Add a trivialSubscriptType function to avoid problems with 0-length slices 2007-04-29 21:43:22 +00:00
Adam Sampson
057a3a0a67 Better string literal handling: do away with StringLiteral in favour of arrays of ByteLiteral 2007-04-29 21:31:56 +00:00
Adam Sampson
1932ae534a Intrinsic functions (SQRT and DSQRT) 2007-04-29 16:10:29 +00:00
Adam Sampson
2d88249408 Intrinsic PROCs (ASSERT for now) 2007-04-29 14:46:19 +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
47ccd704e4 Remove a FIXME 2007-04-29 00:11:42 +00:00
Adam Sampson
ca0131f2d1 Fix parsing of typed hex literals 2007-04-29 00:10:16 +00:00
Adam Sampson
2bcdd7cd66 Big AST rework: all spec/rep stuff is now done with Structured 2007-04-27 21:49:34 +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
5586446dcb Fix parsing of channel array abbreviations 2007-04-26 22:49:41 +00:00
Adam Sampson
8554d19d3a Implement (in a very simple way) CHAN OF ANY 2007-04-26 22:26:48 +00:00
Adam Sampson
39bbc1e10e Support (but complain about!) empty versions of SEQ, IF, etc. 2007-04-26 21:56:05 +00:00
Adam Sampson
f0223ec40a Get multidimensional array literals working (by changing their AST representation) 2007-04-26 21:21:35 +00:00
Adam Sampson
80bfdcd0a6 Make Dimension take an Int rather than an Expression 2007-04-26 20:21:03 +00:00
Adam Sampson
939205670b Rework how constant evaluation is done 2007-04-26 16:05:04 +00:00
Adam Sampson
9e69317d7b Better constant folding 2007-04-26 14:57:48 +00:00
Adam Sampson
a93439dfc7 Implement continuation lines of both kinds 2007-04-26 13:20:43 +00:00
Adam Sampson
f5345f3815 Handle lines consisting of only spaces, and report errors better 2007-04-26 02:46:19 +00:00
Adam Sampson
51c83f4e94 Fix abbreviation parsing 2007-04-26 02:25:37 +00:00
Adam Sampson
5e7c9403cc Rewrite Indentation in a monadic (and somewhat less cryptic) way 2007-04-26 01:56:23 +00:00
Adam Sampson
818281542c Make associative ops actually be associative 2007-04-25 19:09:29 +00:00
Adam Sampson
336679f416 Make TRUE/FALSE part of operand rather than expression 2007-04-25 18:18:38 +00:00
Adam Sampson
52e1edbcdd Accept (but ignore) INLINE 2007-04-25 18:11:49 +00:00
Adam Sampson
f8fa60d1ed Implement << and >> 2007-04-25 17:48:16 +00:00
Adam Sampson
d265857e34 Handle nested includes properly 2007-04-25 17:25:49 +00:00
Adam Sampson
ebf702c85c Fix some syntax to make Haddock happy, and add a Makefile rule to update the docs 2007-04-25 17:17:48 +00:00
Adam Sampson
94e3bcd7fe Recast the driver and most of the components into the PassM monad 2007-04-25 16:42:17 +00:00
Adam Sampson
e64fa81f83 Fix function arg parsing, and remove a non-useful failed subscript error 2007-04-25 15:52:21 +00:00
Adam Sampson
a04ba6087c Nicer production names 2007-04-25 13:07:53 +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
a1f045260b Big parser rework: remove all the extraneous "try" calls in favour of more specific commits 2007-04-25 01:33: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
ccda7402e2 Move path stuff into a Utils module, and show basenames in metadata 2007-04-24 12:52:13 +00:00
Adam Sampson
f38d548c33 Make Meta a simple structure 2007-04-21 02:54:08 +00:00
Adam Sampson
f701e4bf8a Reorganise TODO 2007-04-21 02:42:15 +00:00
Adam Sampson
ff01ddc8c8 Support #INCLUDE and #USE 2007-04-20 23:44:38 +00:00
Adam Sampson
c39d7ee237 Constant expression evaluation 2007-04-20 21:15:36 +00:00
Adam Sampson
a49b884d48 Better option handling and print passes as they're executed 2007-04-20 16:51:54 +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