Package hydra
Interface CoderUtils
-
public interface CoderUtilsCommon utilities for language coders, providing shared patterns for term decomposition and analysis.
-
-
Method Summary
Static Methods Modifier and Type Method Description 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)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)static <T0,T1>
Either<T1,FunctionStructure<T0>>analyzeFunctionTermWith_finish(Context cx, java.util.function.Function<T0,Graph> getTC, T0 fEnv, ConsList<Name> tparams, ConsList<Name> args, ConsList<Binding> bindings, ConsList<Type> doms, ConsList<Type> tapps, Term body)static <T0,T1>
Either<T1,FunctionStructure<T0>>analyzeFunctionTermWith_gather(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, java.lang.Boolean argMode, T0 gEnv, ConsList<Name> tparams, ConsList<Name> args, ConsList<Binding> bindings, ConsList<Type> doms, ConsList<Type> tapps, Term t)static <T0> T0analyzeFunctionTermWith_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)static <T0> T0analyzeFunctionTermWith_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)static <T0> T0analyzeFunctionTermWith_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)static Maybe<Term>bindingMetadata(Graph tc, Binding b)static Either<InContext<Error_>,Maybe<java.lang.String>>commentsFromBinding(Context cx, Graph g, Binding b)static Either<InContext<Error_>,Maybe<java.lang.String>>commentsFromFieldType(Context cx, Graph g, FieldType ft)static Pair<ConsList<Term>,Term>gatherApplications(Term term)static Pair<Term,ConsList<Term>>gatherArgs(Term term, ConsList<Term> args)static Pair<Term,Pair<ConsList<Term>,ConsList<Type>>>gatherArgsWithTypeApps(Term term, ConsList<Term> args, ConsList<Type> tyArgs)static java.lang.BooleanisComplexBinding(Graph tc, Binding b)static java.lang.BooleanisComplexTerm(Graph tc, Term t)static java.lang.BooleanisComplexVariable(Graph tc, Name name)static java.lang.BooleanisSelfTailRecursive(Name funcName, Term body)static java.lang.BooleanisSimpleAssignment(Term term)static java.lang.BooleanisTailRecursiveInTailPosition(Name funcName, Term term)static java.lang.BooleanisTrivialTerm(Term t)static java.lang.StringnameToFilePath(CaseConvention nsConv, CaseConvention localConv, FileExtension ext, Name name)static java.lang.StringnormalizeComment(java.lang.String s)static ConsList<Definition>reorderDefs(ConsList<Definition> defs)static Either<InContext<Error_>,Type>typeOfTerm(Context cx, Graph g, Term term)
-
-
-
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_finish
static <T0,T1> Either<T1,FunctionStructure<T0>> analyzeFunctionTermWith_finish(Context cx, java.util.function.Function<T0,Graph> getTC, T0 fEnv, ConsList<Name> tparams, ConsList<Name> args, ConsList<Binding> bindings, ConsList<Type> doms, ConsList<Type> tapps, Term body)
-
analyzeFunctionTermWith_gather
static <T0,T1> Either<T1,FunctionStructure<T0>> analyzeFunctionTermWith_gather(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, java.lang.Boolean argMode, T0 gEnv, ConsList<Name> tparams, ConsList<Name> args, ConsList<Binding> bindings, ConsList<Type> doms, ConsList<Type> tapps, Term t)
-
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)
-
commentsFromBinding
static Either<InContext<Error_>,Maybe<java.lang.String>> commentsFromBinding(Context cx, Graph g, Binding b)
-
commentsFromFieldType
static Either<InContext<Error_>,Maybe<java.lang.String>> commentsFromFieldType(Context cx, Graph g, FieldType ft)
-
gatherArgsWithTypeApps
static Pair<Term,Pair<ConsList<Term>,ConsList<Type>>> gatherArgsWithTypeApps(Term term, ConsList<Term> args, ConsList<Type> tyArgs)
-
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)
-
nameToFilePath
static java.lang.String nameToFilePath(CaseConvention nsConv, CaseConvention localConv, FileExtension ext, Name name)
-
normalizeComment
static java.lang.String normalizeComment(java.lang.String s)
-
reorderDefs
static ConsList<Definition> reorderDefs(ConsList<Definition> defs)
-
-