diff options
author | David Walter Seikel | 2012-01-21 12:31:56 +1000 |
---|---|---|
committer | David Walter Seikel | 2012-01-21 12:31:56 +1000 |
commit | 0d4da92f1e19d786d8ac9a1ff10270d2eca46765 (patch) | |
tree | 66f8f8a784179086d83d5cc793831389ccf51854 /LuaSL/src/LuaSL_lemon_yaccer.y | |
parent | Fix up the comments to match the code, and add more. (diff) | |
download | SledjHamr-0d4da92f1e19d786d8ac9a1ff10270d2eca46765.zip SledjHamr-0d4da92f1e19d786d8ac9a1ff10270d2eca46765.tar.gz SledjHamr-0d4da92f1e19d786d8ac9a1ff10270d2eca46765.tar.bz2 SledjHamr-0d4da92f1e19d786d8ac9a1ff10270d2eca46765.tar.xz |
More stuff for parsing blocks and their statement lists.
Diffstat (limited to 'LuaSL/src/LuaSL_lemon_yaccer.y')
-rw-r--r-- | LuaSL/src/LuaSL_lemon_yaccer.y | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/LuaSL/src/LuaSL_lemon_yaccer.y b/LuaSL/src/LuaSL_lemon_yaccer.y index 54af56d..881bdaf 100644 --- a/LuaSL/src/LuaSL_lemon_yaccer.y +++ b/LuaSL/src/LuaSL_lemon_yaccer.y | |||
@@ -54,13 +54,14 @@ function(A) ::= type(B) LSL_IDENTIFIER(C) LSL_PARENTHESIS_OPEN(D) parameterList( | |||
54 | 54 | ||
55 | block(A) ::= funcBlock(B). { A = B; } | 55 | block(A) ::= funcBlock(B). { A = B; } |
56 | block(A) ::= statement(B). { A = B; } | 56 | block(A) ::= statement(B). { A = B; } |
57 | funcBlock ::= LSL_BLOCK_OPEN statementList LSL_BLOCK_CLOSE. | 57 | funcBlock(A) ::= LSL_BLOCK_OPEN statementList(B) LSL_BLOCK_CLOSE. { A = B; } |
58 | 58 | ||
59 | // Various forms of statement. | 59 | // Various forms of statement. |
60 | 60 | ||
61 | %nonassoc LSL_STATEMENT. | 61 | %nonassoc LSL_STATEMENT. |
62 | statementList ::= statementList statement. | 62 | statementList(A) ::= statementList(B) statement(C). { A = collectStatements(compiler, B, C); } |
63 | statementList ::= . | 63 | //statementList(A) ::= statement(C). { A = collectStatements(compiler, NULL, C); } |
64 | statementList(A) ::= . { A = collectStatements(compiler, NULL, NULL); } | ||
64 | 65 | ||
65 | %nonassoc LSL_DO LSL_FOR LSL_ELSE_IF LSL_IF LSL_JUMP LSL_RETURN LSL_STATE_CHANGE LSL_WHILE. | 66 | %nonassoc LSL_DO LSL_FOR LSL_ELSE_IF LSL_IF LSL_JUMP LSL_RETURN LSL_STATE_CHANGE LSL_WHILE. |
66 | %nonassoc LSL_ELSE. | 67 | %nonassoc LSL_ELSE. |