summaryrefslogtreecommitdiff
path: root/include/parser.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/parser.hpp')
-rw-r--r--include/parser.hpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/parser.hpp b/include/parser.hpp
index 02471d8..3f0032b 100644
--- a/include/parser.hpp
+++ b/include/parser.hpp
@@ -4,6 +4,7 @@
#include <string>
#include <vector>
+#include "expressions.hpp"
#include "lexer.hpp"
#ifndef PARSER_H
#define PARSER_H
@@ -12,6 +13,11 @@ class Parser{
private:
std::string text;
Lexer tokenizer;
+ std::vector<Expression *> tree_stack;
+ Token var{nil, "{}"};
+ void panic();
+ Expression *popStack();
+ Expression *newTree(token_type type);
void setText(std::string text);
void parseExpr();
void parsePrimeExpr();
@@ -22,7 +28,7 @@ private:
void parseFactor();
bool checkToken(); // Checa el token actual del lexer.
public:
- void parse(std::string expr);
+ Expression *parse(std::string expr);
};
#endif /* PARSER_H */