Package hydra
Interface CodeGeneration
-
public interface CodeGenerationPure code generation pipeline for bootstrapping Hydra across languages.
-
-
Method Summary
Static Methods Modifier and Type Method Description static PersistentMap<Name,Type>buildSchemaMap(Graph g)static Either<java.lang.String,Module>decodeModuleFromJson(Graph bsGraph, ConsList<Module> universeModules, java.lang.Boolean doStripTypeSchemes, Value jsonVal)static ConsList<java.lang.Integer>escapeControlCharsInJson(ConsList<java.lang.Integer> input)static java.lang.StringformatPrimitive(Primitive prim)static java.lang.StringformatTermBinding(Binding binding)static Either<DecodingError,java.lang.String>formatTypeBinding(Graph graph, Binding binding)static <T0,T1,T2,T3>
Either<T2,ConsList<T3>>generateCoderModules(java.util.function.Function<T0,java.util.function.Function<Graph,java.util.function.Function<T1,Either<T2,Maybe<T3>>>>> codec, Graph bsGraph, ConsList<Module> universeModules, ConsList<T1> typeModules, T0 cx)static Either<DecodingError,java.lang.String>generateLexicon(Graph graph)static <T0,T1>
Either<InContext<Error_>,ConsList<Pair<T0,T1>>>generateSourceFiles(java.util.function.Function<Module,java.util.function.Function<ConsList<Definition>,java.util.function.Function<Context,java.util.function.Function<Graph,Either<InContext<Error_>,PersistentMap<T0,T1>>>>>> printDefinitions, Language lang, java.lang.Boolean doInfer, java.lang.Boolean doExpand, java.lang.Boolean doHoistCaseStatements, java.lang.Boolean doHoistPolymorphicLetBindings, Graph bsGraph, ConsList<Module> universeModules, ConsList<Module> modsToGenerate, Context cx)static Either<java.lang.String,java.lang.String>inferAndGenerateLexicon(Context cx, Graph bsGraph, ConsList<Module> kernelModules)static Either<InContext<Error_>,ConsList<Module>>inferModules(Context cx, Graph bsGraph, ConsList<Module> universeMods, ConsList<Module> targetMods)static GraphmodulesToGraph(Graph bsGraph, ConsList<Module> universeModules, ConsList<Module> modules)static ConsList<Module>moduleTermDepsTransitive(PersistentMap<Namespace,Module> nsMap, ConsList<Module> modules)static Either<java.lang.String,java.lang.String>moduleToJson(Module m)static ModulemoduleToSourceModule(Module m)static ConsList<Module>moduleTypeDepsTransitive(PersistentMap<Namespace,Module> nsMap, ConsList<Module> modules)static java.lang.StringnamespaceToPath(Namespace ns)static ModulestripModuleTypeSchemes(Module m)static PersistentSet<Namespace>transitiveDeps(java.util.function.Function<Module,ConsList<Namespace>> getDeps, PersistentMap<Namespace,Module> nsMap, ConsList<Module> startMods)
-
-
-
Method Detail
-
buildSchemaMap
static PersistentMap<Name,Type> buildSchemaMap(Graph g)
-
decodeModuleFromJson
static Either<java.lang.String,Module> decodeModuleFromJson(Graph bsGraph, ConsList<Module> universeModules, java.lang.Boolean doStripTypeSchemes, Value jsonVal)
-
escapeControlCharsInJson
static ConsList<java.lang.Integer> escapeControlCharsInJson(ConsList<java.lang.Integer> input)
-
formatPrimitive
static java.lang.String formatPrimitive(Primitive prim)
-
formatTermBinding
static java.lang.String formatTermBinding(Binding binding)
-
formatTypeBinding
static Either<DecodingError,java.lang.String> formatTypeBinding(Graph graph, Binding binding)
-
generateCoderModules
static <T0,T1,T2,T3> Either<T2,ConsList<T3>> generateCoderModules(java.util.function.Function<T0,java.util.function.Function<Graph,java.util.function.Function<T1,Either<T2,Maybe<T3>>>>> codec, Graph bsGraph, ConsList<Module> universeModules, ConsList<T1> typeModules, T0 cx)
-
generateLexicon
static Either<DecodingError,java.lang.String> generateLexicon(Graph graph)
-
generateSourceFiles
static <T0,T1> Either<InContext<Error_>,ConsList<Pair<T0,T1>>> generateSourceFiles(java.util.function.Function<Module,java.util.function.Function<ConsList<Definition>,java.util.function.Function<Context,java.util.function.Function<Graph,Either<InContext<Error_>,PersistentMap<T0,T1>>>>>> printDefinitions, Language lang, java.lang.Boolean doInfer, java.lang.Boolean doExpand, java.lang.Boolean doHoistCaseStatements, java.lang.Boolean doHoistPolymorphicLetBindings, Graph bsGraph, ConsList<Module> universeModules, ConsList<Module> modsToGenerate, Context cx)
-
inferAndGenerateLexicon
static Either<java.lang.String,java.lang.String> inferAndGenerateLexicon(Context cx, Graph bsGraph, ConsList<Module> kernelModules)
-
inferModules
static Either<InContext<Error_>,ConsList<Module>> inferModules(Context cx, Graph bsGraph, ConsList<Module> universeMods, ConsList<Module> targetMods)
-
moduleTermDepsTransitive
static ConsList<Module> moduleTermDepsTransitive(PersistentMap<Namespace,Module> nsMap, ConsList<Module> modules)
-
moduleTypeDepsTransitive
static ConsList<Module> moduleTypeDepsTransitive(PersistentMap<Namespace,Module> nsMap, ConsList<Module> modules)
-
modulesToGraph
static Graph modulesToGraph(Graph bsGraph, ConsList<Module> universeModules, ConsList<Module> modules)
-
namespaceToPath
static java.lang.String namespaceToPath(Namespace ns)
-
transitiveDeps
static PersistentSet<Namespace> transitiveDeps(java.util.function.Function<Module,ConsList<Namespace>> getDeps, PersistentMap<Namespace,Module> nsMap, ConsList<Module> startMods)
-
-