/
thomas-king
/
Lexer
Обзор
Документация
Войти
/
thomas-king
/
Lexer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/Ace.cpp
74 строки
2 KB
AceRodstin
Add specifier to Token
23 ноя 2022, 12:51
23 ноя 2022, 12:51
59b232d
Код
Авторство
О чём код?
// // Created by Ace Rodstin on 16 Nov 2022. // #include "../include/Ace.h" Dictionary<string, Ace::Keyword> Ace::keywords { { "val", Keyword::constant }, { "var", Keyword::variable }, }; Dictionary<string, Ace::Punctuator> Ace::punctuators { { ":", Punctuator::colon }, { "(", Punctuator::opening_parenthesis }, { ")", Punctuator::closing_parenthesis }, { "=", Punctuator::equal }, { "!", Punctuator::exclamation_point }, { "+", Punctuator::plus }, { "-", Punctuator::minus }, { "*", Punctuator::asterisk }, { "/", Punctuator::slash }, }; vector<string> Ace::boolean_literals { "false", "true" }; string Ace::description(Keyword keyword) { switch (keyword) { case Keyword::constant: return "constant"; case Keyword::variable: return "variable"; } } string Ace::description(Punctuator punctuator) { switch (punctuator) { case Punctuator::colon: return "colon"; case Punctuator::opening_parenthesis: return "opening parenthesis"; case Punctuator::closing_parenthesis: return "closing parenthesis"; case Punctuator::equal: return "equal"; case Punctuator::exclamation_point: return "exclamation point"; case Punctuator::plus: return "plus"; case Punctuator::minus: return "minus"; case Punctuator::asterisk: return "asterisk"; case Punctuator::slash: return "slash"; } } string Ace::description(Literal literal) { switch (literal) { case Literal::integer: return "integer"; case Literal::_double: return "double"; case Literal::character: return "character"; case Literal::_string: return "string"; case Literal::boolean: return "boolean"; } }