From 0d4da92f1e19d786d8ac9a1ff10270d2eca46765 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sat, 21 Jan 2012 12:31:56 +1000 Subject: More stuff for parsing blocks and their statement lists. --- LuaSL/src/LuaSL_lemon_yaccer.y | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'LuaSL/src/LuaSL_lemon_yaccer.y') 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( block(A) ::= funcBlock(B). { A = B; } block(A) ::= statement(B). { A = B; } -funcBlock ::= LSL_BLOCK_OPEN statementList LSL_BLOCK_CLOSE. +funcBlock(A) ::= LSL_BLOCK_OPEN statementList(B) LSL_BLOCK_CLOSE. { A = B; } // Various forms of statement. %nonassoc LSL_STATEMENT. -statementList ::= statementList statement. -statementList ::= . +statementList(A) ::= statementList(B) statement(C). { A = collectStatements(compiler, B, C); } +//statementList(A) ::= statement(C). { A = collectStatements(compiler, NULL, C); } +statementList(A) ::= . { A = collectStatements(compiler, NULL, NULL); } %nonassoc LSL_DO LSL_FOR LSL_ELSE_IF LSL_IF LSL_JUMP LSL_RETURN LSL_STATE_CHANGE LSL_WHILE. %nonassoc LSL_ELSE. -- cgit v1.1