/
thomas-king
/
Expression
Обзор
Документация
Войти
/
thomas-king
/
Expression
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
main.cpp
39 строк
797 B
AceRodstin
Fix error handling
28 ноя 2022, 16:10
28 ноя 2022, 16:10
49ed5f9
Код
Авторство
О чём код?
// // Created by Ace Rodstin on 22 Nov 2022. // #include <iostream> #include "include/Expression/Parser.h" #include "include/Lexer/Parser.h" #include "include/Literals/Parser.h" int main() { string input = "(2 + 2) * 2"; Lexer::Parser lexer_parser; auto lexer_tokens = lexer_parser.parse(input); try { Expression::Parser expression_parser; auto grammar_tree = expression_parser.parse(lexer_tokens); } catch(Expression::Parser::Error error) { typedef typename Expression::Parser::Error::Reason Reason; int code; switch (error.reason) { case Reason::invalid_parenthesis: code = 1; break; case Reason::invalid_operand: code = 2; break; case Reason::invalid_operator: code = 3; break; } cout << "Error code " << code << endl; } return 0; }