Documentation
¶
Index ¶
- type Alias
- type Array
- type Builtin
- type DefaultRuntime
- func (runtime *DefaultRuntime) Add(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) And(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) Define(identifier string, value *Value)
- func (runtime *DefaultRuntime) Divide(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) Equals(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) GreaterThan(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) GreaterThanOrEqual(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) Index(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) LessThan(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) LessThanOrEqual(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) Modulo(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) Multiply(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) Negative(operand *Value) *Value
- func (runtime *DefaultRuntime) Not(operand *Value) *Value
- func (runtime *DefaultRuntime) NotEquals(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) Or(left *Value, right *Value) *Value
- func (runtime *DefaultRuntime) PopScope()
- func (runtime *DefaultRuntime) PushScope(scopeType ScopeType)
- func (runtime *DefaultRuntime) Resolve(identifier string) *Value
- func (runtime *DefaultRuntime) ResolveEscapes(value string) string
- func (runtime *DefaultRuntime) Scope() *Scope
- func (runtime *DefaultRuntime) Selector(value *Value, identifier string) *Value
- func (runtime *DefaultRuntime) SetScope(scope *Scope)
- func (runtime *DefaultRuntime) Shell(script string)
- func (runtime *DefaultRuntime) ShellFormat(value *Value) string
- func (runtime *DefaultRuntime) Subtract(left *Value, right *Value) *Value
- type Delegate
- type Engine
- type Function
- type FunctionHandler
- type Object
- type Program
- func (program *Program) BuildSymbols() []error
- func (program *Program) DefineBuiltinFunction(identifier string, arguments int, handler FunctionHandler)
- func (program *Program) DefineBuiltinSymbols()
- func (program *Program) DefineBuiltinValue(identifier string, valueType ValueType, traits semantics.Trait, ...)
- func (program *Program) DefineBuiltinValues()
- func (program *Program) Parse() error
- func (program *Program) Run() error
- func (program *Program) RunTask(task string) error
- func (program *Program) Validate() []error
- type Rule
- type RuntimeError
- type Scope
- type ScopeType
- type Value
- type ValueType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DefaultRuntime ¶
type DefaultRuntime struct {
// contains filtered or unexported fields
}
func CreateDefaultRuntime ¶
func CreateDefaultRuntime() *DefaultRuntime
func (*DefaultRuntime) Define ¶
func (runtime *DefaultRuntime) Define(identifier string, value *Value)
func (*DefaultRuntime) Divide ¶
func (runtime *DefaultRuntime) Divide(left *Value, right *Value) *Value
func (*DefaultRuntime) Equals ¶
func (runtime *DefaultRuntime) Equals(left *Value, right *Value) *Value
func (*DefaultRuntime) GreaterThan ¶
func (runtime *DefaultRuntime) GreaterThan(left *Value, right *Value) *Value
func (*DefaultRuntime) GreaterThanOrEqual ¶
func (runtime *DefaultRuntime) GreaterThanOrEqual(left *Value, right *Value) *Value
func (*DefaultRuntime) Index ¶
func (runtime *DefaultRuntime) Index(left *Value, right *Value) *Value
func (*DefaultRuntime) LessThan ¶
func (runtime *DefaultRuntime) LessThan(left *Value, right *Value) *Value
func (*DefaultRuntime) LessThanOrEqual ¶
func (runtime *DefaultRuntime) LessThanOrEqual(left *Value, right *Value) *Value
func (*DefaultRuntime) Modulo ¶
func (runtime *DefaultRuntime) Modulo(left *Value, right *Value) *Value
func (*DefaultRuntime) Multiply ¶
func (runtime *DefaultRuntime) Multiply(left *Value, right *Value) *Value
func (*DefaultRuntime) Negative ¶
func (runtime *DefaultRuntime) Negative(operand *Value) *Value
func (*DefaultRuntime) Not ¶
func (runtime *DefaultRuntime) Not(operand *Value) *Value
func (*DefaultRuntime) NotEquals ¶
func (runtime *DefaultRuntime) NotEquals(left *Value, right *Value) *Value
func (*DefaultRuntime) PopScope ¶
func (runtime *DefaultRuntime) PopScope()
func (*DefaultRuntime) PushScope ¶
func (runtime *DefaultRuntime) PushScope(scopeType ScopeType)
func (*DefaultRuntime) Resolve ¶
func (runtime *DefaultRuntime) Resolve(identifier string) *Value
func (*DefaultRuntime) ResolveEscapes ¶
func (runtime *DefaultRuntime) ResolveEscapes(value string) string
func (*DefaultRuntime) Scope ¶
func (runtime *DefaultRuntime) Scope() *Scope
func (*DefaultRuntime) Selector ¶
func (runtime *DefaultRuntime) Selector(value *Value, identifier string) *Value
func (*DefaultRuntime) SetScope ¶
func (runtime *DefaultRuntime) SetScope(scope *Scope)
func (*DefaultRuntime) Shell ¶
func (runtime *DefaultRuntime) Shell(script string)
func (*DefaultRuntime) ShellFormat ¶
func (runtime *DefaultRuntime) ShellFormat(value *Value) string
type Delegate ¶
type Delegate interface { Add(left *Value, right *Value) *Value Subtract(left *Value, right *Value) *Value Multiply(left *Value, right *Value) *Value Divide(left *Value, right *Value) *Value Modulo(left *Value, right *Value) *Value Equals(left *Value, right *Value) *Value NotEquals(left *Value, right *Value) *Value GreaterThan(left *Value, right *Value) *Value GreaterThanOrEqual(left *Value, right *Value) *Value LessThan(left *Value, right *Value) *Value LessThanOrEqual(left *Value, right *Value) *Value And(left *Value, right *Value) *Value Or(left *Value, right *Value) *Value Not(operand *Value) *Value Negative(operand *Value) *Value Shell(script string) ShellFormat(value *Value) string Index(left *Value, right *Value) *Value Selector(value *Value, identifier string) *Value ResolveEscapes(value string) string Define(identifier string, value *Value) Resolve(identifier string) *Value SetScope(scope *Scope) Scope() *Scope PushScope(scopeType ScopeType) PopScope() }
Delegate handles runtime-specific evaluations. Functions may panic
type Engine ¶
type Engine struct { Delegate Delegate // contains filtered or unexported fields }
func CreateEngine ¶
func (*Engine) EvaluateTask ¶
type Function ¶
type Function struct { // Arguments to define before executing the block. Only used when evaluating the Block Arguments []string // Block is the AST block that will be executed on invocation. Block and Handler are mutually exclusive. Block *ast.Block // Handler is the callback that should handle the invocation. Block and Handler are mutually exclusive. Handler FunctionHandler IsRuleFunction bool }
type FunctionHandler ¶
type Program ¶
type Program struct { Input string Source *ast.Block RootScope *semantics.Scope Builtins map[string]*Builtin Engine *Engine Delegate Delegate }
func CreateProgram ¶
func (*Program) BuildSymbols ¶
func (*Program) DefineBuiltinFunction ¶
func (program *Program) DefineBuiltinFunction(identifier string, arguments int, handler FunctionHandler)
DefineBuiltinFunction defines as new, globally available function
func (*Program) DefineBuiltinSymbols ¶
func (program *Program) DefineBuiltinSymbols()
DefineBuiltinSymbols declares symbols in the global scope
func (*Program) DefineBuiltinValue ¶
func (*Program) DefineBuiltinValues ¶
func (program *Program) DefineBuiltinValues()
DefineBuiltinSymbols defines the values in the delegate's scope
type RuntimeError ¶
type RuntimeError struct {
Message string
}
func CreateRuntimeError ¶
func CreateRuntimeError(message string) *RuntimeError
func (*RuntimeError) Error ¶
func (err *RuntimeError) Error() string
Click to show internal directories.
Click to hide internal directories.