Inheritance: ParserAction
Exemplo n.º 1
0
		public abstract void OldAction(ParserOldAction a);
Exemplo n.º 2
0
	public override void OldAction(ParserOldAction a)
	{
		int ch = '{';
		a.m_symtype = CSymbol.SymType.oldaction;
		a.m_action = ++action;
		a.m_initialisation = GetBracketedSeq(ref ch,'}');
		a.m_sym = (CSymbol)m_prod.m_lhs;

		NextNonWhite(out ch);
		if (ch==';'||ch=='|')
		{ // an old action at the end is converted into a simple action
			m_lexer.yytext = "%";
			ParserSimpleAction sa = new ParserSimpleAction(this);
			SimpleAction(sa);
			NewConstructor(ref sa.m_sym, ")"+a.m_initialisation);
			a.m_sym = (CSymbol)sa;
			sa.yytext += sa.m_sym.yytext;
			a.yytext = "#"+sa.yytext;
			a.m_action = -1; // mark the old action for deletion
		}
	}