From ee8eb8773a7ac43ff8234aeeceda042b19d8309e Mon Sep 17 00:00:00 2001 From: Jonathan Turner Date: Mon, 25 May 2009 20:15:19 +0000 Subject: [PATCH] Added quoted string, single quoted string, and comma lexing --- langkit/main.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/langkit/main.cpp b/langkit/main.cpp index 6a57461..c5f012c 100644 --- a/langkit/main.cpp +++ b/langkit/main.cpp @@ -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 &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);