Documentation
      ¶
    
    
  
    
      Overview ¶
AUTOGENERATED. DO NOT EDIT.
Index ¶
- Constants
 - func AssertCodeErrors(t *testing.T, errString, code string) bool
 - func AssertCodeEvalsToGrammar(t *testing.T, expected parser.Grammar, code string)
 - func AssertCodeEvalsToType(t *testing.T, expected interface{}, code string) bool
 - func AssertCodePanics(t *testing.T, code string) bool
 - func AssertCodeParseErrors(t *testing.T, errString, code string) bool
 - func AssertCodesEvalToSameValue(t *testing.T, expected, code string) bool
 - func AssertCodesEvalToSameValueCtx(ctx context.Context, t *testing.T, expected, code string) bool
 - func AssertEvalExprString(t *testing.T, expected, source string) bool
 - func AssertScan(t *testing.T, l *Lexer, tok Token, intf interface{}, lexeme string) bool
 - func Compile(ctx context.Context, filePath, source string) (rel.Expr, error)
 - func EvalWithScope(ctx context.Context, path, source string, scope rel.Scope) (rel.Value, error)
 - func EvaluateBundle(bundle []byte, args ...string) (rel.Value, error)
 - func EvaluateBundleCtx(ctx context.Context, bundle []byte, args ...string) (rel.Value, error)
 - func EvaluateExpr(ctx context.Context, path, source string) (rel.Value, error)
 - func FixFuncs() (rel.Value, rel.Value)
 - func GetBuildInfo(b buildinfo.BuildData) rel.Value
 - func GetMainBundleSource(ctx context.Context) (context.Context, []byte, string)
 - func GetModuleFromBundle(ctx context.Context, buf []byte) (context.Context, string, error)
 - func MustAbs(t *testing.T, filePath string) string
 - func MustCompile(ctx context.Context, filePath, source string) rel.Expr
 - func NewPackageExpr(scanner parser.Scanner, a rel.Expr) rel.Expr
 - func OutputArraiz(ctx context.Context, w io.Writer) error
 - func ParseArraiString(lexeme []byte) string
 - func PrettifyString(val interface{}, indentsNum int) (string, error)
 - func RequireCodesEvalToSameValue(t *testing.T, expected string, code string)
 - func SafeStdScope() rel.Scope
 - func SafeStdScopeTuple() rel.Tuple
 - func SetupBundle(ctx context.Context, filePath string, source []byte) (_ context.Context, err error)
 - func StdScope() rel.Scope
 - func TokenRepr(token Token) string
 - func WithBundleRun(ctx context.Context, buf []byte) (context.Context, error)
 - type Enumerable
 - type EvalConfig
 - type FilePos
 - type FileRange
 - type ImportExpr
 - type Lexer
 - func (l *Lexer) Data() interface{}
 - func (l *Lexer) Error() error
 - func (l *Lexer) Fail(err error) Token
 - func (l *Lexer) Failf(fmtStr string, args ...interface{}) Token
 - func (l *Lexer) FileRange() FileRange
 - func (l *Lexer) InState(state lexerState, f func())
 - func (l *Lexer) Lexeme() []byte
 - func (l *Lexer) Offset() int
 - func (l *Lexer) Peek() Token
 - func (l *Lexer) PopState()
 - func (l *Lexer) PushState(state lexerState)
 - func (l *Lexer) Reader() io.Reader
 - func (l *Lexer) Scan(expected ...Token) bool
 - func (l *Lexer) ScanOperator(operatorsRe *regexp.Regexp) (Token, interface{})
 - func (l *Lexer) ScanOperatorOrSymbol(operatorsRe *regexp.Regexp, symbols []LexerSymbol) (Token, interface{})
 - func (l *Lexer) ScanSymbol(symbols []LexerSymbol) (Token, interface{})
 - func (l *Lexer) String() string
 - func (l *Lexer) Tail() []byte
 - func (l *Lexer) Token() Token
 - func (l *Lexer) Value() rel.Value
 
- type LexerSymbol
 - type Macro
 - type MacroValue
 - type PackageExpr
 - type ParseContext
 - func (pc ParseContext) CompileExpr(ctx context.Context, b ast.Branch) (rel.Expr, error)
 - func (pc ParseContext) MustParse(ctx context.Context, s *parser.Scanner) ast.Branch
 - func (pc ParseContext) MustParseString(ctx context.Context, s string) ast.Branch
 - func (pc ParseContext) Parse(ctx context.Context, s *parser.Scanner) (ast.Branch, error)
 - func (pc ParseContext) ParseString(ctx context.Context, s string) (ast.Branch, error)
 
- type StopError
 - type Token
 
