Lines Matching refs:DirectiveTree
28 using Chunk = DirectiveTree::Chunk;
49 TEST(DirectiveTree, Parse) { in TEST() argument
68 DirectiveTree PP = DirectiveTree::parse(S); in TEST()
75 EXPECT_THAT((const DirectiveTree::Directive &)PP.Chunks[0], in TEST()
77 EXPECT_THAT((const DirectiveTree::Code &)PP.Chunks[1], in TEST()
79 EXPECT_THAT((const DirectiveTree::Code &)PP.Chunks[3], tokensAre(S, "}")); in TEST()
81 const DirectiveTree::Conditional &Ifdef(PP.Chunks[2]); in TEST()
87 const DirectiveTree &HasFoo(Ifdef.Branches[0].second); in TEST()
88 const DirectiveTree &NeedsFoo(Ifdef.Branches[1].second); in TEST()
91 const DirectiveTree::Conditional &If(HasFoo.Chunks[0]); in TEST()
100 const DirectiveTree::Directive &Error(NeedsFoo.Chunks[0]); in TEST()
105 TEST(DirectiveTree, ParseUgly) { in TEST() argument
115 DirectiveTree PP = DirectiveTree::parse(S); in TEST()
120 EXPECT_THAT((const DirectiveTree::Code &)PP.Chunks[0], tokensAre(S, "/*A*/")); in TEST()
121 const DirectiveTree::Directive &Define(PP.Chunks[1]); in TEST()
124 EXPECT_THAT((const DirectiveTree::Code &)PP.Chunks[2], tokensAre(S, "/*E*/")); in TEST()
127 TEST(DirectiveTree, ParseBroken) { in TEST() argument
136 DirectiveTree PP = DirectiveTree::parse(S); in TEST()
141 EXPECT_THAT((const DirectiveTree::Code &)PP.Chunks[0], tokensAre(S, "a")); in TEST()
142 const DirectiveTree::Directive &Endif(PP.Chunks[1]); in TEST()
146 const DirectiveTree::Conditional &X(PP.Chunks[2]); in TEST()
157 TEST(DirectiveTree, ChooseBranches) { in TEST() argument
292 std::function<void(const DirectiveTree &)> Verify = in TEST()
293 [&](const DirectiveTree &M) { in TEST()
295 if (C.kind() != DirectiveTree::Chunk::K_Conditional) in TEST()
297 const DirectiveTree::Conditional &Cond(C); in TEST()
307 DirectiveTree Tree = DirectiveTree::parse(S); in TEST()
313 TEST(DirectiveTree, StripDirectives) { in TEST() argument
341 DirectiveTree Tree = DirectiveTree::parse(S); in TEST()
346 const DirectiveTree &Part = in TEST()
347 ((const DirectiveTree::Conditional &)Tree.Chunks[4]).Branches[0].second; in TEST()