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 TrsTypeDefinitionAcTerm Convert(this TrsAcTerm term) { return(new TrsTypeDefinitionAcTerm(term.Name, term.OnfArguments.Select(arg => new TrsTypeDefinitionOnfAcTermArgument { Cardinality = arg.Cardinality, Term = arg.Term.Convert() }))); }