Fixed: grammar still allowed for some statements to be in a nested scope.
This commit is contained in:
parent
cd8f699656
commit
9553a93622
2 changed files with 7 additions and 4 deletions
|
@ -1,5 +1,4 @@
|
|||
using PerCederberg.Grammatica.Runtime;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
|
@ -52,6 +51,7 @@ namespace arookas
|
|||
{
|
||||
switch (GetId(node))
|
||||
{
|
||||
case __sunConstants.ROOT_STATEMENT:
|
||||
case __sunConstants.STATEMENT:
|
||||
case __sunConstants.COMPOUND_STATEMENT:
|
||||
case __sunConstants.COMPOUND_STATEMENT_ITEM:
|
||||
|
@ -82,6 +82,7 @@ namespace arookas
|
|||
switch (GetId(node))
|
||||
{
|
||||
case __sunConstants.SCRIPT: return new sunNode(location);
|
||||
case __sunConstants.ROOT_STATEMENT: return new sunNode(location);
|
||||
case __sunConstants.STATEMENT: return new sunNode(location);
|
||||
case __sunConstants.STATEMENT_BLOCK: return new sunStatementBlock(location);
|
||||
case __sunConstants.COMPOUND_STATEMENT: return new sunNode(location);
|
||||
|
|
|
@ -109,14 +109,16 @@ STRING = <<"(\\.|[^"])*">>
|
|||
|
||||
%productions%
|
||||
|
||||
script = statement+;
|
||||
script = root_statement+;
|
||||
|
||||
// statements
|
||||
statement =
|
||||
root_statement =
|
||||
import_statement SEMICOLON |
|
||||
compound_statement SEMICOLON |
|
||||
function_definition |
|
||||
builtin_declaration SEMICOLON |
|
||||
statement;
|
||||
statement =
|
||||
compound_statement SEMICOLON |
|
||||
if_statement |
|
||||
while_statement |
|
||||
do_statement SEMICOLON |
|
||||
|
|
Loading…
Reference in a new issue