
This is mostly straightforward: modify the parser to allow direction decorators in the right places, and extend the type checker to match. There's some slight awkwardness in that some of the Types functions have to perform the same checks as the type checker (e.g. directing a non-channel), so I've tidied up their error messages a bit. At the backend, I've just added a little pass to strip out all the DirectedVariables, since the other backend passes don't handle them gracefully. From the occam/C point of view this is fine, but I'm not sure if it's going to cause problems for C++.
29 lines
491 B
Plaintext
29 lines
491 B
Plaintext
Language features supported by Tock
|
|
-----------------------------------
|
|
|
|
Everything in occam2.1, minus:
|
|
- inline VALOF
|
|
- PORTs, PLACE
|
|
|
|
KRoC's TLP interface.
|
|
|
|
Most of KRoC's preprocessor, although #USE reads a source file for now.
|
|
|
|
INLINE PROC and INLINE FUNCTION.
|
|
|
|
Intrinsics:
|
|
- ASSERT
|
|
- SQRT
|
|
- DSQRT
|
|
|
|
CHAN for CHAN OF, and PLACE for PLACE AT.
|
|
|
|
PLACE IN WORKSPACE and PLACE IN VECSPACE, both currently ignored.
|
|
|
|
INITIAL and RESULT abbreviations.
|
|
|
|
Array constructors.
|
|
|
|
Direction decorators.
|
|
|