push 115 tools/greg.h extern Node *push(Node *node); push 66 tools/greg.y definition= s:identifier { if (push(beginRule(findRule(yytext, s)))->rule.expression) push 71 tools/greg.y expression= sequence (BAR sequence { Node *f= pop(); push(Alternate_append(pop(), f)); } push 74 tools/greg.y sequence= error (error { Node *f= pop(); push(Sequence_append(pop(), f)); } push 77 tools/greg.y error= prefix (TILDE action { push(makeError(pop(), yytext)); } push 80 tools/greg.y prefix= AND action { push(makePredicate(yytext)); } push 81 tools/greg.y | AND suffix { push(makePeekFor(pop())); } push 82 tools/greg.y | NOT suffix { push(makePeekNot(pop())); } push 85 tools/greg.y suffix= primary (QUESTION { push(makeQuery(pop())); } push 86 tools/greg.y | STAR { push(makeStar (pop())); } push 87 tools/greg.y | PLUS { push(makePlus (pop())); } push 90 tools/greg.y primary= identifier { push(makeVariable(yytext)); } push 91 tools/greg.y COLON identifier !EQUAL { Node *name= makeName(findRule(yytext, 0)); name->name.variable= pop(); push(name); } push 92 tools/greg.y | identifier !EQUAL { push(makeName(findRule(yytext, 0))); } push 94 tools/greg.y | literal { push(makeString(yytext)); } push 95 tools/greg.y | class { push(makeClass(yytext)); } push 96 tools/greg.y | DOT { push(makeDot()); } push 97 tools/greg.y | action { push(makeAction(yytext)); } push 98 tools/greg.y | BEGIN { push(makePredicate("YY_BEGIN")); } push 99 tools/greg.y | END { push(makePredicate("YY_END")); }