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 } \"]\""`
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"`
NumberVariable *string `parser:"| @IntVariable"`
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.