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); } }
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); } }