| 1 | -- To test how all ASDL construct generate typed code.
|
| 2 |
|
| 3 | module shared_variant {
|
| 4 |
|
| 5 | prod = (string a, string b)
|
| 6 |
|
| 7 | DoubleQuoted = (int left, string* tokens)
|
| 8 |
|
| 9 | expr =
|
| 10 | Binary(expr left, expr right)
|
| 11 | -- Use the existing TYPE DoubleQuoted, but create a new TAG
|
| 12 | -- expr_e.DoubleQuoted.
|
| 13 | | DoubleQuoted %DoubleQuoted
|
| 14 |
|
| 15 | Token = (int id, string val)
|
| 16 |
|
| 17 | tok =
|
| 18 | Eof
|
| 19 | | Token %Token
|
| 20 |
|
| 21 | tok_struct = (tok token, int x)
|
| 22 | tok_array = (tok* tokens)
|
| 23 |
|
| 24 | word_part =
|
| 25 | Literal(string s)
|
| 26 | | DoubleQuoted %DoubleQuoted
|
| 27 | -- Comment out to test build-time error
|
| 28 | -- | ErrorIsDuplicate %DoubleQuoted
|
| 29 |
|
| 30 | -- Make sure we didn't break these variants
|
| 31 | cflow = Break | Continue | Return(int val)
|
| 32 | }
|