Package hydra

Interface CoderUtils


  • public interface CoderUtils
    Common utilities for language coders, providing shared patterns for term decomposition and analysis.
    • Method Detail

      • analyzeFunctionTerm

        static <T0,​T1> Either<T1,​FunctionStructure<T0>> analyzeFunctionTerm​(Context cx,
                                                                                        java.util.function.Function<T0,​Graph> getTC,
                                                                                        java.util.function.Function<Graph,​java.util.function.Function<T0,​T0>> setTC,
                                                                                        T0 env,
                                                                                        Term term)
      • analyzeFunctionTermWith

        static <T0,​T1> Either<T1,​FunctionStructure<T0>> analyzeFunctionTermWith​(Context cx,
                                                                                            java.util.function.Function<Graph,​java.util.function.Function<Binding,​Maybe<Term>>> forBinding,
                                                                                            java.util.function.Function<T0,​Graph> getTC,
                                                                                            java.util.function.Function<Graph,​java.util.function.Function<T0,​T0>> setTC,
                                                                                            T0 env,
                                                                                            Term term)
      • analyzeFunctionTermWith_gather_newEnv

        static <T0> T0 analyzeFunctionTermWith_gather_newEnv​(T0 gEnv,
                                                             java.util.function.Function<T0,​Graph> getTC,
                                                             java.util.function.Function<Graph,​java.util.function.Function<Lambda,​Graph>> hydra_rewriting_extendGraphForLambda2,
                                                             Lambda lam,
                                                             java.util.function.Function<Graph,​java.util.function.Function<T0,​T0>> setTC)
      • analyzeFunctionTermWith_gather_newEnv2

        static <T0> T0 analyzeFunctionTermWith_gather_newEnv2​(java.util.function.Function<Graph,​java.util.function.Function<Binding,​Maybe<Term>>> forBinding,
                                                              T0 gEnv,
                                                              java.util.function.Function<T0,​Graph> getTC,
                                                              java.util.function.Function<java.util.function.Function<Graph,​java.util.function.Function<Binding,​Maybe<Term>>>,​java.util.function.Function<Graph,​java.util.function.Function<Let,​Graph>>> hydra_rewriting_extendGraphForLet2,
                                                              Let lt,
                                                              java.util.function.Function<Graph,​java.util.function.Function<T0,​T0>> setTC)
      • analyzeFunctionTermWith_gather_newEnv3

        static <T0> T0 analyzeFunctionTermWith_gather_newEnv3​(T0 gEnv,
                                                              java.util.function.Function<T0,​Graph> getTC,
                                                              java.util.function.Function<Graph,​java.util.function.Function<TypeLambda,​Graph>> hydra_rewriting_extendGraphForTypeLambda2,
                                                              java.util.function.Function<Graph,​java.util.function.Function<T0,​T0>> setTC,
                                                              TypeLambda tl)
      • isComplexBinding

        static java.lang.Boolean isComplexBinding​(Graph tc,
                                                  Binding b)
      • isComplexTerm

        static java.lang.Boolean isComplexTerm​(Graph tc,
                                               Term t)
      • isComplexVariable

        static java.lang.Boolean isComplexVariable​(Graph tc,
                                                   Name name)
      • isSelfTailRecursive

        static java.lang.Boolean isSelfTailRecursive​(Name funcName,
                                                     Term body)
      • isSimpleAssignment

        static java.lang.Boolean isSimpleAssignment​(Term term)
      • isTailRecursiveInTailPosition

        static java.lang.Boolean isTailRecursiveInTailPosition​(Name funcName,
                                                               Term term)
      • isTrivialTerm

        static java.lang.Boolean isTrivialTerm​(Term t)
      • normalizeComment

        static java.lang.String normalizeComment​(java.lang.String s)