예제 #1
0
        public static TrsTypeDefinitionTermBase Convert(this TrsTermBase termIn)
        {
            TrsAtom     atom     = termIn as TrsAtom;
            TrsVariable variable = termIn as TrsVariable;
            TrsTerm     term     = termIn as TrsTerm;
            TrsAcTerm   acTerm   = termIn as TrsAcTerm;

            if (atom != null)
            {
                return(atom.Convert());
            }
            else if (variable != null)
            {
                return(variable.Convert());
            }
            else if (term != null)
            {
                return(term.Convert());
            }
            else if (acTerm != null)
            {
                return(acTerm.Convert());
            }
            else
            {
                throw new Exception("Unexpected type: " + termIn.GetType().FullName);
            }
        }
예제 #2
0
        public static TrsTypeDefinitionAtom Convert(this TrsAtom atom)
        {
            TrsConstant cons = atom as TrsConstant;
            TrsString   str  = atom as TrsString;
            TrsNumber   num  = atom as TrsNumber;

            if (cons != null)
            {
                return(new TrsTypeDefinitionConstant(cons.Value));
            }
            else if (str != null)
            {
                return(new TrsTypeDefinitionString(str.Value));
            }
            else if (num != null)
            {
                return(new TrsTypeDefinitionNumber(num.Value));
            }
            else
            {
                throw new Exception("Unexpected type: " + atom.GetType().FullName);
            }
        }