public override void Visit(CompareNode node) { Contracts.AssertValue(node); if (TryShowValue(node)) { return; } TokKind tidLax = node.TidLax; TokKind tidStrict = node.TidStrict; string strLax = GetString(tidLax); string strStrict = GetString(tidStrict); string str = string.Empty; string strOp = string.Empty; for (int i = 0; ;) { _wrt.Write(strOp); var arg = node.Operands.Items[i]; var prec = GetPrec(arg); if (prec <= Precedence.Compare) { _wrt.Write('('); } arg.Accept(this); if (prec <= Precedence.Compare) { _wrt.Write(')'); } if (++i >= node.Operands.Items.Length) { break; } var tid = node.Operands.Delimiters[i - 1].Kind; Contracts.Assert(tid == tidLax || tid == tidStrict); strOp = tid == tidLax ? strLax : strStrict; } ShowType(node); }
public override void PostVisit(CompareNode node) { Contracts.Assert(false); }
public abstract void Visit(CompareNode node);
public override bool PreVisit(CompareNode node) { Visit(node); return(false); }
public virtual bool PreVisit(CompareNode node) { return(true); }