void CompilationEng::compileSubroutineBody()
{
	getToken();
	printNonterminal("subroutineBody"); //<subroutine>
	numOfTab++;
	printCurrentToken(); //<symbol> { </symbol>
	compileVarDec();
	compileStatements();
	printCurrentToken(); //<symbol> } </symbol>
	numOfTab--;
	printNonterminal("subroutineBody",false); // end of subroutineBody
}
Exemplo n.º 2
0
void CompilationEngine::compileSubroutineBody()
{
    /* '{' varDec* statements '}' */

    tagNonTerminal("subroutineBody");
    readSymbol('{');
    nextToken();

    while (jt.tokenType() == TokenType::kKEYWORD && jt.keyword() == Keyword::kVAR)
        compileVarDec();

    compileStatements();
    readSymbol('}');
    untagNonTerminal("subroutineBody");
    nextToken();
}