public virtual SYMBOL Action(Parser yyp)
{
SYMBOL s = (SYMBOL)Sfactory.create(m_sym.yytext,yyp);
if (s.yyname==m_sym.yytext)
{ // provide for the default $$ = $1 action if possible
SYMBOL t = yyp.StackAt(m_len-1).m_value;
s.m_dollar = (m_len==0 || t==null)? null : t.m_dollar;
}
return s;
}