Documentation
¶
Index ¶
- func Format() error
- func FormatFiles(dir string, ext string) error
- func RunPackedBinary()
- type CLICustomHandler
- type CLIDebugInterpreter
- func (i *CLIDebugInterpreter) CanHandle(s string) bool
- func (i *CLIDebugInterpreter) Handle(ot OutputTerminal, line string)
- func (i *CLIDebugInterpreter) Interpret() error
- func (i *CLIDebugInterpreter) LoadInitialFile(tid uint64) error
- func (i *CLIDebugInterpreter) ParseArgs() bool
- func (i *CLIDebugInterpreter) StopDebugServer()
- type CLIInputHandler
- type CLIInterpreter
- func (i *CLIInterpreter) CreateRuntimeProvider(name string) error
- func (i *CLIInterpreter) CreateTerm() error
- func (i *CLIInterpreter) HandleInput(ot OutputTerminal, line string, tid uint64)
- func (i *CLIInterpreter) Interpret(interactive bool) error
- func (i *CLIInterpreter) LoadInitialFile(tid uint64) error
- func (i *CLIInterpreter) LoadStdlibPlugins(interactive bool) error
- func (i *CLIInterpreter) ParseArgs() bool
- type CLIPacker
- type OutputTerminal
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatFiles ¶ added in v1.4.0
FormatFiles formats all ECAL files in a given directory with a given ending.
func RunPackedBinary ¶ added in v1.0.0
func RunPackedBinary()
RunPackedBinary runs ECAL code is it has been attached to the currently running binary. Exits if attached ECAL code has been executed.
Types ¶
type CLICustomHandler ¶ added in v1.0.0
type CLICustomHandler interface {
CLIInputHandler
/*
LoadInitialFile clears the global scope and reloads the initial file.
*/
LoadInitialFile(tid uint64) error
}
CLICustomHandler is a handler for custom operations.
type CLIDebugInterpreter ¶ added in v1.0.0
type CLIDebugInterpreter struct {
*CLIInterpreter
DebugServerAddr *string // Debug server address
RunDebugServer *bool // Run a debug server
EchoDebugServer *bool // Echo all input and output of the debug server
Interactive *bool // Flag if the interpreter should open a console in the current tty.
BreakOnStart *bool // Flag if the debugger should stop the execution on start
BreakOnError *bool // Flag if the debugger should stop when encountering an error
LogOut io.Writer // Log output
// contains filtered or unexported fields
}
CLIDebugInterpreter is a commandline interpreter with debug capabilities for ECAL.
func NewCLIDebugInterpreter ¶ added in v1.0.0
func NewCLIDebugInterpreter(i *CLIInterpreter) *CLIDebugInterpreter
NewCLIDebugInterpreter wraps an existing CLIInterpreter object and adds capabilities.
func (*CLIDebugInterpreter) CanHandle ¶ added in v1.0.0
func (i *CLIDebugInterpreter) CanHandle(s string) bool
CanHandle checks if a given string can be handled by this handler.
func (*CLIDebugInterpreter) Handle ¶ added in v1.0.0
func (i *CLIDebugInterpreter) Handle(ot OutputTerminal, line string)
Handle handles a given input string.
func (*CLIDebugInterpreter) Interpret ¶ added in v1.0.0
func (i *CLIDebugInterpreter) Interpret() error
Interpret starts the ECAL code interpreter with debug capabilities.
func (*CLIDebugInterpreter) LoadInitialFile ¶ added in v1.0.0
func (i *CLIDebugInterpreter) LoadInitialFile(tid uint64) error
LoadInitialFile clears the global scope and reloads the initial file.
func (*CLIDebugInterpreter) ParseArgs ¶ added in v1.0.0
func (i *CLIDebugInterpreter) ParseArgs() bool
ParseArgs parses the command line arguments.
func (*CLIDebugInterpreter) StopDebugServer ¶ added in v1.3.3
func (i *CLIDebugInterpreter) StopDebugServer()
StopDebugServer stops the debug server if it was started.
type CLIInputHandler ¶ added in v1.0.0
type CLIInputHandler interface {
/*
CanHandle checks if a given string can be handled by this handler.
*/
CanHandle(s string) bool
/*
Handle handles a given input string.
*/
Handle(ot OutputTerminal, input string)
}
CLIInputHandler is a handler object for CLI input.
type CLIInterpreter ¶ added in v1.0.0
type CLIInterpreter struct {
GlobalVS parser.Scope // Global variable scope
RuntimeProvider *interpreter.ECALRuntimeProvider // Runtime provider of the interpreter
CustomHandler CLICustomHandler
CustomWelcomeMessage string
CustomHelpString string
CustomRules []*engine.Rule
EntryFile string // Entry file for the program
LoadPlugins bool // Flag if stdlib plugins should be loaded
Dir *string // Root dir for interpreter
LogFile *string // Logfile (blank for stdout)
LogLevel *string // Log level string (Debug, Info, Error)
Term termutil.ConsoleLineTerminal
LogOut io.Writer
}
CLIInterpreter is a commandline interpreter for ECAL.
func NewCLIInterpreter ¶ added in v1.0.0
func NewCLIInterpreter() *CLIInterpreter
NewCLIInterpreter creates a new commandline interpreter for ECAL.
func (*CLIInterpreter) CreateRuntimeProvider ¶ added in v1.0.0
func (i *CLIInterpreter) CreateRuntimeProvider(name string) error
CreateRuntimeProvider creates the runtime provider of this interpreter. This function expects Dir, LogFile and LogLevel to be set.
func (*CLIInterpreter) CreateTerm ¶ added in v1.0.3
func (i *CLIInterpreter) CreateTerm() error
CreateTerm creates a new console terminal for stdout.
func (*CLIInterpreter) HandleInput ¶ added in v1.0.0
func (i *CLIInterpreter) HandleInput(ot OutputTerminal, line string, tid uint64)
HandleInput handles input to this interpreter. It parses a given input line and outputs on the given output terminal. Requires a thread ID of the executing thread - use the RuntimeProvider to generate a unique one.
func (*CLIInterpreter) Interpret ¶ added in v1.0.0
func (i *CLIInterpreter) Interpret(interactive bool) error
Interpret starts the ECAL code interpreter. Starts an interactive console in the current tty if the interactive flag is set.
func (*CLIInterpreter) LoadInitialFile ¶ added in v1.0.0
func (i *CLIInterpreter) LoadInitialFile(tid uint64) error
LoadInitialFile clears the global scope and reloads the initial file.
func (*CLIInterpreter) LoadStdlibPlugins ¶ added in v1.1.0
func (i *CLIInterpreter) LoadStdlibPlugins(interactive bool) error
LoadStdlibPlugins load plugins from .ecal.json.
func (*CLIInterpreter) ParseArgs ¶ added in v1.0.0
func (i *CLIInterpreter) ParseArgs() bool
ParseArgs parses the command line arguments. Call this after adding custon flags. Returns true if the program should exit.
type CLIPacker ¶ added in v1.0.0
type CLIPacker struct {
EntryFile string // Entry file for the program
Dir *string // Root dir for interpreter (all files will be collected)
SourceBinary *string // Binary which is used by the packer
TargetBinary *string // Binary which will be build by the packer
LogOut io.Writer
}
CLIPacker is a commandline packing tool for ECAL. This tool can build a self contained executable.
func NewCLIPacker ¶ added in v1.0.0
func NewCLIPacker() *CLIPacker
NewCLIPacker creates a new commandline packer.
type OutputTerminal ¶ added in v1.0.0
type OutputTerminal interface {
/*
WriteString write a string on this terminal.
*/
WriteString(s string)
}
OutputTerminal is a generic output terminal which can write strings.