void CompilationEng::compileSubroutineBody() { getToken(); printNonterminal("subroutineBody"); //<subroutine> numOfTab++; printCurrentToken(); //<symbol> { </symbol> compileVarDec(); compileStatements(); printCurrentToken(); //<symbol> } </symbol> numOfTab--; printNonterminal("subroutineBody",false); // end of subroutineBody }
void CompilationEngine::compileSubroutineBody() { /* '{' varDec* statements '}' */ tagNonTerminal("subroutineBody"); readSymbol('{'); nextToken(); while (jt.tokenType() == TokenType::kKEYWORD && jt.keyword() == Keyword::kVAR) compileVarDec(); compileStatements(); readSymbol('}'); untagNonTerminal("subroutineBody"); nextToken(); }