public abstract void AssocType(Precedence.PrecType pt,int n);
static int CheckType(Precedence p,PrecType t, int d) { if (p==null) return 0; if (p.m_type==t || (p.m_type<=PrecType.nonassoc && t<=PrecType.nonassoc)) return p.m_prec; return Check(p.m_next,t, d+1); }
public static int Check(Precedence p,PrecType t,int d) { if (p==null) return 0; if (p.m_type==t) return p.m_prec; return Check(p.m_next,t,d+1); }
public Precedence(PrecType t,int p,Precedence next) { if (CheckType(next,t,0)!=0) Console.WriteLine("redeclaration of precedence"); m_next = next; m_type = t; m_prec = p; }