fix parser issues
This commit is contained in:
+43
-2
@@ -4,7 +4,9 @@
|
||||
|
||||
TEST(parser_proper_test_1)
|
||||
{
|
||||
auto o = Parser::tokenize_input((char *) "(1+2-c)");
|
||||
auto o = Parser::tokenize_input("(1+2-c)");
|
||||
Parser::print_token_vector(*o);
|
||||
|
||||
std::vector<Expression::Token> r;
|
||||
|
||||
r.push_back(Expression::Token(Expression::Token::OPA));
|
||||
@@ -22,7 +24,9 @@ TEST(parser_proper_test_1)
|
||||
|
||||
TEST(parser_proper_test_2)
|
||||
{
|
||||
auto o = Parser::tokenize_input((char *) "(1**5,-snake+marble*34*(35 / 63.2))");
|
||||
auto o = Parser::tokenize_input("(1**5,-snake+marble*34*(35 / 63.2))");
|
||||
Parser::print_token_vector(*o);
|
||||
|
||||
std::vector<Expression::Token> r;
|
||||
|
||||
r.push_back(Expression::Token(Expression::Token::OPA));
|
||||
@@ -48,8 +52,45 @@ TEST(parser_proper_test_2)
|
||||
return 0;
|
||||
}
|
||||
|
||||
TEST(parser_proper_test_3)
|
||||
{
|
||||
auto o = Parser::tokenize_input(")))25.4,, 33..4 35 37 39 41 // +-*/***()()()");
|
||||
Parser::print_token_vector(*o);
|
||||
|
||||
std::vector<Expression::Token> r;
|
||||
|
||||
r.push_back(Expression::Token(Expression::Token::CPA));
|
||||
r.push_back(Expression::Token(Expression::Token::CPA));
|
||||
r.push_back(Expression::Token(Expression::Token::CPA));
|
||||
r.push_back(Expression::Token(25.4));
|
||||
r.push_back(Expression::Token(33));
|
||||
r.push_back(Expression::Token(35));
|
||||
r.push_back(Expression::Token(37));
|
||||
r.push_back(Expression::Token(39));
|
||||
r.push_back(Expression::Token(41));
|
||||
r.push_back(Expression::Token(Expression::Token::DIV));
|
||||
r.push_back(Expression::Token(Expression::Token::DIV));
|
||||
r.push_back(Expression::Token(Expression::Token::ADD));
|
||||
r.push_back(Expression::Token(Expression::Token::SUB));
|
||||
r.push_back(Expression::Token(Expression::Token::MUL));
|
||||
r.push_back(Expression::Token(Expression::Token::DIV));
|
||||
r.push_back(Expression::Token(Expression::Token::POW));
|
||||
r.push_back(Expression::Token(Expression::Token::MUL));
|
||||
r.push_back(Expression::Token(Expression::Token::OPA));
|
||||
r.push_back(Expression::Token(Expression::Token::CPA));
|
||||
r.push_back(Expression::Token(Expression::Token::OPA));
|
||||
r.push_back(Expression::Token(Expression::Token::CPA));
|
||||
r.push_back(Expression::Token(Expression::Token::OPA));
|
||||
r.push_back(Expression::Token(Expression::Token::CPA));
|
||||
|
||||
CHECK(Parser::assert_same(*o, r));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void register_tests(void)
|
||||
{
|
||||
REGISTER(parser_proper_test_1);
|
||||
REGISTER(parser_proper_test_2);
|
||||
REGISTER(parser_proper_test_3);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user