Commit Graph

52 Commits

Author SHA1 Message Date
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
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
9ed003f9e3 Add NoSpecification to AST, to make passes simpler 2007-04-18 23:13:56 +00:00
Adam Sampson
4c6cda3226 Make Specification a proper data type 2007-04-14 01:45:25 +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
b75d13598a Make subscript parsing type-aware, and add typed expressions for bools and integers 2007-04-13 02:50:47 +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
dec538e951 TLP support, KRoC wrapper to link against, and Process *me support -- commstime works :) 2007-04-12 17:21:12 +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
6085cae11f Use AbbrevMode to track whether things are abbreviated, and thus generate C 2007-04-10 22:12:53 +00:00
Adam Sampson
8d3f8153eb Nicer nonce naming; generate PAR 2007-04-10 20:13:09 +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
222ba593c7 More early commit changes 2007-04-05 18:21:57 +00:00
Adam Sampson
fc1eee669c Commit earlier on ? CASE 2007-04-05 18:02:40 +00:00
Adam Sampson
667731f892 Fix the case output ambiguity 2007-04-05 17:37:45 +00:00
Adam Sampson
0bf57b0222 Tidier original name handling; slightly better errors 2007-04-05 11:21:32 +00:00
Adam Sampson
9fd0ea58a1 Do port output too 2007-04-05 01:21:16 +00:00
Adam Sampson
7c9036ac9b Track the types of all defined names properly 2007-04-05 01:14:14 +00:00
Adam Sampson
95af38e652 Handle whitespace better 2007-03-18 02:34:31 +00:00
Adam Sampson
4be72cbb24 Move indentation parsing out to its own module 2007-03-18 01:51:41 +00:00
Adam Sampson
5e8076cab5 Fix string parsing 2007-03-18 01:46:47 +00:00
Adam Sampson
69c1c04e84 Add function for testing parser productions 2007-03-18 01:46:31 +00:00
Adam Sampson
4005c6e31d Cleaner indentation parsing: put markers at end of line 2007-03-18 01:22:24 +00:00
Adam Sampson
88ea5303ff Tidy up error reporting (still based on error for now, though) 2007-03-18 00:48:02 +00:00
Adam Sampson
da7667de62 Kill extraneous brackets 2007-03-17 14:46:15 +00:00
Adam Sampson
e2f4fe1c45 Don't scope tag names for now, and fix "foo ! CASE foo" parsing 2007-03-17 14:37:24 +00:00
Adam Sampson
4c20041ff4 Add state while parsing, and track/map names 2007-03-16 01:28:46 +00:00
Adam Sampson
7f5d5e1891 Separate out the different types of name 2007-03-14 16:06:55 +00:00
Adam Sampson
704aabac17 Reorganise and add folds 2007-03-14 05:29:44 +00:00
Adam Sampson
5b7ee6f3a4 " ; " -> "; " 2007-03-14 04:44:39 +00:00