Commit Graph

100 Commits

Author SHA1 Message Date
Adam Sampson
3d897a70fd Rework (but don't yet fix) formalArgSet 2007-05-03 02:43:01 +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
13dccaba4d Fix "? CASE tag" parsing in ALTs 2007-05-02 13:18:41 +00:00
Adam Sampson
b6881e9ea6 Defer RETYPES safety check until runtime 2007-05-02 02:32:06 +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
164aa15ad3 Implement channel retyping 2007-05-02 00:07:39 +00:00
Adam Sampson
287fb8b922 Ignore ROUND/TRUNC when used on a precise conversion (e.g. REAL64 ROUND real64) 2007-05-01 14:31:36 +00:00
Adam Sampson
26a4190d78 Allow #INCLUDEd files to contain processes 2007-05-01 14:29:36 +00:00
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