Fixed operator regex to allow for C-style comments. Reenabeld debug output
This commit is contained in:
parent
307e557e5b
commit
cca021c8c4
@ -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> ";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user