Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Array ¶
type Array struct { Pos lexer.Position StringMembers []StringMember `parser:"\"[\" @@ { \",\" @@ } \"]\""` Numbers []int `parser:"| \"[\" @Int { \",\" @Int } \"]\""` Variable *string `parser:"| @Variable"` Ident *string `parser:"| @Ident"` }
Array describes an array of values
type ArrayComparison ¶
type ArrayComparison struct { Pos lexer.Position Op *string `parser:"( @( \"in\" | \"not\" \"in\" )"` Array *Array `parser:"@@ )"` }
ArrayComparison describes an operation that tests membership in an array
type BitOperation ¶
type BitOperation struct { Pos lexer.Position Unary *Unary `parser:"@@"` Op *string `parser:"[ @( \"&\" | \"|\" | \"^\" )"` Next *BitOperation `parser:"@@ ]"` }
BitOperation describes an operation on bits
type BooleanExpression ¶
type BooleanExpression struct { Pos lexer.Position Expression *Expression `parser:"@@"` }
BooleanExpression describes a boolean expression
type Comparison ¶
type Comparison struct { Pos lexer.Position BitOperation *BitOperation `parser:"@@"` ScalarComparison *ScalarComparison `parser:"[ @@"` ArrayComparison *ArrayComparison `parser:"| @@ ]"` }
Comparison describes a comparison
type Expression ¶
type Expression struct { Pos lexer.Position Comparison *Comparison `parser:"@@"` Op *string `parser:"[ @( \"|\" \"|\" | \"or\" | \"&\" \"&\" | \"and\" )"` Next *BooleanExpression `parser:"@@ ]"` }
Expression describes an expression
type Macro ¶
type Macro struct { Pos lexer.Position Expression *Expression `parser:"@@"` Array *Array `parser:"| @@"` Primary *Primary `parser:"| @@"` }
Macro describes a SECL macro
type Primary ¶
type Primary struct { Pos lexer.Position Ident *string `parser:"@Ident"` Number *int `parser:"| @Int"` Variable *string `parser:"| @Variable"` String *string `parser:"| @String"` Pattern *string `parser:"| @Pattern"` Regexp *string `parser:"| @Regexp"` Duration *int `parser:"| @Duration"` SubExpression *Expression `parser:"| \"(\" @@ \")\""` }
Primary describes a single operand. It can be a simple identifier, a number, a string or a full expression in parenthesis
type Rule ¶
type Rule struct { Pos lexer.Position Expr string BooleanExpression *BooleanExpression `parser:"@@"` }
Rule describes a SECL rule
type ScalarComparison ¶
type ScalarComparison struct { Pos lexer.Position Op *string `parser:"@( \">\" \"=\" | \">\" | \"<\" \"=\" | \"<\" | \"!\" \"=\" | \"=\" \"=\" | \"=\" \"~\" | \"!\" \"~\" )"` Next *Comparison `parser:"@@"` }
ScalarComparison describes a scalar comparison : the operator with the right operand
Click to show internal directories.
Click to hide internal directories.