push              108 syn/greg.h     extern Node *push(Node *node);
push               66 syn/greg.y     definition=	s:identifier 				{ if (push(beginRule(findRule(yytext,s)))->rule.expression)
push               71 syn/greg.y     expression=	sequence (BAR sequence			{ Node *f= pop();  push(Alternate_append(pop(), f)); }
push               74 syn/greg.y     sequence=	prefix (prefix				{ Node *f= pop();  push(Sequence_append(pop(), f)); }
push               77 syn/greg.y     prefix=		AND action				{ push(makePredicate(yytext)); }
push               78 syn/greg.y     |		AND suffix				{ push(makePeekFor(pop())); }
push               79 syn/greg.y     |		NOT suffix				{ push(makePeekNot(pop())); }
push               82 syn/greg.y     suffix=		primary (QUESTION			{ push(makeQuery(pop())); }
push               83 syn/greg.y                             | STAR			        { push(makeStar (pop())); }
push               84 syn/greg.y     			| PLUS			        { push(makePlus (pop())); }
push               88 syn/greg.y                     identifier				{ push(makeVariable(yytext)); }
push               89 syn/greg.y     		COLON identifier !EQUAL			{ Node *name= makeName(findRule(yytext,0));  name->name.variable= pop();  push(name); }
push               90 syn/greg.y     |		identifier !EQUAL			{ push(makeName(findRule(yytext,0))); }
push               92 syn/greg.y     |		literal					{ push(makeString(yytext)); }
push               93 syn/greg.y     |		class					{ push(makeClass(yytext)); }
push               94 syn/greg.y     |		DOT					{ push(makeDot()); }
push               95 syn/greg.y     |		action					{ push(makeAction(yytext)); }
push               96 syn/greg.y     |		BEGIN					{ push(makePredicate("YY_BEGIN")); }
push               97 syn/greg.y     |		END					{ push(makePredicate("YY_END")); }
push               98 syn/greg.y                     ) (errblock { Node *node = pop(); ((struct Any *) node)->errblock = strdup(yytext); push(node); })?