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(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.
-
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, 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).
-
foldOpt
static Term foldOpt(OptionalCases cases)
Construct an optional-fold 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(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.
-
listOfStrings
static Term listOfStrings(java.util.List<java.lang.String> elements)
Construct a list of strings 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.
-
pair
static Term pair(Tuple.Tuple2<Term,Term> tuple)
Construct a pair term.
-
primitive
static Term primitive(java.lang.String primName)
Construct a primitive function term.
-
project
static Term project(java.lang.String recordName, java.lang.String fname)
Construct a projection 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.
-
unit
static Term unit()
Construct a unit term.
-
variable
static Term variable(java.lang.String var)
Construct a variable term.
-
-