Documentation ¶
Index ¶
- Variables
- type Assignment
- type Bool
- type CalledLambda
- type Color
- type Colorer
- type Constant
- type ConstantsStore
- type Formatter
- type FunctionName
- type LambdaArguments
- type LambdaAssignment
- type LambdaCallStack
- type LambdaDeclaration
- type MixedTuple
- type Number
- type Parameter
- type RecursionParameters
- type Result
- type String
- type Tuple
- type VariablesTuple
- type Visitor
- func (v *Visitor) HandleFunctionInvocation(ctx *parser.FunctionInvocationContext) interface{}
- func (v *Visitor) LambdaNames() []string
- func (v *Visitor) SetVariable(name string, value Number)
- func (v *Visitor) VariableNames() []string
- func (v *Visitor) Visit(tree antlr.ParseTree) interface{}
- func (v *Visitor) VisitAddSub(c *parser.AddSubContext) interface{}
- func (v *Visitor) VisitAndOrXor(c *parser.AndOrXorContext) interface{}
- func (v *Visitor) VisitAtomExpr(c *parser.AtomExprContext) interface{}
- func (v *Visitor) VisitBoolAtom(c *parser.BoolAtomContext) interface{}
- func (v *Visitor) VisitBooleanAtom(c *parser.BooleanAtomContext) interface{}
- func (v *Visitor) VisitConstant(c *parser.ConstantContext) interface{}
- func (v *Visitor) VisitEqualComparison(c *parser.EqualComparisonContext) interface{}
- func (v *Visitor) VisitFuncExpr(c *parser.FuncExprContext) interface{}
- func (v *Visitor) VisitFunctionInvocation(c *parser.FunctionInvocationContext) interface{}
- func (v *Visitor) VisitGreaterComparison(c *parser.GreaterComparisonContext) interface{}
- func (v *Visitor) VisitGreaterOrEqualComparison(c *parser.GreaterOrEqualComparisonContext) interface{}
- func (v *Visitor) VisitLambdaArguments(c *parser.LambdaArgumentsContext) interface{}
- func (v *Visitor) VisitLambdaDeclaration(c *parser.LambdaDeclarationContext) interface{}
- func (v *Visitor) VisitLambdaExpr(c *parser.LambdaExprContext) interface{}
- func (v *Visitor) VisitLessComparison(c *parser.LessComparisonContext) interface{}
- func (v *Visitor) VisitLessOrEqualComparison(c *parser.LessOrEqualComparisonContext) interface{}
- func (v *Visitor) VisitMinusSign(c *parser.MinusSignContext) interface{}
- func (v *Visitor) VisitMixedTuple(c *parser.MixedTupleContext) interface{}
- func (v *Visitor) VisitMod(c *parser.ModContext) interface{}
- func (v *Visitor) VisitMulDiv(c *parser.MulDivContext) interface{}
- func (v *Visitor) VisitNot(c *parser.NotContext) interface{}
- func (v *Visitor) VisitNullArityLambda(c *parser.NullArityLambdaContext) interface{}
- func (v *Visitor) VisitNumber(c *parser.NumberContext) interface{}
- func (v *Visitor) VisitParameter(c *parser.ParameterContext) interface{}
- func (v *Visitor) VisitParentheses(c *parser.ParenthesesContext) interface{}
- func (v *Visitor) VisitParenthesesBoolean(c *parser.ParenthesesBooleanContext) interface{}
- func (v *Visitor) VisitPercent(c *parser.PercentContext) interface{}
- func (v *Visitor) VisitPlusSign(c *parser.PlusSignContext) interface{}
- func (v *Visitor) VisitPow(c *parser.PowContext) interface{}
- func (v *Visitor) VisitRecursionParameters(c *parser.RecursionParametersContext) interface{}
- func (v *Visitor) VisitRoot(c *parser.RootContext) interface{}
- func (v *Visitor) VisitSignedExpr(c *parser.SignedExprContext) interface{}
- func (v *Visitor) VisitTuple(c *parser.TupleContext) interface{}
- func (v *Visitor) VisitVariable(c *parser.VariableContext) interface{}
- func (v *Visitor) VisitVariableDeclaration(c *parser.VariableDeclarationContext) interface{}
- func (v *Visitor) VisitVariablesLambda(c *parser.VariablesLambdaContext) interface{}
- func (v *Visitor) VisitVariablesTuple(c *parser.VariablesTupleContext) interface{}
Constants ¶
This section is empty.
Variables ¶
View Source
var ( Green = Color("\033[32m") Magenta = Color("\033[35m") Red = Color("\033[91m") White = Color("\033[37m") Reset = Color("\033[0m") )
View Source
var FunctionNames = map[FunctionName]struct{}{ // contains filtered or unexported fields }
Functions ¶
This section is empty.
Types ¶
type Assignment ¶
type Assignment []Number
func (Assignment) Color ¶
func (r Assignment) Color() string
func (Assignment) String ¶
func (r Assignment) String() string
type CalledLambda ¶
type CalledLambda struct {
// contains filtered or unexported fields
}
func (*CalledLambda) Signature ¶
func (l *CalledLambda) Signature() string
type ConstantsStore ¶
type ConstantsStore struct { Constants map[Constant]Number LogCache *lru.Cache[string, Number] // TODO: migrate back to hashicorp/golang-lru when it supports generics }
func NewConstantsStore ¶
func NewConstantsStore() (*ConstantsStore, error)
func (*ConstantsStore) Cache ¶
func (cs *ConstantsStore) Cache(key string, value Number)
func (*ConstantsStore) Constant ¶
func (cs *ConstantsStore) Constant(constant Constant) (Number, bool)
func (*ConstantsStore) SetConstant ¶
func (cs *ConstantsStore) SetConstant(constant Constant, value Number)
type FunctionName ¶
type FunctionName string
type LambdaArguments ¶
type LambdaArguments []String
func (LambdaArguments) Color ¶
func (r LambdaArguments) Color() string
Color variables and Lambdas differently
func (LambdaArguments) String ¶
func (r LambdaArguments) String() string
type LambdaAssignment ¶
type LambdaAssignment string
func (LambdaAssignment) Color ¶
func (r LambdaAssignment) Color() string
func (LambdaAssignment) String ¶
func (r LambdaAssignment) String() string
type LambdaCallStack ¶
type LambdaCallStack struct {
// contains filtered or unexported fields
}
func (*LambdaCallStack) IsRecurring ¶
func (s *LambdaCallStack) IsRecurring(lambdaName string) bool
func (*LambdaCallStack) Peek ¶
func (s *LambdaCallStack) Peek() *CalledLambda
func (*LambdaCallStack) Pop ¶
func (s *LambdaCallStack) Pop() *CalledLambda
func (*LambdaCallStack) Push ¶
func (s *LambdaCallStack) Push(l *CalledLambda)
type LambdaDeclaration ¶
type LambdaDeclaration struct {
// contains filtered or unexported fields
}
type MixedTuple ¶
type MixedTuple []interface{}
func (MixedTuple) Color ¶
func (r MixedTuple) Color() string
func (MixedTuple) String ¶
func (r MixedTuple) String() string
type RecursionParameters ¶
type RecursionParameters struct { MaxRecurrences uint LastValue parser.IExpressionContext StopWhen parser.IBoolExpressionContext Memoize bool }
func NewRecursionParameters ¶
func NewRecursionParameters() *RecursionParameters
type Result ¶
Result is struct returned after evaluating each leaf in the parser tree. Errors are propagated up
type VariablesTuple ¶
type VariablesTuple []String
func (VariablesTuple) Color ¶
func (r VariablesTuple) Color() string
func (VariablesTuple) String ¶
func (r VariablesTuple) String() string
type Visitor ¶
type Visitor struct { antlr.ParseTreeVisitor ConstantsStore *ConstantsStore // contains filtered or unexported fields }
func (*Visitor) HandleFunctionInvocation ¶
func (v *Visitor) HandleFunctionInvocation(ctx *parser.FunctionInvocationContext) interface{}
func (*Visitor) LambdaNames ¶
func (*Visitor) SetVariable ¶
func (*Visitor) VariableNames ¶
func (*Visitor) VisitAddSub ¶
func (v *Visitor) VisitAddSub(c *parser.AddSubContext) interface{}
func (*Visitor) VisitAndOrXor ¶
func (v *Visitor) VisitAndOrXor(c *parser.AndOrXorContext) interface{}
func (*Visitor) VisitAtomExpr ¶
func (v *Visitor) VisitAtomExpr(c *parser.AtomExprContext) interface{}
func (*Visitor) VisitBoolAtom ¶
func (v *Visitor) VisitBoolAtom(c *parser.BoolAtomContext) interface{}
func (*Visitor) VisitBooleanAtom ¶
func (v *Visitor) VisitBooleanAtom(c *parser.BooleanAtomContext) interface{}
func (*Visitor) VisitConstant ¶
func (v *Visitor) VisitConstant(c *parser.ConstantContext) interface{}
func (*Visitor) VisitEqualComparison ¶
func (v *Visitor) VisitEqualComparison(c *parser.EqualComparisonContext) interface{}
func (*Visitor) VisitFuncExpr ¶
func (v *Visitor) VisitFuncExpr(c *parser.FuncExprContext) interface{}
func (*Visitor) VisitFunctionInvocation ¶
func (v *Visitor) VisitFunctionInvocation(c *parser.FunctionInvocationContext) interface{}
func (*Visitor) VisitGreaterComparison ¶
func (v *Visitor) VisitGreaterComparison(c *parser.GreaterComparisonContext) interface{}
func (*Visitor) VisitGreaterOrEqualComparison ¶
func (v *Visitor) VisitGreaterOrEqualComparison(c *parser.GreaterOrEqualComparisonContext) interface{}
func (*Visitor) VisitLambdaArguments ¶
func (v *Visitor) VisitLambdaArguments(c *parser.LambdaArgumentsContext) interface{}
func (*Visitor) VisitLambdaDeclaration ¶
func (v *Visitor) VisitLambdaDeclaration(c *parser.LambdaDeclarationContext) interface{}
func (*Visitor) VisitLambdaExpr ¶
func (v *Visitor) VisitLambdaExpr(c *parser.LambdaExprContext) interface{}
func (*Visitor) VisitLessComparison ¶
func (v *Visitor) VisitLessComparison(c *parser.LessComparisonContext) interface{}
func (*Visitor) VisitLessOrEqualComparison ¶
func (v *Visitor) VisitLessOrEqualComparison(c *parser.LessOrEqualComparisonContext) interface{}
func (*Visitor) VisitMinusSign ¶
func (v *Visitor) VisitMinusSign(c *parser.MinusSignContext) interface{}
func (*Visitor) VisitMixedTuple ¶
func (v *Visitor) VisitMixedTuple(c *parser.MixedTupleContext) interface{}
func (*Visitor) VisitMod ¶
func (v *Visitor) VisitMod(c *parser.ModContext) interface{}
func (*Visitor) VisitMulDiv ¶
func (v *Visitor) VisitMulDiv(c *parser.MulDivContext) interface{}
func (*Visitor) VisitNot ¶
func (v *Visitor) VisitNot(c *parser.NotContext) interface{}
func (*Visitor) VisitNullArityLambda ¶
func (v *Visitor) VisitNullArityLambda(c *parser.NullArityLambdaContext) interface{}
func (*Visitor) VisitNumber ¶
func (v *Visitor) VisitNumber(c *parser.NumberContext) interface{}
func (*Visitor) VisitParameter ¶
func (v *Visitor) VisitParameter(c *parser.ParameterContext) interface{}
func (*Visitor) VisitParentheses ¶
func (v *Visitor) VisitParentheses(c *parser.ParenthesesContext) interface{}
func (*Visitor) VisitParenthesesBoolean ¶
func (v *Visitor) VisitParenthesesBoolean(c *parser.ParenthesesBooleanContext) interface{}
func (*Visitor) VisitPercent ¶
func (v *Visitor) VisitPercent(c *parser.PercentContext) interface{}
func (*Visitor) VisitPlusSign ¶
func (v *Visitor) VisitPlusSign(c *parser.PlusSignContext) interface{}
func (*Visitor) VisitPow ¶
func (v *Visitor) VisitPow(c *parser.PowContext) interface{}
func (*Visitor) VisitRecursionParameters ¶
func (v *Visitor) VisitRecursionParameters(c *parser.RecursionParametersContext) interface{}
TODO: Errors aren't handled
func (*Visitor) VisitRoot ¶
func (v *Visitor) VisitRoot(c *parser.RootContext) interface{}
func (*Visitor) VisitSignedExpr ¶
func (v *Visitor) VisitSignedExpr(c *parser.SignedExprContext) interface{}
func (*Visitor) VisitTuple ¶
func (v *Visitor) VisitTuple(c *parser.TupleContext) interface{}
func (*Visitor) VisitVariable ¶
func (v *Visitor) VisitVariable(c *parser.VariableContext) interface{}
func (*Visitor) VisitVariableDeclaration ¶
func (v *Visitor) VisitVariableDeclaration(c *parser.VariableDeclarationContext) interface{}
func (*Visitor) VisitVariablesLambda ¶
func (v *Visitor) VisitVariablesLambda(c *parser.VariablesLambdaContext) interface{}
func (*Visitor) VisitVariablesTuple ¶
func (v *Visitor) VisitVariablesTuple(c *parser.VariablesTupleContext) interface{}
Click to show internal directories.
Click to hide internal directories.