Exemple #1
0
void compileStatements2(void) {
  // TODO
  if(lookAhead->tokenType==SB_SEMICOLON)
    {
      eat(SB_SEMICOLON);
      compileStatement();
      compileStatements2();
    }
  else if(lookAhead->tokenType!=KW_END)
    eat(SB_SEMICOLON);
}
Exemple #2
0
void compileStatements2(void) {
  // TODO
    switch(lookAhead->tokenType){
        case SB_SEMICOLON:
            eat(SB_SEMICOLON);
            compileStatement();
            compileStatements2();
            break;
        case KW_END:
            break;
        default:
           missingToken(SB_SEMICOLON,lookAhead->lineNo,lookAhead->colNo);
        break;

        }
}
Exemple #3
0
void compileStatements2(void) {
  // TODO
  switch (lookAhead->tokenType) {
  case SB_SEMICOLON:
      eat(SB_SEMICOLON);
      compileStatement();
      compileStatements2();
      break;
  // Follow
  case KW_END:
      break;
  // Error
  default:
      error(ERR_INVALIDSTATEMENT, lookAhead->lineNo, lookAhead->colNo);
      break;
  }
}
Exemple #4
0
void compileStatements(void) {
  // TODO
  switch(lookAhead->tokenType){
  case TK_IDENT:
  case KW_CALL:
  case KW_BEGIN:
  case KW_IF:
  case KW_WHILE:
  case KW_FOR:
  case SB_SEMICOLON:
  case KW_END:
  case KW_ELSE:
    compileStatement();
    break;
    //check sau
  default:
    break;
  }
  compileStatements2();
}
void compileStatement(void) {
  switch (lookAhead->tokenType) {
  case TK_IDENT:
    compileAssignSt();
    break;
  case KW_CALL:
    compileCallSt();
    break;
  case KW_BEGIN:
    compileGroupSt();
    break;
  case KW_IF:
    compileIfSt();
    break;
  case KW_WHILE:
    compileWhileSt();
    break;
  case KW_FOR:
    compileForSt();
    break;
    // EmptySt needs to check FOLLOW tokens
  case SB_SEMICOLON:
      compileStatements2();
      break;
  case KW_END:
     // eat(KW_END);
       // compileStatements2();
      break;
  case KW_ELSE:
      compileElseSt();
    break;
    // Error occurs
  default:
    error(ERR_INVALIDSTATEMENT, lookAhead->lineNo, lookAhead->colNo);
    break;
  }
}
Exemple #6
0
void compileStatements(void) {
  // TODO
    compileStatement();
    compileStatements2();
}
void compileStatements(void) {
    //while(lookAhead->tokenType == TK_IDENT || lookAhead->tokenType == KW_CALL || lookAhead->tokenType == KW_BEGIN ||lookAhead->tokenType == KW_WHILE || lookAhead->tokenType == KW_FOR)
    compileStatement();
    compileStatements2();
}