Parse and bind strings
This commit is contained in:
@@ -139,7 +139,20 @@ TEST_CASE( "Assert binary precedence", "[parser]" ) {
|
||||
REQUIRE(expression -> GetKind() == ParsedExpressionKind::Parenthesized);
|
||||
auto innerExpression = ((ParenthesizedExpression*)expression) -> GetInnerExpression();
|
||||
REQUIRE(innerExpression -> GetKind() == ParsedExpressionKind::LiteralInteger);
|
||||
|
||||
}
|
||||
|
||||
TEST_CASE( "Parse String Tokens", "[parser]" ) {
|
||||
vector<IToken*> v {new StringToken("foo bar", 0,0), new SimpleToken(TokenKind::EndOfFile,0,0)};
|
||||
Parser parser = Parser(v, nullptr);
|
||||
auto parsedStatements = parser.Parse() -> GetStatements();
|
||||
REQUIRE(parsedStatements.size() == 1);
|
||||
auto firstStatement = parsedStatements[0];
|
||||
REQUIRE(firstStatement -> GetKind() == ParsedStatementKind::Expression);
|
||||
auto expression = ((ParsedExpressionStatement*)firstStatement)->GetExpression();
|
||||
REQUIRE(expression -> GetKind() == ParsedExpressionKind::LiteralString);
|
||||
auto boolean = ((LiteralStringExpression*)expression);
|
||||
REQUIRE(boolean->GetValue() == "foo bar");
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user