type options … type Option … // MaxRecursionDepth limits the maximum depth the parser will attempt to parse the expression before giving up. func MaxRecursionDepth(limit int) Option { … } // ErrorRecoveryLookaheadTokenLimit limits the number of lexer tokens that may be considered during error recovery. // // Error recovery often involves looking ahead in the input to determine if there's a point at which parsing may // successfully resume. In some pathological cases, the parser can look through quite a large set of input which // in turn generates a lot of back-tracking and performance degredation. // // The limit must be >= 1, and is recommended to be less than the default of 256. func ErrorRecoveryLookaheadTokenLimit(limit int) Option { … } // ErrorRecoveryLimit limits the number of attempts the parser will perform to recover from an error. func ErrorRecoveryLimit(limit int) Option { … } // ErrorReportingLimit limits the number of syntax error reports before terminating parsing. // // The limit must be at least 1. If unset, the limit will be 100. func ErrorReportingLimit(limit int) Option { … } // ExpressionSizeCodePointLimit is an option which limits the maximum code point count of an // expression. func ExpressionSizeCodePointLimit(expressionSizeCodePointLimit int) Option { … } // Macros adds the given macros to the parser. func Macros(macros ...Macro) Option { … } // PopulateMacroCalls ensures that the original call signatures replaced by expanded macros // are preserved in the `SourceInfo` of parse result. func PopulateMacroCalls(populateMacroCalls bool) Option { … } // EnableOptionalSyntax enables syntax for optional field and index selection. func EnableOptionalSyntax(optionalSyntax bool) Option { … } // EnableVariadicOperatorASTs enables a compact representation of chained like-kind commutative // operators. e.g. `a || b || c || d` -> `call(op='||', args=[a, b, c, d])` // // The benefit of enabling variadic operators ASTs is a more compact representation deeply nested // logic graphs. func EnableVariadicOperatorASTs(varArgASTs bool) Option { … }