Documentation
¶
Index ¶
- Constants
- func AddCompilerMappings(mappings flux.CompilerMappings) error
- func HaveExecutionDependencies(ctx context.Context) bool
- func WalkIR(ctx context.Context, astPkg *ast.Package, f func(o *flux.Operation) error) error
- type ASTCompiler
- type AstProgram
- type CompileOption
- type ExecutionDependencies
- type FluxCompiler
- type LoggingProgram
- type Program
- type TableObjectCompiler
Constants ¶
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.
Types ¶
type ASTCompiler ¶
ASTCompiler implements Compiler by producing a Spec from an AST.
func (ASTCompiler) CompilerType ¶
func (ASTCompiler) CompilerType() flux.CompilerType
func (*ASTCompiler) PrependFile ¶
func (c *ASTCompiler) PrependFile(file *ast.File)
PrependFile prepends a file onto the compiler's list of package files.
type AstProgram ¶
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 ¶
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 ¶
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.
type CompileOption ¶
type CompileOption func(*compileOptions)
CompileOption represents an option for compilation.
func Verbose ¶
func Verbose(v bool) CompileOption
func WithExtern ¶
func WithExtern(extern *ast.File) CompileOption
func WithLogPlanOpts ¶
func WithLogPlanOpts(lopts ...plan.LogicalOption) CompileOption
func WithPhysPlanOpts ¶
func WithPhysPlanOpts(popts ...plan.PhysicalOption) CompileOption
type ExecutionDependencies ¶
ExecutionDependencies represents the dependencies that a function call executed by the Interpreter needs in order to trigger the execution of a flux.Program
func GetExecutionDependencies ¶
func GetExecutionDependencies(ctx context.Context) ExecutionDependencies
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) CompilerType ¶
func (c FluxCompiler) CompilerType() flux.CompilerType
type LoggingProgram ¶
type Program ¶
type Program struct {
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 ¶
func CompileTableObject(ctx context.Context, 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.
type TableObjectCompiler ¶
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) CompilerType ¶
func (*TableObjectCompiler) CompilerType() flux.CompilerType