Exemplo n.º 1
0
void factor(void)
{
    if (match(INT)) {
        printf("INT: %s\n", getLexeme());
        advance();
    } else if (match(ADDSUB)) {
        printf("ADDSUB: %s\n", getLexeme());
        advance();
        if (match(INT)) {
            printf("INT: %s\n", getLexeme());
            advance();
        } else if (match(ID)) {
            printf("ID: %s\n", getLexeme());
            advance();
        }
    } else if (match(ID)) {
        printf("ID: %s\n", getLexeme());
        advance();
        if (match(ASSIGN)) {
            printf("ASSIGN: %s\n", getLexeme());
            advance();
            expr();
        }
    } else if (match(LPAREN)) {
        printf("LPAREN: %s\n", getLexeme());
        advance();
        expr();
        if (match(RPAREN)) {
            printf("RPAREN: %s\n", getLexeme());
            advance();
        } else {
            printf("Parenthesis mismatched\n");
        }
    }
}
Exemplo n.º 2
0
void term(void) {
    factor();
    while (match(MULDIV)) {
        printf("MULDIV: %s\n", getLexeme());
        advance();
        factor();
    }
}
Exemplo n.º 3
0
void expr(void)
{
    term();
    while (match(ADDSUB)){
        printf("ADDSUB: %s\n", getLexeme());
        advance();
        term();
    }
}
Exemplo n.º 4
0
lexicalAnalyzer:: lexicalAnalyzer( char * file )
{

  ifstream fin; 
  fin.open( file );

  while( getline( fin, line ) )
    {
      lines.push_back(line + '\n');
    }
  getLexeme();
  
}