Fixes <statements> opening after first statement

This commit is contained in:
Nemo 2020-07-06 21:15:19 +05:30
parent d25f7407da
commit a274797e58
2 changed files with 101 additions and 101 deletions

View File

@ -54,7 +54,7 @@ class Engine:
# We don't have to move the cursor for LL0 grammar # We don't have to move the cursor for LL0 grammar
if matchOnly: if matchOnly:
assert(lookahead == 1) return lookup_keys in dictionary
for _ in range(lookahead-1): for _ in range(lookahead-1):
self.advance() self.advance()

View File

@ -22,18 +22,18 @@
<identifier> game </identifier> <identifier> game </identifier>
<symbol> ; </symbol> <symbol> ; </symbol>
</varDec> </varDec>
<letStatement>
<keyword> let </keyword>
<identifier> game </identifier>
<symbol> = </symbol>
<term>
<identifier> game </identifier>
</term>
<expression>
</expression>
<symbol> ; </symbol>
</letStatement>
<statements> <statements>
<letStatement>
<keyword> let </keyword>
<identifier> game </identifier>
<symbol> = </symbol>
<term>
<identifier> game </identifier>
</term>
<expression>
</expression>
<symbol> ; </symbol>
</letStatement>
<doStatement> <doStatement>
<keyword> do </keyword> <keyword> do </keyword>
<identifier> game </identifier> <identifier> game </identifier>
@ -88,103 +88,103 @@
<identifier> a </identifier> <identifier> a </identifier>
<symbol> ; </symbol> <symbol> ; </symbol>
</varDec> </varDec>
<ifStatement> <statements>
<keyword> if </keyword> <ifStatement>
<symbol> ( </symbol> <keyword> if </keyword>
<term> <symbol> ( </symbol>
<identifier> i </identifier>
</term>
<expression>
</expression>
<symbol> ) </symbol>
<symbol> { </symbol>
<letStatement>
<keyword> let </keyword>
<identifier> s </identifier>
<symbol> = </symbol>
<term> <term>
<identifier> i </identifier> <identifier> i </identifier>
</term> </term>
<expression> <expression>
</expression> </expression>
<symbol> ; </symbol> <symbol> ) </symbol>
</letStatement> <symbol> { </symbol>
<statements> <statements>
<letStatement> <letStatement>
<keyword> let </keyword> <keyword> let </keyword>
<identifier> s </identifier> <identifier> s </identifier>
<symbol> = </symbol> <symbol> = </symbol>
<term> <term>
<identifier> j </identifier> <identifier> i </identifier>
</term> </term>
<expression> <expression>
</expression> </expression>
<symbol> ; </symbol> <symbol> ; </symbol>
</letStatement> </letStatement>
<letStatement> <letStatement>
<keyword> let </keyword> <keyword> let </keyword>
<identifier> a </identifier> <identifier> s </identifier>
<symbol> [ </symbol> <symbol> = </symbol>
<term>
<identifier> i </identifier>
</term>
<expression>
</expression>
<symbol> ] </symbol>
<symbol> = </symbol>
<term>
<identifier> j </identifier>
</term>
<expression>
</expression>
<symbol> ; </symbol>
</letStatement>
</statements>
<symbol> } </symbol>
<keyword> else </keyword>
<symbol> { </symbol>
<letStatement>
<keyword> let </keyword>
<identifier> i </identifier>
<symbol> = </symbol>
<term>
<identifier> i </identifier>
</term>
<expression>
</expression>
<symbol> ; </symbol>
</letStatement>
<statements>
<letStatement>
<keyword> let </keyword>
<identifier> j </identifier>
<symbol> = </symbol>
<term>
<identifier> j </identifier>
</term>
<expression>
</expression>
<symbol> ; </symbol>
</letStatement>
<letStatement>
<keyword> let </keyword>
<identifier> i </identifier>
<symbol> = </symbol>
<term>
<identifier> i </identifier>
</term>
<expression>
<symbol> | </symbol>
<term> <term>
<identifier> j </identifier> <identifier> j </identifier>
</term> </term>
</expression> <expression>
<symbol> ; </symbol> </expression>
</letStatement> <symbol> ; </symbol>
</statements> </letStatement>
<symbol> } </symbol> <letStatement>
</ifStatement> <keyword> let </keyword>
<statements> <identifier> a </identifier>
<symbol> [ </symbol>
<term>
<identifier> i </identifier>
</term>
<expression>
</expression>
<symbol> ] </symbol>
<symbol> = </symbol>
<term>
<identifier> j </identifier>
</term>
<expression>
</expression>
<symbol> ; </symbol>
</letStatement>
</statements>
<symbol> } </symbol>
<keyword> else </keyword>
<symbol> { </symbol>
<statements>
<letStatement>
<keyword> let </keyword>
<identifier> i </identifier>
<symbol> = </symbol>
<term>
<identifier> i </identifier>
</term>
<expression>
</expression>
<symbol> ; </symbol>
</letStatement>
<letStatement>
<keyword> let </keyword>
<identifier> j </identifier>
<symbol> = </symbol>
<term>
<identifier> j </identifier>
</term>
<expression>
</expression>
<symbol> ; </symbol>
</letStatement>
<letStatement>
<keyword> let </keyword>
<identifier> i </identifier>
<symbol> = </symbol>
<term>
<identifier> i </identifier>
</term>
<expression>
<symbol> | </symbol>
<term>
<identifier> j </identifier>
</term>
</expression>
<symbol> ; </symbol>
</letStatement>
</statements>
<symbol> } </symbol>
</ifStatement>
<returnStatement> <returnStatement>
<keyword> return </keyword> <keyword> return </keyword>
<symbol> ; </symbol> <symbol> ; </symbol>