Package hydra.dsl

Interface Terms


  • public interface Terms
    DSL utilities for constructing Hydra terms based on native Java objects.
    • Method Summary

      Static Methods 
      Modifier and Type Method Description
      static Term annot​(Name key, Term value, Term base)
      Construct an annotation term with a single key/value pair.
      static Term annot​(java.lang.String description, Term base)
      Construct an annotation term with "description" annotation.
      static Term annot​(java.util.Map<Name,​Term> ann, Term base)
      Construct an annotation term.
      static Term app​(Term lhs, Term... rhs)
      Construct an application term.
      static Term app​(java.lang.String lhs, Term... rhs)
      Construct an application term.
      static Term app​(java.lang.String lhs, java.lang.String rhs)
      Construct an application term.
      static Term app​(java.lang.String lhs, java.lang.String rhs1, java.lang.String rhs2)
      Construct an application term.
      static Term apply​(Term lhs, Term... rhs)
      Construct a compound application term.
      static Term bigfloat​(double value)
      Construct a bigfloat literal term.
      static Term bigint​(java.math.BigInteger value)
      Construct a bigint literal term.
      static Term binary​(java.lang.String value)
      Construct a binary literal term.
      static Term boolean_​(boolean value)
      Construct a boolean literal term.
      static Term cases​(Name name, Opt<Term> def, Field... fields)
      Construct a case (pattern-matching) term.
      static Term elimination​(Elimination elim)
      Construct an elimination term.
      static Field field​(java.lang.String fname, Term term)
      Construct a field.
      static Field field​(java.lang.String fname, java.lang.String term)
      Construct a field.
      static Term float_​(FloatValue value)
      Construct a float literal term.
      static Term float32​(float value)
      Construct a float32 literal term.
      static Term float64​(double value)
      Construct a float64 literal term.
      static Term flowState​(Term value, Term state, Term trace)
      Construct a flow state term (used with the Flow monad).
      static Term flowStateState()
      Construct a state term (used with the Flow monad).
      static Term flowStateTrace()
      Construct a trace term (used with the Flow monad).
      static Term flowStateValue()
      Construct a value term (used with the Flow monad).
      static Term fold​(Term fun)
      Construct a fold term.
      static Term foldOpt​(OptionalCases cases)
      Construct an optional-fold term.
      static Term function​(Function fun)
      Construct a function term.
      static Term inject​(Name unionName, Field field)
      Construct an injection term.
      static Term inject​(java.lang.String unionName, Field field)
      Construct an injection term.
      static Term int16​(short value)
      Construct an int16 literal term.
      static Term int32​(int value)
      Construct an int32 literal term.
      static Term int64​(long value)
      Construct an int64 literal term.
      static Term int8​(byte value)
      Construct an int8 literal term.
      static Term integer​(IntegerValue value)
      Construct an integer literal term.
      static Term just​(Term elem)
      Construct a "just" (nonempty) term.
      static Term just​(java.lang.String elem)
      Construct a "just" (nonempty) term.
      static Term lambda​(java.lang.String var, Term body)
      Construct a lambda (anonymous function) term.
      static Term lambda​(java.lang.String var1, java.lang.String var2, Term body)
      Construct a lambda (anonymous function) term.
      static Term lambda​(java.lang.String var1, java.lang.String var2, java.lang.String var3, Term body)
      Construct a lambda (anonymous function) term.
      static Term let​(java.lang.String var, Term defined, Term definedIn)
      Construct a 'let' term.
      static Term list​(Term... elements)
      Construct a list term.
      static Term list​(java.util.List<Term> elements)
      Construct a list term.
      static Term listOfStrings​(java.util.List<java.lang.String> elements)
      Construct a list of strings term.
      static Term literal​(Literal value)
      Construct a literal term.
      static Term map​(java.util.Map<Term,​Term> value)
      Construct a map term.
      static Term match​(Name name, Opt<Term> def, java.util.Map.Entry<java.lang.String,​Term>... casePairs)
      Construct a match term.
      static Term nothing()
      Construct a "nothing" (empty) term.
      static Term optional​(Opt<Term> maybeTerm)
      Construct an optional term.
      static Term pair​(Term left, Term right)
      Construct a pair term.
      static Term pair​(Tuple.Tuple2<Term,​Term> tuple)
      Construct a pair term.
      static Term primitive​(Name primName)
      Construct a primitive function term.
      static Term primitive​(java.lang.String primName)
      Construct a primitive function term.
      static Term project​(Name recordName, Name fname)
      Construct a projection term.
      static Term project​(Name recordName, java.lang.String fname)
      Construct a projection term.
      static Term project​(java.lang.String recordName, java.lang.String fname)
      Construct a projection term.
      static Term record​(Name recordName, Field... fields)
      Construct a record term.
      static Term record​(java.lang.String recordName, Field... fields)
      Construct a record term.
      static Term set​(java.util.Set<Term> value)
      Construct a set term.
      static Term string​(java.lang.String value)
      Construct a string literal term.
      static Term uint16​(char value)
      Construct a uint16 literal term.
      static Term uint32​(long value)
      Construct a uint32 literal term.
      static Term uint64​(java.math.BigInteger value)
      Construct a uint64 literal term.
      static Term uint8​(char value)
      Construct a uint8 literal term.
      static Term unit()
      Construct a unit term.
      static Term unwrap​(Name name)
      Construct an 'unwrap' term.
      static Term variable​(java.lang.String var)
      Construct a variable term.
      static Term wrap​(Name name, Term term)
      Construct a wrapper term.
    • Method Detail

      • annot

        static Term annot​(java.util.Map<Name,​Term> ann,
                          Term base)
        Construct an annotation term.
      • annot

        static Term annot​(Name key,
                          Term value,
                          Term base)
        Construct an annotation term with a single key/value pair.
      • annot

        static Term annot​(java.lang.String description,
                          Term base)
        Construct an annotation term with "description" annotation.
      • apply

        static Term apply​(Term lhs,
                          Term... rhs)
        Construct a compound application term.
      • app

        static Term app​(Term lhs,
                        Term... rhs)
        Construct an application term.
      • app

        static Term app​(java.lang.String lhs,
                        Term... rhs)
        Construct an application term.
      • app

        static Term app​(java.lang.String lhs,
                        java.lang.String rhs)
        Construct an application term.
      • app

        static Term app​(java.lang.String lhs,
                        java.lang.String rhs1,
                        java.lang.String rhs2)
        Construct an application term.
      • bigfloat

        static Term bigfloat​(double value)
        Construct a bigfloat literal term.
      • bigint

        static Term bigint​(java.math.BigInteger value)
        Construct a bigint literal term.
      • binary

        static Term binary​(java.lang.String value)
        Construct a binary literal term.
      • boolean_

        static Term boolean_​(boolean value)
        Construct a boolean literal term.
      • cases

        static Term cases​(Name name,
                          Opt<Term> def,
                          Field... fields)
        Construct a case (pattern-matching) term.
      • elimination

        static Term elimination​(Elimination elim)
        Construct an elimination term.
      • field

        static Field field​(java.lang.String fname,
                           Term term)
        Construct a field.
      • field

        static Field field​(java.lang.String fname,
                           java.lang.String term)
        Construct a field.
      • float_

        static Term float_​(FloatValue value)
        Construct a float literal term.
      • float32

        static Term float32​(float value)
        Construct a float32 literal term.
      • float64

        static Term float64​(double value)
        Construct a float64 literal term.
      • flowState

        static Term flowState​(Term value,
                              Term state,
                              Term trace)
        Construct a flow state term (used with the Flow monad).
      • flowStateValue

        static Term flowStateValue()
        Construct a value term (used with the Flow monad).
      • flowStateState

        static Term flowStateState()
        Construct a state term (used with the Flow monad).
      • flowStateTrace

        static Term flowStateTrace()
        Construct a trace term (used with the Flow monad).
      • fold

        static Term fold​(Term fun)
        Construct a fold term.
      • foldOpt

        static Term foldOpt​(OptionalCases cases)
        Construct an optional-fold term.
      • function

        static Term function​(Function fun)
        Construct a function term.
      • int8

        static Term int8​(byte value)
        Construct an int8 literal term.
      • int16

        static Term int16​(short value)
        Construct an int16 literal term.
      • int32

        static Term int32​(int value)
        Construct an int32 literal term.
      • int64

        static Term int64​(long value)
        Construct an int64 literal term.
      • integer

        static Term integer​(IntegerValue value)
        Construct an integer literal term.
      • just

        static Term just​(Term elem)
        Construct a "just" (nonempty) term.
      • just

        static Term just​(java.lang.String elem)
        Construct a "just" (nonempty) term.
      • lambda

        static Term lambda​(java.lang.String var,
                           Term body)
        Construct a lambda (anonymous function) term.
      • lambda

        static Term lambda​(java.lang.String var1,
                           java.lang.String var2,
                           Term body)
        Construct a lambda (anonymous function) term.
      • lambda

        static Term lambda​(java.lang.String var1,
                           java.lang.String var2,
                           java.lang.String var3,
                           Term body)
        Construct a lambda (anonymous function) term.
      • let

        static Term let​(java.lang.String var,
                        Term defined,
                        Term definedIn)
        Construct a 'let' term.
      • list

        static Term list​(java.util.List<Term> elements)
        Construct a list term.
      • list

        static Term list​(Term... elements)
        Construct a list term.
      • listOfStrings

        static Term listOfStrings​(java.util.List<java.lang.String> elements)
        Construct a list of strings term.
      • literal

        static Term literal​(Literal value)
        Construct a literal term.
      • map

        static Term map​(java.util.Map<Term,​Term> value)
        Construct a map term.
      • match

        static Term match​(Name name,
                          Opt<Term> def,
                          java.util.Map.Entry<java.lang.String,​Term>... casePairs)
        Construct a match term.
      • nothing

        static Term nothing()
        Construct a "nothing" (empty) term.
      • optional

        static Term optional​(Opt<Term> maybeTerm)
        Construct an optional term.
      • pair

        static Term pair​(Term left,
                         Term right)
        Construct a pair term.
      • primitive

        static Term primitive​(Name primName)
        Construct a primitive function term.
      • primitive

        static Term primitive​(java.lang.String primName)
        Construct a primitive function term.
      • project

        static Term project​(Name recordName,
                            Name fname)
        Construct a projection term.
      • project

        static Term project​(java.lang.String recordName,
                            java.lang.String fname)
        Construct a projection term.
      • project

        static Term project​(Name recordName,
                            java.lang.String fname)
        Construct a projection term.
      • record

        static Term record​(Name recordName,
                           Field... fields)
        Construct a record term.
      • record

        static Term record​(java.lang.String recordName,
                           Field... fields)
        Construct a record term.
      • set

        static Term set​(java.util.Set<Term> value)
        Construct a set term.
      • string

        static Term string​(java.lang.String value)
        Construct a string literal term.
      • uint8

        static Term uint8​(char value)
        Construct a uint8 literal term.
      • uint16

        static Term uint16​(char value)
        Construct a uint16 literal term.
      • uint32

        static Term uint32​(long value)
        Construct a uint32 literal term.
      • uint64

        static Term uint64​(java.math.BigInteger value)
        Construct a uint64 literal term.
      • inject

        static Term inject​(Name unionName,
                           Field field)
        Construct an injection term.
      • inject

        static Term inject​(java.lang.String unionName,
                           Field field)
        Construct an injection term.
      • unit

        static Term unit()
        Construct a unit term.
      • unwrap

        static Term unwrap​(Name name)
        Construct an 'unwrap' term.
      • variable

        static Term variable​(java.lang.String var)
        Construct a variable term.
      • wrap

        static Term wrap​(Name name,
                         Term term)
        Construct a wrapper term.