Cleaned up the parser a lil bit
This commit is contained in:
parent
d7c3ab9b4b
commit
3991cb9895
16
parser.cpp
16
parser.cpp
|
@ -23,10 +23,6 @@ parser::parse_tokens() {
|
|||
}
|
||||
return parse_tokens();
|
||||
}
|
||||
/*std::cout << "ESTADO FINAL DEL STACK:\n";
|
||||
for(int i = 0; i < _stack.size(); i++) {
|
||||
std::cout << str_token(pop()) << " ";
|
||||
}*/
|
||||
|
||||
return _stack.top();
|
||||
//check if reduce is possible, if it is reduce.
|
||||
|
@ -136,7 +132,6 @@ parser::reduce_exp(struct token *exp) {
|
|||
stm->rvalue = exp;
|
||||
stm->lvalue = pop();
|
||||
push(stm);
|
||||
//reduce_exp(pop());
|
||||
break;
|
||||
default: err();
|
||||
}
|
||||
|
@ -166,23 +161,21 @@ void
|
|||
parser::expression() {
|
||||
_stack.push(_tokens[pos]);
|
||||
pos++;
|
||||
// std::cout << "POS: " << pos << '\n';
|
||||
switch (_stack.top()->tok_type) {
|
||||
// case token::EXP_NUMBER:
|
||||
// case token::EXP_ID:
|
||||
case token::TOK_ID:
|
||||
case token::TOK_NUM:
|
||||
expression();
|
||||
break;
|
||||
case token::EXP_ID:
|
||||
case token::EXP_NUMBER:
|
||||
case token::EXP_OPERATION:
|
||||
// std::cout << "Nested operations not supported\n";
|
||||
std::cout << "This shouldn't be here...\n";
|
||||
err();
|
||||
break;
|
||||
case token::TOK_OP:
|
||||
expression();
|
||||
break;
|
||||
case token::TOK_SEMI:
|
||||
// std::cout << "REDUCE\n";
|
||||
reduce();
|
||||
break;
|
||||
default:
|
||||
|
@ -202,7 +195,4 @@ parser::err() {
|
|||
|
||||
parser::~parser(){
|
||||
free_tree(pop());
|
||||
// while (_stack.size() > 0) {
|
||||
// delete pop();
|
||||
// }
|
||||
}
|
Loading…
Reference in New Issue