Constants ¶
const ( // ModuleDir contains all the module files in a bundled scripts. ModuleDir = "/module" // NoModuleDir contains all the module files without root in a bundled scripts. NoModuleDir = "/unnamed" // BundleConfig contains configurations to run a bundled scripts. BundleConfig = "/config.arrai" )
const ModuleRootSentinel = "go.mod"
    ModuleRootSentinel is a file which marks the module root of a project.
const NoPath = "\000"
    Variables ¶
This section is empty.
Functions ¶
func AssertCodeErrors ¶
AssertCodeErrors asserts that code fails with a certain message when executed.
func AssertCodeEvalsToGrammar ¶ added in v0.73.0
AssertCodeEvalsToGrammar asserts that code evaluates to a grammar equal to expected.
func AssertCodeEvalsToType ¶
AssertCodeEvalsToType asserts that code evaluates to the same type as expected.
func AssertCodePanics ¶
AssertCodePanics asserts that code panics when executed. TODO: Remove this. Should only intentionally panic for implementation bugs.
func AssertCodeParseErrors ¶ added in v0.179.0
AssertCodeParseErrors asserts that code fails with a certain message when parsed.
func AssertCodesEvalToSameValue ¶
AssertCodesEvalToSameValue asserts that code evaluate to the same value as expected.
func AssertCodesEvalToSameValueCtx ¶ added in v0.184.0
AssertCodesEvalToSameValueCtx asserts that code evaluate to the same value as expected under the given context.
func AssertEvalExprString ¶ added in v0.3.0
AssertEvalExprString asserts Expr string.
func AssertScan ¶
AssertScan asserts that a lexer's next produced token is as expected.
func EvalWithScope ¶
func EvaluateBundle ¶ added in v0.161.0
EvaluateBundle evaluates the buffer of a bundled scripts using the arrai bundle cmd. If args are provided, they override the values of //os.args.
func EvaluateBundleCtx ¶ added in v0.184.0
EvaluateBundleCtx evaluates the buffer of a bundled scripts using the arrai bundle cmd. If args are provided, they override the values of //os.args.
func EvaluateExpr ¶
EvaluateExpr evaluate the passed in arrai script `source` and returns the evaluated arrai value. Parameter `path` is used as source context, could be empty.
func GetBuildInfo ¶ added in v0.103.0
GetBuildInfo returns arr.ai build information.
func GetMainBundleSource ¶ added in v0.161.0
GetMainBundleSource gets the path for the main arrai script in the bundled arrai scripts.
func GetModuleFromBundle ¶ added in v0.173.0
GetModuleFromBundle fetches the module path of the bundle from the bundle's buffer.
func NewPackageExpr ¶
NewPackageExpr evaluates to !a.
func OutputArraiz ¶ added in v0.161.0
OutputArraiz writes the zip binary to the provided writer.
func ParseArraiString ¶
ParseArraiString parses an arr.ai string.
func PrettifyString ¶ added in v0.102.0
PrettifyString returns a string which represents `rel.Value` with more reabable format. For example, `{b: 2, a: 1, c: (a: 2, b: {aa: {bb: (a: 22, d: {3, 1, 2})}})}` is formatted to:
{
	b: 2,
	a: 1,
	c: (
		a: 2,
		b: {
			aa: {
				bb: (
					a: 22,
					d: {3, 1, 2}
				)
			}
		}
	)
}
  
        func RequireCodesEvalToSameValue ¶
RequireCodesEvalToSameValue requires that code evaluates to the same value as expected.
func SafeStdScope ¶ added in v0.274.0
func SafeStdScopeTuple ¶ added in v0.274.0
func SetupBundle ¶ added in v0.161.0
func SetupBundle(ctx context.Context, filePath string, source []byte) (_ context.Context, err error)
SetupBundle adds necessary values to the context for bundling arrai scripts.
Types ¶
type Enumerable ¶ added in v0.117.0
type Enumerable interface {
	ArrayEnumerator() rel.ValueEnumerator
}
    type EvalConfig ¶ added in v0.274.0
type EvalConfig struct {
	// contains filtered or unexported fields
}
    type FilePos ¶
FilePos represents a position in a line-based file.
type FileRange ¶
FileRange represents a range of characters in a line-based.
type ImportExpr ¶ added in v0.146.0
type ImportExpr struct {
	rel.ExprScanner
	// contains filtered or unexported fields
}
    func NewImportExpr ¶ added in v0.146.0
func (ImportExpr) String ¶ added in v0.146.0
func (i ImportExpr) String() string
type Lexer ¶
type Lexer struct {
	// contains filtered or unexported fields
}
    Lexer extracts a stream of tokens from an input file.
func NewLexerWithPrefix ¶
NewLexerWithPrefix returns a new Lexer for the given input.
func NewStringLexer ¶
NewStringLexer returns a new Lexer for the given input.
func (*Lexer) InState ¶
func (l *Lexer) InState(state lexerState, f func())
InState wraps a lambda in PushState()/PopState().
func (*Lexer) Offset ¶
Offset returns the current scanning position as an offset from the start of the input.
func (*Lexer) Peek ¶
Peek peeks at the next token. First scans the next token if Peek() has not been called since the last call to Lex().
func (*Lexer) PopState ¶
func (l *Lexer) PopState()
PopState pops the current state off the stack and makes it current.
func (*Lexer) PushState ¶
func (l *Lexer) PushState(state lexerState)
PushState pushes the current state onto the stack, and makes the given state current.
func (*Lexer) Scan ¶
Scan scans the expected tokens, otherwise stays put. If no expected tokens are given, scans any token. Returns true iff a token was scanned.
func (*Lexer) ScanOperator ¶
ScanOperator tries to recognise an operator or returns NULL.
func (*Lexer) ScanOperatorOrSymbol ¶
func (l *Lexer) ScanOperatorOrSymbol( operatorsRe *regexp.Regexp, symbols []LexerSymbol, ) (Token, interface{})
ScanOperatorOrSymbol tries to scan an operator or a symbol, or returns NULL.
func (*Lexer) ScanSymbol ¶
func (l *Lexer) ScanSymbol(symbols []LexerSymbol) (Token, interface{})
ScanSymbol tries to scan each given symbol or returns NULL.
func (*Lexer) String ¶
String produces a formatted string representation of the lexer with a line marker.
type LexerSymbol ¶
type LexerSymbol struct {
	// contains filtered or unexported fields
}
    LexerSymbol is a convenience structure for defining token recognition regexes and handler functions.
type Macro ¶ added in v0.73.0
type Macro struct {
	// contains filtered or unexported fields
}
    Macro represents the metadata of a macro invocation: the grammar and rule to parse with, and the transform to apply to the parsed body.
type MacroValue ¶ added in v0.73.0
MacroValue is an Extra node with an Expr value and a Scanner for the macro source.
func NewMacroValue ¶ added in v0.73.0
func NewMacroValue(expr rel.Expr, scanner parser.Scanner) MacroValue
NewMacroValue returns a MacroValue with a given Expr and Scanner.
func (MacroValue) Scanner ¶ added in v0.73.0
func (m MacroValue) Scanner() parser.Scanner
Scanner returns a scanner of the source that was replaced by the macro.
func (MacroValue) SubExpr ¶ added in v0.73.0
func (m MacroValue) SubExpr() rel.Expr
SubExpr returns the Expr resulting from evaluating the macro.
type PackageExpr ¶
type PackageExpr struct {
	rel.ExprScanner
	// contains filtered or unexported fields
}
    PackageExpr represents a range of operators.
func (PackageExpr) String ¶
func (e PackageExpr) String() string
String returns a string representation of the expression.
type ParseContext ¶
type ParseContext struct {
	SourceDir string
}
    func (ParseContext) CompileExpr ¶
func (ParseContext) MustParseString ¶
MustParseString parses input string and returns the parsed Expr or panics.
func (ParseContext) ParseString ¶
ParseString parses input string and returns the parsed Expr or an error.
type StopError ¶ added in v0.238.0
type StopError struct {
	// contains filtered or unexported fields
}
    func (StopError) IsStopError ¶ added in v0.238.0
func (StopError) IsStopError()
type Token ¶
type Token rune
Token represents a lexical token.
const ( NULL Token = 0 ERROR Token = 255 + iota EOF NUMBER IDENT STRING XML AND AS ELSE EXCEPT FOR IF IN MAX MEAN MEDIAN MIN NEST OR ORDER UNNEST WHERE WITH WITHOUT COUNT SUM ARROW // -> ARROWST // ->* ATARROW // @> CSET // |} DARROW // => GEQ // >= DSLASH // // JOIN // <&> LEQ // <= NEQ // != OSET // {| PI // π SQRT // √ SUBMOD // -% )
Non-character tokens
func LexerInitState ¶
LexerInitState recognises the next input Token.
      
      Source Files
      ¶
    
- bindata.go
 - bundle.go
 - compile.go
 - compile_xstr.go
 - config.go
 - constants.go
 - eval.go
 - expr_import.go
 - expr_package.go
 - expr_set_compare.go
 - file_pos.go
 - import.go
 - lex.go
 - logging.go
 - parse.go
 - parse_macro.go
 - parse_string.go
 - parse_xml.go
 - parser.go
 - prettify.go
 - std.go
 - std_archive.go
 - std_bits.go
 - std_deprecated.go
 - std_encoding.go
 - std_encoding_csv.go
 - std_encoding_json.go
 - std_encoding_xlsx.go
 - std_encoding_xml.go
 - std_encoding_yaml.go
 - std_eval.go
 - std_fmt.go
 - std_func.go
 - std_net.go
 - std_os.go
 - std_os_nonwasm.go
 - std_re.go
 - std_reflect.go
 - std_rel.go
 - std_runtime.go
 - std_seq.go
 - std_seq_array_helper.go
 - std_seq_bytes_helper.go
 - std_str.go
 - std_tst.go
 - test_helpers.go
 - util.go