// A b cd ef gh
// zz
- EXPECT_EQ("", Ctx->getExpandedText(at(3, 10)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(3, 10)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(3, 10)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(3, 10)));
- EXPECT_EQ("", Ctx->getExpandedText(at(3, 19)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(3, 19)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(3, 19)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(3, 19)));
- EXPECT_EQ("", Ctx->getExpandedText(at(4, 1)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(4, 1)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(4, 1)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(4, 1)));
}
TEST_F(MacroExpansionContextTest, TransitiveExpansions) {
// After preprocessing:
// A b cd ) 1 ef gh
- EXPECT_EQ("WOOF", Ctx->getOriginalText(at(4, 10)).value());
+ EXPECT_EQ("WOOF", *Ctx->getOriginalText(at(4, 10)));
- EXPECT_EQ("", Ctx->getExpandedText(at(4, 18)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(4, 18)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(4, 18)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(4, 18)));
}
TEST_F(MacroExpansionContextTest, MacroFunctions) {
// WOOF( ) ) ) 1
// bar barr( ) ) ) 1( ) ) ) 1),,),')
- EXPECT_EQ("$$ ef ()))1", Ctx->getExpandedText(at(4, 10)).value());
- EXPECT_EQ("WOOF($$ ef)", Ctx->getOriginalText(at(4, 10)).value());
+ EXPECT_EQ("$$ ef ()))1", *Ctx->getExpandedText(at(4, 10)));
+ EXPECT_EQ("WOOF($$ ef)", *Ctx->getOriginalText(at(4, 10)));
- EXPECT_EQ("", Ctx->getExpandedText(at(4, 22)).value());
- EXPECT_EQ("EMPTY", Ctx->getOriginalText(at(4, 22)).value());
+ EXPECT_EQ("", *Ctx->getExpandedText(at(4, 22)));
+ EXPECT_EQ("EMPTY", *Ctx->getOriginalText(at(4, 22)));
- EXPECT_EQ("WOOF ()))1", Ctx->getExpandedText(at(5, 3)).value());
- EXPECT_EQ("WOOF(WOOF)", Ctx->getOriginalText(at(5, 3)).value());
+ EXPECT_EQ("WOOF ()))1", *Ctx->getExpandedText(at(5, 3)));
+ EXPECT_EQ("WOOF(WOOF)", *Ctx->getOriginalText(at(5, 3)));
- EXPECT_EQ("bar barr ()))1()))1", Ctx->getExpandedText(at(6, 3)).value());
- EXPECT_EQ("WOOF(WOOF(bar barr))", Ctx->getOriginalText(at(6, 3)).value());
+ EXPECT_EQ("bar barr ()))1()))1", *Ctx->getExpandedText(at(6, 3)));
+ EXPECT_EQ("WOOF(WOOF(bar barr))", *Ctx->getOriginalText(at(6, 3)));
}
TEST_F(MacroExpansionContextTest, VariadicMacros) {
// fprintf (stderr, "success!\n" );
EXPECT_EQ(R"(fprintf (stderr ,"success!\n",))",
- Ctx->getExpandedText(at(3, 3)).value());
- EXPECT_EQ(R"(eprintf("success!\n", ))",
- Ctx->getOriginalText(at(3, 3)).value());
+ *Ctx->getExpandedText(at(3, 3)));
+ EXPECT_EQ(R"(eprintf("success!\n", ))", *Ctx->getOriginalText(at(3, 3)));
EXPECT_EQ(R"(fprintf (stderr ,"success!\n",))",
- Ctx->getExpandedText(at(4, 3)).value());
- EXPECT_EQ(R"(eprintf("success!\n"))", Ctx->getOriginalText(at(4, 3)).value());
+ *Ctx->getExpandedText(at(4, 3)));
+ EXPECT_EQ(R"(eprintf("success!\n"))", *Ctx->getOriginalText(at(4, 3)));
EXPECT_EQ(R"(fprintf (stderr ,"success!\n"))",
- Ctx->getExpandedText(at(8, 3)).value());
- EXPECT_EQ(R"(eprintf2("success!\n", ))",
- Ctx->getOriginalText(at(8, 3)).value());
+ *Ctx->getExpandedText(at(8, 3)));
+ EXPECT_EQ(R"(eprintf2("success!\n", ))", *Ctx->getOriginalText(at(8, 3)));
EXPECT_EQ(R"(fprintf (stderr ,"success!\n"))",
- Ctx->getExpandedText(at(9, 3)).value());
- EXPECT_EQ(R"(eprintf2("success!\n"))",
- Ctx->getOriginalText(at(9, 3)).value());
+ *Ctx->getExpandedText(at(9, 3)));
+ EXPECT_EQ(R"(eprintf2("success!\n"))", *Ctx->getOriginalText(at(9, 3)));
}
TEST_F(MacroExpansionContextTest, ConcatenationMacros) {
// { "help", help_command },
// };
- EXPECT_EQ(R"({"quit",quit_command })",
- Ctx->getExpandedText(at(4, 5)).value());
- EXPECT_EQ("COMMAND(quit)", Ctx->getOriginalText(at(4, 5)).value());
+ EXPECT_EQ(R"({"quit",quit_command })", *Ctx->getExpandedText(at(4, 5)));
+ EXPECT_EQ("COMMAND(quit)", *Ctx->getOriginalText(at(4, 5)));
- EXPECT_EQ(R"({"help",help_command })",
- Ctx->getExpandedText(at(5, 5)).value());
- EXPECT_EQ("COMMAND(help)", Ctx->getOriginalText(at(5, 5)).value());
+ EXPECT_EQ(R"({"help",help_command })", *Ctx->getExpandedText(at(5, 5)));
+ EXPECT_EQ("COMMAND(help)", *Ctx->getOriginalText(at(5, 5)));
}
TEST_F(MacroExpansionContextTest, StringizingMacros) {
EXPECT_EQ(
R"(do {if (x ==0)fprintf (stderr ,"Warning: ""x == 0""\n");}while (0))",
- Ctx->getExpandedText(at(6, 3)).value());
- EXPECT_EQ("WARN_IF (x == 0)", Ctx->getOriginalText(at(6, 3)).value());
+ *Ctx->getExpandedText(at(6, 3)));
+ EXPECT_EQ("WARN_IF (x == 0)", *Ctx->getOriginalText(at(6, 3)));
- EXPECT_EQ(R"("foo")", Ctx->getExpandedText(at(11, 3)).value());
- EXPECT_EQ("str (foo)", Ctx->getOriginalText(at(11, 3)).value());
+ EXPECT_EQ(R"("foo")", *Ctx->getExpandedText(at(11, 3)));
+ EXPECT_EQ("str (foo)", *Ctx->getOriginalText(at(11, 3)));
- EXPECT_EQ(R"("4")", Ctx->getExpandedText(at(12, 3)).value());
- EXPECT_EQ("xstr (foo)", Ctx->getOriginalText(at(12, 3)).value());
+ EXPECT_EQ(R"("4")", *Ctx->getExpandedText(at(12, 3)));
+ EXPECT_EQ("xstr (foo)", *Ctx->getOriginalText(at(12, 3)));
}
TEST_F(MacroExpansionContextTest, StringizingVariadicMacros) {
EXPECT_EQ("zz !apple !x *apple !x !**y (apple )zz !apple !x *apple !x !**y "
"(appleapple ))))",
- Ctx->getExpandedText(at(11, 3)).value());
- EXPECT_EQ("q(g)", Ctx->getOriginalText(at(11, 3)).value());
+ *Ctx->getExpandedText(at(11, 3)));
+ EXPECT_EQ("q(g)", *Ctx->getOriginalText(at(11, 3)));
EXPECT_EQ(R"res("apple"(apple )"apple"(appleapple )))))res",
- Ctx->getExpandedText(at(12, 3)).value());
- EXPECT_EQ("q(xstr)", Ctx->getOriginalText(at(12, 3)).value());
+ *Ctx->getExpandedText(at(12, 3)));
+ EXPECT_EQ("q(xstr)", *Ctx->getOriginalText(at(12, 3)));
- EXPECT_EQ("zz !*)!x )!**y ", Ctx->getExpandedText(at(13, 3)).value());
- EXPECT_EQ("g(RParen2x)", Ctx->getOriginalText(at(13, 3)).value());
+ EXPECT_EQ("zz !*)!x )!**y ", *Ctx->getExpandedText(at(13, 3)));
+ EXPECT_EQ("g(RParen2x)", *Ctx->getOriginalText(at(13, 3)));
- EXPECT_EQ("!))*))", Ctx->getExpandedText(at(14, 3)).value());
- EXPECT_EQ("f( RParen2x )", Ctx->getOriginalText(at(14, 3)).value());
+ EXPECT_EQ("!))*))", *Ctx->getExpandedText(at(14, 3)));
+ EXPECT_EQ("f( RParen2x )", *Ctx->getOriginalText(at(14, 3)));
}
TEST_F(MacroExpansionContextTest, RedefUndef) {
// Hi(Hi)
// FIXME: Extra space follows every identifier.
- EXPECT_EQ("Welcome Adam ", Ctx->getExpandedText(at(3, 3)).value());
- EXPECT_EQ("Hi(Adam)", Ctx->getOriginalText(at(3, 3)).value());
+ EXPECT_EQ("Welcome Adam ", *Ctx->getExpandedText(at(3, 3)));
+ EXPECT_EQ("Hi(Adam)", *Ctx->getOriginalText(at(3, 3)));
- EXPECT_EQ("Willkommen ", Ctx->getExpandedText(at(5, 3)).value());
- EXPECT_EQ("Hi", Ctx->getOriginalText(at(5, 3)).value());
+ EXPECT_EQ("Willkommen ", *Ctx->getExpandedText(at(5, 3)));
+ EXPECT_EQ("Hi", *Ctx->getOriginalText(at(5, 3)));
// There was no macro expansion at 7:3, we should expect None.
EXPECT_FALSE(Ctx->getExpandedText(at(7, 3)).has_value());
// fun();
// int x = ((1, fun(), 1, fun(), 1 ));
- EXPECT_EQ("fun ()", Ctx->getExpandedText(at(8, 3)).value());
- EXPECT_EQ("applyInt )", Ctx->getOriginalText(at(8, 3)).value());
+ EXPECT_EQ("fun ()", *Ctx->getExpandedText(at(8, 3)));
+ EXPECT_EQ("applyInt )", *Ctx->getOriginalText(at(8, 3)));
- EXPECT_EQ("((1,fun (),1,fun (),1", Ctx->getExpandedText(at(13, 12)).value());
- EXPECT_EQ("f(f(1))", Ctx->getOriginalText(at(13, 12)).value());
+ EXPECT_EQ("((1,fun (),1,fun (),1", *Ctx->getExpandedText(at(13, 12)));
+ EXPECT_EQ("f(f(1))", *Ctx->getOriginalText(at(13, 12)));
}
} // namespace