lang

package
v0.37.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2019 License: MIT Imports: 12 Imported by: 28

Documentation

Index

Constants

View Source
const (
	FluxCompilerType = "flux"
	ASTCompilerType  = "ast"
)

Variables

This section is empty.

Functions

func AddCompilerMappings

func AddCompilerMappings(mappings flux.CompilerMappings) error

AddCompilerMappings adds the Flux specific compiler mappings.

func WalkIR added in v0.26.0

func WalkIR(astPkg *ast.Package, f func(o *flux.Operation) error) error

Types

type ASTCompiler added in v0.18.0

type ASTCompiler struct {
	AST *ast.Package `json:"ast"`
	Now time.Time
}

ASTCompiler implements Compiler by producing a Spec from an AST.

func (ASTCompiler) Compile added in v0.18.0

func (c ASTCompiler) Compile(ctx context.Context) (flux.Program, error)

func (ASTCompiler) CompilerType added in v0.18.0

func (ASTCompiler) CompilerType() flux.CompilerType

func (*ASTCompiler) PrependFile added in v0.21.0

func (c *ASTCompiler) PrependFile(file *ast.File)

PrependFile prepends a file onto the compiler's list of package files.

type AstProgram added in v0.26.0

type AstProgram struct {
	*Program

	Ast *ast.Package
	Now time.Time
}

AstProgram wraps a Program with an AST that will be evaluated upon Start. As such, the PlanSpec is populated after Start and evaluation errors are returned by Start.

func Compile added in v0.26.0

func Compile(q string, now time.Time, opts ...CompileOption) (*AstProgram, error)

Compile evaluates a Flux script producing a flux.Program. now parameter must be non-zero, that is the default now time should be set before compiling.

func CompileAST added in v0.26.0

func CompileAST(astPkg *ast.Package, now time.Time, opts ...CompileOption) *AstProgram

CompileAST evaluates a Flux AST and produces a flux.Program. now parameter must be non-zero, that is the default now time should be set before compiling.

func (*AstProgram) Start added in v0.26.0

func (p *AstProgram) Start(ctx context.Context, alloc *memory.Allocator) (flux.Query, error)

type CompileOption added in v0.26.0

type CompileOption func(*compileOptions)

CompileOption represents an option for compilation.

func Verbose added in v0.26.0

func Verbose(v bool) CompileOption

func WithExtern added in v0.33.0

func WithExtern(extern *ast.File) CompileOption

func WithLogPlanOpts added in v0.26.0

func WithLogPlanOpts(lopts ...plan.LogicalOption) CompileOption

func WithPhysPlanOpts added in v0.26.0

func WithPhysPlanOpts(popts ...plan.PhysicalOption) CompileOption

type DependenciesAwareProgram added in v0.26.0

type DependenciesAwareProgram interface {
	SetExecutorDependencies(execute.Dependencies)
	SetLogger(logger *zap.Logger)
}

type FluxCompiler

type FluxCompiler struct {
	Now    time.Time
	Extern *ast.File `json:"extern"`
	Query  string    `json:"query"`
}

FluxCompiler compiles a Flux script into a spec.

func (FluxCompiler) Compile

func (c FluxCompiler) Compile(ctx context.Context) (flux.Program, error)

func (FluxCompiler) CompilerType

func (c FluxCompiler) CompilerType() flux.CompilerType

type Program added in v0.26.0

type Program struct {
	Dependencies execute.Dependencies
	Logger       *zap.Logger
	PlanSpec     *plan.Spec
	// contains filtered or unexported fields
}

Program implements the flux.Program interface. It will execute a compiled plan using an executor.

func CompileTableObject added in v0.26.0

func CompileTableObject(to *flux.TableObject, now time.Time, opts ...CompileOption) (*Program, error)

CompileTableObject evaluates a TableObject and produces a flux.Program. now parameter must be non-zero, that is the default now time should be set before compiling.

func (*Program) SetExecutorDependencies added in v0.26.0

func (p *Program) SetExecutorDependencies(deps execute.Dependencies)

func (*Program) SetLogger added in v0.26.0

func (p *Program) SetLogger(logger *zap.Logger)

func (*Program) Start added in v0.26.0

func (p *Program) Start(ctx context.Context, alloc *memory.Allocator) (flux.Query, error)

type TableObjectCompiler added in v0.26.0

type TableObjectCompiler struct {
	Tables *flux.TableObject
	Now    time.Time
}

TableObjectCompiler compiles a TableObject into an executable flux.Program. It is not added to CompilerMappings and it is not serializable, because it is impossible to use it outside of the context of an ongoing execution.

func (*TableObjectCompiler) Compile added in v0.26.0

func (c *TableObjectCompiler) Compile(ctx context.Context) (flux.Program, error)

func (*TableObjectCompiler) CompilerType added in v0.26.0

func (*TableObjectCompiler) CompilerType() flux.CompilerType

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL