summaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2022-04-02 11:53:03 -0600
committerHombreLaser <sebastian-440@live.com>2022-04-02 11:53:03 -0600
commit4a8400c2846a0db0778817e48da6c0f20849471f (patch)
tree9c46205ea9ca5a8fbe9d8b590c24172be911615a /main.cpp
parente3936c5fc5b846f90d8cdfc589960c6881caa019 (diff)
Todo listo para el parser
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp37
1 files changed, 13 insertions, 24 deletions
diff --git a/main.cpp b/main.cpp
index ee376c2..12ee839 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,39 +1,28 @@
#include <iterator>
+#include <ostream>
#include <string>
#include <vector>
#include <iostream>
-#include "include/lexer.hpp"
+#include "include/parser.hpp"
+#include "include/exceptions.hpp"
using std::string, std::cin, std::cout, std::getline, std::vector,
- std::begin, std::end;
-
-string types[] = {string(1, '+'), string(1, '-'), string(1, '/'), string(1, '*'),
- string(1, '^'), "variable", "número", "función", string(1, '('), string(1, ')'), "nil"};
-
-
-void print_tokens(const vector< Token > &tokens){
- for(auto i = begin(tokens); i != end(tokens); ++i)
- {
- if(i->type == variable || i->type == number || i->type == function)
- cout << "Tipo: " << types[i->type] << "\nValor: " << i->value << '\n';
- else
- cout << "Tipo: " << types[i->type] << '\n';
- }
-}
+ std::begin, std::end, std::endl;
int main(){
- vector< Token > tokens;
string input;
- Lexer lexer;
+ Parser parser;
+
getline(cin, input);
- lexer.setText(input);
- while(lexer.getCurrentToken().type != nil)
+ try
{
- tokens.push_back(lexer.getCurrentToken());
- lexer.nextToken();
- }
- print_tokens(tokens);
+ parser.parse(input);
+ cout << "Todo correcto." << endl;
+ }catch(ParserException e)
+ {
+ cout << e.showMsg() << endl;
+ }
return 0;
}