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")); }