Added quoted string, single quoted string, and comma lexing

This commit is contained in:
Jonathan Turner
2009-05-25 20:15:19 +00:00
parent b1a48f47a3
commit ee8eb8773a

View File

@@ -10,7 +10,7 @@
//#include "eval.hpp"
class TokenType { public: enum Type { Whitespace, Identifier, Number, Operator, Parens_Open, Parens_Close,
Square_Open, Square_Close, Curly_Open, Curly_Close }; };
Square_Open, Square_Close, Curly_Open, Curly_Close, Comma, Quoted_String, Single_Quoted_String }; };
void debug_print(std::vector<Token> &tokens) {
for (unsigned int i = 0; i < tokens.size(); ++i) {
@@ -33,7 +33,10 @@ int main(int argc, char *argv[]) {
lexer << Pattern("\\]", TokenType::Square_Close);
lexer << Pattern("\\{", TokenType::Curly_Open);
lexer << Pattern("\\}", TokenType::Curly_Close);
lexer << Pattern(",", TokenType::Comma);
lexer << Pattern("[!@#$%^&*\\-+=/<>]+", TokenType::Operator);
lexer << Pattern("\"(?:[^\"\\\\]|\\\\.)*\"", TokenType::Quoted_String);
lexer << Pattern("'(?:[^'\\\\]|\\\\.)*'", TokenType::Single_Quoted_String);
std::cout << "Expression> ";
std::getline(std::cin, input);