void compileTypeDecls(void) { // TODO assert("Parsing subtypes..."); while (lookAhead->tokenType == TK_IDENT) compileTypeDecl(); assert("Subtypes parsed!"); }
void compileBlock2(void) { if (lookAhead->tokenType == KW_TYPE) { eat(KW_TYPE); compileTypeDecl(); compileTypeDecls(); compileBlock3(); } else compileBlock3(); }
void compileTypeDecls(void) { // TODO if(lookAhead->tokenType == TK_IDENT) { compileTypeDecl(); compileTypeDecls(); } //else //error(ERR_INVALIDTYPEDECL, lookAhead->lineNo, lookAhead->colNo); }
void compileTypeDecls(void) { // TODO switch (lookAhead->tokenType) { case TK_IDENT: compileTypeDecl(); compileTypeDecls(); break; // EmptySt needs to check FOLLOW tokens case KW_VAR: case KW_BEGIN: case KW_FUNCTION: case KW_PROCEDURE: break; // Error occurs default: error(ERR_INVALIDTYPEDECL, lookAhead->lineNo, lookAhead->colNo); break; } }
void compileTypeDecls(void) { while(lookAhead->tokenType == TK_IDENT) compileTypeDecl(); }