public void AddOperatorFunctor(OpDescrTriplet triplet, BaseTerm[] args) { switch (args.Length) { case 1: if (triplet.HasPrefixDef) { Add(new OperatorTerm(triplet[TT.Pre], args[0])); } else if (triplet.HasPostfixDef) { Add(new OperatorTerm(triplet[TT.Post], args[0])); } else { Add(new CompoundTerm(triplet.Name, args)); } break; case 2: if (triplet.HasInfixDef) { Add(new OperatorTerm(triplet[TT.In], args[0], args[1])); } else { Add(new CompoundTerm(triplet.Name, args)); } break; default: Add(new CompoundTerm(triplet.Name, args)); break; } }
public OperatorToken(OpDescrTriplet triplet, OperatorDescr prevOd) { this.triplet = triplet; this.prevOd = prevOd; if (triplet.HasInfixDef) { if (triplet.HasPrefixDef) { type = TT.InPre; } else if (triplet.HasPostfixDef) { type = TT.InPost; } else { type = TT.In; } } else if (triplet.HasPrefixDef) { type = TT.Pre; } else if (triplet.HasPostfixDef) { type = TT.Post; } role = type; }
public void Add(OpDescrTriplet triplet) { newToken = new OperatorToken(triplet, (topOperator == null) ? null : topOperator.od); CheckTokenPair(newToken); IS.Push(newToken); }