Fixed operator regex to allow for C-style comments. Reenabeld debug output

This commit is contained in:
Jonathan Turner 2009-06-01 13:44:18 +00:00
parent 307e557e5b
commit cca021c8c4

View File

@ -111,14 +111,14 @@ void parse(std::vector<TokenPtr> &tokens) {
std::pair<Token_Iterator, bool> results = rule(iter, end, parent); std::pair<Token_Iterator, bool> results = rule(iter, end, parent);
/*
while (results.second) { while (results.second) {
results = rule(results.first + 1, end, parent); results = rule(results.first + 1, end, parent);
//debug_print(parent, ""); //debug_print(parent, "");
} }
*/
/*
if (results.second) { if (results.second) {
std::cout << "Parse successful: " << std::endl; std::cout << "Parse successful: " << std::endl;
debug_print(parent, ""); debug_print(parent, "");
@ -127,7 +127,7 @@ void parse(std::vector<TokenPtr> &tokens) {
std::cout << "Parse failed: " << std::endl; std::cout << "Parse failed: " << std::endl;
debug_print(parent, ""); debug_print(parent, "");
} }
*/
} }
@ -143,7 +143,7 @@ int main(int argc, char *argv[]) {
lexer << Pattern("[A-Za-z]+", TokenType::Identifier); lexer << Pattern("[A-Za-z]+", TokenType::Identifier);
lexer << Pattern("[0-9]+(\\.[0-9]+)?", TokenType::Number); lexer << Pattern("[0-9]+(\\.[0-9]+)?", TokenType::Number);
lexer << Pattern("[!@#$%^&*\\-+=<>/]+", TokenType::Operator); lexer << Pattern("[!@#$%^&*\\-+=<>]+|/[!@#$%^&\\-+=<>]*", TokenType::Operator);
lexer << Pattern("\\(", TokenType::Parens_Open); lexer << Pattern("\\(", TokenType::Parens_Open);
lexer << Pattern("\\)", TokenType::Parens_Close); lexer << Pattern("\\)", TokenType::Parens_Close);
lexer << Pattern("\\[", TokenType::Square_Open); lexer << Pattern("\\[", TokenType::Square_Open);
@ -159,7 +159,7 @@ int main(int argc, char *argv[]) {
std::getline(std::cin, input); std::getline(std::cin, input);
while (input != "quit") { while (input != "quit") {
std::vector<TokenPtr> tokens = lexer.lex(input, "INPUT"); std::vector<TokenPtr> tokens = lexer.lex(input, "INPUT");
//debug_print(tokens); debug_print(tokens);
parse(tokens); parse(tokens);
std::cout << "Expression> "; std::cout << "Expression> ";