private Symbol(PrimitiveSymbol prim) { switch (prim) { case PrimitiveSymbol.Unbound: this.name = "unbound"; this.value = this.function = this; break; default: throw new NotSupportedException(); } }
public static bool operator <=(Name a, Name b) { PrimitiveSymbol pa = a as PrimitiveSymbol; PrimitiveSymbol pb = b as PrimitiveSymbol; if (pa == null || pb == null) { return(false); } int delta; if (PrimitiveSymbol.TryCompare(pa, pb, out delta)) { return(delta <= 0); } return(false); }
public override bool Equals(object obj) { PrimitiveSymbol s = obj as PrimitiveSymbol; if (s == null) { return(false); } if (m_value == s.m_value) { return(true); } if (m_value == null || s.m_value == null) { return(false); } return(CompareNameWithString(s.m_value.ToString())); }
public override bool Match(Name name) { PrimitiveSymbol s = name as PrimitiveSymbol; if (s == null) { return(false); } if (m_value == s.m_value) { return(true); } if (m_value == null || s.m_value == null) { return(false); } return(CompareNameWithString(s.m_value)); }
public override bool Match(Name name) { if (name.IsUniversal) { return(true); } PrimitiveSymbol s = name as PrimitiveSymbol; if (s == null) { return(false); } if (m_value == null) { return(false); } return(m_value.Equals(s.m_value)); }
public static bool TryCompare(PrimitiveSymbol s1, PrimitiveSymbol s2, out int delta) { return(PrimitiveValue.TryCompare(s1.m_value, s2.m_value, out delta)); }