Lines Matching refs:ast
4 function walkAST(ast, before, after, options) { argument
16 ast = replacement;
20 parents[0].type === 'RawInclude' && ast.type === 'IncludeFilter');
23 var result = before(ast, replace);
25 return ast;
26 } else if (Array.isArray(ast)) {
28 return walkAndMergeNodes(ast);
32 parents.unshift(ast);
34 switch (ast.type) {
37 ast.nodes = walkAndMergeNodes(ast.nodes);
47 if (ast.block) {
48 ast.block = walkAST(ast.block, before, after, options);
52 if (ast.block) {
53 ast.block = walkAST(ast.block, before, after, options);
55 if (ast.alternate) {
56 ast.alternate = walkAST(ast.alternate, before, after, options);
60 if (ast.consequent) {
61 ast.consequent = walkAST(ast.consequent, before, after, options);
63 if (ast.alternate) {
64 ast.alternate = walkAST(ast.alternate, before, after, options);
68 walkAST(ast.block, before, after, options);
69 walkAST(ast.file, before, after, options);
72 walkAST(ast.file, before, after, options);
75 ast.filters = walkAndMergeNodes(ast.filters);
76 walkAST(ast.file, before, after, options);
88 if (options.includeDependencies && ast.ast) {
89 walkAST(ast.ast, before, after, options);
93 throw new Error('Unexpected node type ' + ast.type);
99 after && after(ast, replace);
100 return ast;