Ejemplo n.º 1
0
            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;
                }
            }
Ejemplo n.º 2
0
                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;
                }
Ejemplo n.º 3
0
 public void Add(OpDescrTriplet triplet)
 {
     newToken = new OperatorToken(triplet, (topOperator == null) ? null : topOperator.od);
     CheckTokenPair(newToken);
     IS.Push(newToken);
 }