Lines Matching refs:DirectiveTree
22 void parse(DirectiveTree *Result) { parse(Result, /*TopLevel=*/true); } in parse()
48 llvm::Optional<DirectiveTree::Directive> parse(DirectiveTree *Tree, in parse()
69 Tree->Chunks.push_back(DirectiveTree::Code{ in parse()
75 DirectiveTree::Directive Directive; in parse()
80 DirectiveTree::Conditional Conditional; in parse()
99 void parseConditional(DirectiveTree::Conditional *C) { in parseConditional()
122 void parseDirective(DirectiveTree::Directive *D) { in parseDirective()
146 DirectiveTree DirectiveTree::parse(const TokenStream &Code) { in parse()
147 DirectiveTree Result; in parse()
152 static void dump(llvm::raw_ostream &OS, const DirectiveTree &, unsigned Indent);
154 const DirectiveTree::Directive &Directive, unsigned Indent, in dump()
160 static void dump(llvm::raw_ostream &OS, const DirectiveTree::Code &Code, in dump()
165 const DirectiveTree::Conditional &Conditional, in dump()
175 static void dump(llvm::raw_ostream &OS, const DirectiveTree::Chunk &Chunk, in dump()
178 case DirectiveTree::Chunk::K_Empty: in dump()
180 case DirectiveTree::Chunk::K_Code: in dump()
181 return dump(OS, (const DirectiveTree::Code &)Chunk, Indent); in dump()
182 case DirectiveTree::Chunk::K_Directive: in dump()
183 return dump(OS, (const DirectiveTree::Directive &)Chunk, Indent); in dump()
184 case DirectiveTree::Chunk::K_Conditional: in dump()
185 return dump(OS, (const DirectiveTree::Conditional &)Chunk, Indent); in dump()
189 static void dump(llvm::raw_ostream &OS, const DirectiveTree &Tree, in dump()
201 OSTREAM_DUMP(DirectiveTree)
202 OSTREAM_DUMP(DirectiveTree::Chunk)
203 OSTREAM_DUMP(DirectiveTree::Directive)
204 OSTREAM_DUMP(DirectiveTree::Conditional)
205 OSTREAM_DUMP(DirectiveTree::Code)
226 void choose(DirectiveTree &M) { walk(M); } in choose()
249 Score walk(DirectiveTree::Code &C) { in walk()
257 Score walk(DirectiveTree::Directive &D) { in walk()
264 Score walk(DirectiveTree::Chunk &C) { in walk()
266 case DirectiveTree::Chunk::K_Code: in walk()
267 return walk((DirectiveTree::Code &)C); in walk()
268 case DirectiveTree::Chunk::K_Directive: in walk()
269 return walk((DirectiveTree::Directive &)C); in walk()
270 case DirectiveTree::Chunk::K_Conditional: in walk()
271 return walk((DirectiveTree::Conditional &)C); in walk()
272 case DirectiveTree::Chunk::K_Empty: in walk()
278 Score walk(DirectiveTree &M) { in walk()
280 for (DirectiveTree::Chunk &C : M.Chunks) in walk()
285 Score walk(DirectiveTree::Conditional &C) { in walk()
317 llvm::Optional<bool> isTakenWhenReached(const DirectiveTree::Directive &Dir) { in isTakenWhenReached()
346 void chooseConditionalBranches(DirectiveTree &Tree, const TokenStream &Code) { in chooseConditionalBranches()
359 void walk(const DirectiveTree &T) { in walk()
364 void walk(const DirectiveTree::Chunk &C) { in walk()
366 case DirectiveTree::Chunk::K_Code: in walk()
367 return walk((const DirectiveTree::Code &)C); in walk()
368 case DirectiveTree::Chunk::K_Directive: in walk()
369 return walk((const DirectiveTree::Directive &)C); in walk()
370 case DirectiveTree::Chunk::K_Conditional: in walk()
371 return walk((const DirectiveTree::Conditional &)C); in walk()
372 case DirectiveTree::Chunk::K_Empty: in walk()
378 void walk(const DirectiveTree::Code &C) { in walk()
383 void walk(const DirectiveTree::Directive &) {} in walk()
385 void walk(const DirectiveTree::Conditional &C) { in walk()
392 TokenStream DirectiveTree::stripDirectives(const TokenStream &In) const { in stripDirectives()