man ScriptInterp (Fonctions bibliothèques) - System script interpreter core engine class. Extensible Bayonne Scripting Engine.
NAME
ScriptInterp - System script interpreter core engine class. Extensible Bayonne Scripting Engine.
SYNOPSIS
#include <script.h>
Inherits ScriptSymbol.
Public Methods
long getIntValue (const char *text, unsigned prec)
int getExpression (long *list, int max, unsigned prec)
bool setData (const char *scrname)
Set data read pointer to a known data source script.
char getPackToken (void)
Get pack token.
void clrTransactions (void)
Clear transaction processing group.
Symbol * getVariable (size_t size=0)
Fetch a variable (symbol) that will be used to store data.
void rewindTemp (void)
Rewind temporary buffer for prescan results.
void setTemp (const char *value)
Set prescan value into temporary buffer.
virtual Symbol * getIndirect (char *sym)
May be used to override processing of indirect content requests.
Symbol * getLocal (const char *name, size_t size=0)
Search for symbols either thru the virtual global space or thru local space if a local space has been allocated on the heap.
bool attach (const char *scrname)
Attempt to attach script engine to active session and specify a starting script.
void detach (void)
Detach the current script image.
bool redirect (const char *scrname)
Script redirection support.
bool step (const char *trapname=NULL)
Execute the next pending script statement.
bool isActive (void)
Test if script interpreter is currently active.
char * getOption (const char *def=NULL)
Fetch next logical option but do not evaluate.
char * getKeyword (const char *keyword)
Fetch an embedded attribute keyword argument.
int initKeywords (int size)
Initialize symbols from the keyword list.
char * getValue (const char *def=NULL)
Fetch and evaluate next logical option.
char * getString (void)
Fetch and concatenate a temporary string expression until either a comma or closing parenthesis.
char * getTempBuffer (void)
Fetch a temp workspace buffer.
char * getContent (char *sym)
Evaluate the content of an option retrieved with getOption.
Line * getScript (void)
Return the current script line object so it may be debugged.
bool hasEvents (void)
Return if the script has generic event handlers...
Line * getPrescan (void)
Return if the current line requires prescanning.
const char * getMember (void)
Return the member id of a script command.
Name * getObject (void)
Return the master script object for resource context.
ScriptImage * getImage (void)
Return the script image holding this application's context.
void autoloop (bool enable)
Enable or disable autolooping of statements.
int mapicmp (const char *s1, const char *s2)
int mapnicmp (const char *s1, const char *s2, size_t n)
unsigned getDecimal (void)
Get decimal.
Static Public Methods
long getRealValue (double val, unsigned prec)
double getDouble (long value, unsigned prec)
long getInteger (long value, unsigned prec)
long getTens (unsigned prec)
Protected Methods
ScriptInterp (ScriptCommand *cmd, size_t symsize, size_t pgsize=1024)
Derive a new instance of the system script interpreter.
~ScriptInterp ()
void getTrigger (bool use)
Get a local and/or global trigger.
bool getOnce (void)
Fetch unique 'once' flag and set.
void Notify (unsigned long mask)
Notify signal mask for 'on' handlers.
void Notify (const char *str)
Notify signal by symbolic name.
unsigned long getMask (void)
Fetch the current interpreter mask bits directly.
void setLine (Line *line)
Set the line handler to a new statement.
unsigned long getScriptMask (const char *id)
Fetch the script mask identifer.
ScriptCommand * getCommand (void)
Fetch the active command interpreter subsystem.
bool conditional (void)
Used to process 'conditional' arguments such as for IF/DO/LOOP statements.
bool scrExit (void)
Some systems can derive alternative 'exit' commands which can call this routine after performing other operations.
bool scrGoto (void)
This is often called to process branching requests.
bool scrIf (void)
override if support.
bool ifGoto (void)
If version of goto.
bool scrData (void)
Method used to encode 'data' lines.
virtual unsigned getId (void)
Used to return channel identifiers in some systems.
virtual bool getGlobalTrap (unsigned id)
Used to fetch a global trap execution context branch.
void advance (void)
Advance program to the next script statement.
void error (const char *error)
Set error variable and advance to either the error handler or next script statement.
void trap (unsigned id)
Set the execution interpreter to a trap identifier.
void trap (const char *trapname)
Select trap by symbolic name and execute if found, else advance to next script step (unless exit trap).
bool push (void)
Attempt to push a value onto the stack.
bool pull (void)
Attempt to recall a previous stack level.
bool signal (const char *trapname)
Signals are used during 'delayed' execution steps when a signal event has occured aynchronously with the execution of a script controlled state event handler.
bool event (const char *evtname)
Events reference to named @event handlers which have been attached to a script.
bool signal (unsigned trapid)
Signals can be referenced by numeric id as well as by symbolic name.
virtual bool execute (Method method)
Runtime execution of script handler.
virtual void stop (unsigned long mask)
Stop request handler.
virtual void exit (void)=0
Exit request handler.
virtual Name * getScriptImage (const char *label)
Runtime branch point for label selection.
Name * getScriptCopy (const char *src)
Fetch duplicative script image as needed.
virtual void sleepScheduler (timeout_t timeout)
Patch point for sleep delay notification.
virtual void stepScheduler (const char *trapname)
Step scheduler callback to force step execution.
virtual void setExclusive (bool enable)
Set exclusive sync locking for interpreter.
Protected Attributes
unsigned char lckcount
Friends
class ScriptImage
class Script::Session
class Script::Locks
class ScriptModule
class ScriptCommand
void addFunction (const char *name, unsigned count, Function i)
void addConditional (const char *name, Cond test)
void addAttribute (const char *name, Meta meta)
DETAILED DESCRIPTION
System script interpreter core engine class. Extensible Bayonne Scripting Engine.
This class is further derived to impliment application specific language dialects.
Author: David Sugar <dyfet@ostel.com>
CONSTRUCTOR & DESTRUCTOR DOCUMENTATION
ScriptInterp::ScriptInterp (ScriptCommand * cmd, size_t symsize, size_t pgsize = 1024) [protected]
Derive a new instance of the system script interpreter.
Parameters:
- symsize
- for default symbol sizing.
- pgsize
- for memory fragmentation.
MEMBER FUNCTION DOCUMENTATION
bool ScriptInterp::attach (const char * scrname)
Attempt to attach script engine to active session and specify a starting script.
Returns: false if failed to attach.
Parameters:
- name
- of script entry.
void ScriptInterp::autoloop (bool enable) [inline]
Enable or disable autolooping of statements.
Parameters:
- true
- to enable autoloop (default).
bool ScriptInterp::conditional (void) [protected]
Used to process 'conditional' arguments such as for IF/DO/LOOP statements.
The index is kept at the next logical argument so a goto can be performed if needed.
Returns: true if conditional test is true.
void ScriptInterp::detach (void)
Detach the current script image.
If it is the last ref count and the exit flag is set, then delete it.
void ScriptInterp::error (const char * error) [protected]
Set error variable and advance to either the error handler or next script statement.
Parameters:
- error
- message.
bool ScriptInterp::event (const char * evtname) [protected]
Events reference to named @event handlers which have been attached to a script.
This allows low level applications to invoke an event handler much the way a signal handler occurs.
Returns: true if event handler exists.
Parameters:
- name
- of event handler.
virtual bool ScriptInterp::execute (Method method) [inline, protected, virtual]
Runtime execution of script handler.
This can be called in the current or derived class to invoke extensible methods.
Returns: true if immediately ready for next step.
Parameters:
- derived
- method to call.
virtual void ScriptInterp::exit (void) [protected, pure virtual]
Exit request handler.
This is called when no script line exists. No default behavior is known.
ScriptCommand* ScriptInterp::getCommand (void) [inline, protected]
Fetch the active command interpreter subsystem.
Returns: script interpreter.
char* ScriptInterp::getContent (char * sym)
Evaluate the content of an option retrieved with getOption.
Returns: value of evaluation.
Parameters:
- option
- string.
unsigned ScriptInterp::getDecimal (void) [inline]
Get decimal.
Returns: decimal value.
virtual bool ScriptInterp::getGlobalTrap (unsigned id) [inline, protected, virtual]
Used to fetch a global trap execution context branch.
Returns: true if external global trap handler found.
Parameters:
- trap
- identifier.
virtual unsigned ScriptInterp::getId (void) [inline, protected, virtual]
Used to return channel identifiers in some systems.
Returns: channel id or 0 for none.
ScriptImage* ScriptInterp::getImage (void) [inline]
Return the script image holding this application's context.
Returns: script image.
virtual Symbol* ScriptInterp::getIndirect (char * sym) [inline, virtual]
May be used to override processing of indirect content requests.
This is used in the Bayonne IVR to fetch content constants based on language and country settings.
Returns: symbol for indirect content.
Parameters:
- indirect
- fetch request.
char* ScriptInterp::getKeyword (const char * keyword)
Fetch an embedded attribute keyword argument.
This allows embedded tag=value keywords to be extracted.
Returns: option or NULL if not found.
Parameters:
- keyword
- to find.
Symbol* ScriptInterp::getLocal (const char * name, size_t size = 0)
Search for symbols either thru the virtual global space or thru local space if a local space has been allocated on the heap.
Returns: symbol found.
Parameters:
- script
- symbol to look for or create.
- size
- of symbol to allocate.
unsigned long ScriptInterp::getMask (void) [protected]
Fetch the current interpreter mask bits directly.
Returns: interpreter mask.
const char* ScriptInterp::getMember (void)
Return the member id of a script command.
Returns: member id or NULL if none.
Name* ScriptInterp::getObject (void) [inline]
Return the master script object for resource context.
Returns: script object being executed.
bool ScriptInterp::getOnce (void) [protected]
Fetch unique 'once' flag and set.
Returns: true if once.
char* ScriptInterp::getOption (const char * def = NULL)
Fetch next logical option but do not evaluate.
The index is advanced.
Returns: option or NULL if end of list.
Parameters:
- optional
- default.
Line* ScriptInterp::getPrescan (void)
Return if the current line requires prescanning.
Returns: line object if prescanned line else NULL.
Line* ScriptInterp::getScript (void) [inline]
Return the current script line object so it may be debugged.
Returns: script image record being executed.
Name* ScriptInterp::getScriptCopy (const char * src) [protected]
Fetch duplicative script image as needed.
Returns: script object.
Parameters:
- label
- to dup.
virtual Name* ScriptInterp::getScriptImage (const char * label) [protected, virtual]
Runtime branch point for label selection.
Returns: script found.
Parameters:
- label
- to locate.
- script
- line associated.
unsigned long ScriptInterp::getScriptMask (const char * id) [inline, protected]
Fetch the script mask identifer.
Returns: script mask.
char* ScriptInterp::getString (void)
Fetch and concatenate a temporary string expression until either a comma or closing parenthesis.
Returns: pointer to temp string buffer.
char* ScriptInterp::getTempBuffer (void)
Fetch a temp workspace buffer.
Returns: workspace pointer.
void ScriptInterp::getTrigger (bool use) [protected]
Get a local and/or global trigger.
Parameters:
- use
- or clear.
char* ScriptInterp::getValue (const char * def = NULL)
Fetch and evaluate next logical option.
If a symbol ref. then the symbol is also expressed. The index is advanced.
Returns: option value or NULL if end of list.
Parameters:
- optional
- default value.
Symbol* ScriptInterp::getVariable (size_t size = 0)
Fetch a variable (symbol) that will be used to store data.
This advances the index.
Returns: symbol found if any.
Parameters:
- optional
- size to allocate if new symbol.
bool ScriptInterp::hasEvents (void) [inline]
Return if the script has generic event handlers...
Returns: true if generic handlers.
bool ScriptInterp::isActive (void) [inline]
Test if script interpreter is currently active.
Returns: true if active.
void ScriptInterp::Notify (const char * str) [inline, protected]
Notify signal by symbolic name.
Parameters:
- mask
- name.
void ScriptInterp::Notify (unsigned long mask) [inline, protected]
Notify signal mask for 'on' handlers.
Parameters:
- mask
- value.
bool ScriptInterp::pull (void) [protected]
Attempt to recall a previous stack level.
Returns: false if stack underflow.
bool ScriptInterp::push (void) [protected]
Attempt to push a value onto the stack.
Returns: false if stack overflow.
bool ScriptInterp::redirect (const char * scrname)
Script redirection support.
Returns: false if redirect failed.
Parameters:
- name
- of script entry.
bool ScriptInterp::setData (const char * scrname)
Set data read pointer to a known data source script.
Parameters:
- name
- of script.
Returns: true on success.
virtual void ScriptInterp::setExclusive (bool enable) [inline, protected, virtual]
Set exclusive sync locking for interpreter.
Parameters:
- turn
- exclusive on or off.
Reimplemented from ScriptSymbol.
void ScriptInterp::setLine (Line * line) [protected]
Set the line handler to a new statement.
Parameters:
- line
- value.
void ScriptInterp::setTemp (const char * value)
Set prescan value into temporary buffer.
Parameters:
- value
- to set into temp.
bool ScriptInterp::signal (unsigned trapid) [protected]
Signals can be referenced by numeric id as well as by symbolic name.
Returns: true if signal handler is not blocked.
Parameters:
- trap
- number of handler.
bool ScriptInterp::signal (const char * trapname) [protected]
Signals are used during 'delayed' execution steps when a signal event has occured aynchronously with the execution of a script controlled state event handler.
This mechanism can be used in place of calling implicit 'Step' traps.
Returns: true if signal handler is not blocked.
Parameters:
- name
- of signal identifier.
virtual void ScriptInterp::sleepScheduler (timeout_t timeout) [inline, protected, virtual]
Patch point for sleep delay notification.
Parameters:
- sleep
- timeout expected.
bool ScriptInterp::step (const char * trapname = NULL)
Execute the next pending script statement.
If no statement is selected, then we execute the exit handler instead. We can also force feed a trap identifier.
Returns: true if advanced to next script statement already.
Parameters:
- optional
- trap branch point (also checks mask).
virtual void ScriptInterp::stepScheduler (const char * trapname) [inline, protected, virtual]
Step scheduler callback to force step execution.
Parameters:
- trap
- name to use.
virtual void ScriptInterp::stop (unsigned long mask) [inline, protected, virtual]
Stop request handler.
Used for handling external trap requests during a 'Signal'. This is needed in some state engines when the current state is being abandoned because of a signaled trap.
Parameters:
- signal
- mask forcing stop.
void ScriptInterp::trap (const char * trapname) [protected]
Select trap by symbolic name and execute if found, else advance to next script step (unless exit trap).
Parameters:
- name
- of trap to select.
void ScriptInterp::trap (unsigned id) [protected]
Set the execution interpreter to a trap identifier.
If no trap id exists, then advance to next script statement (unless exit trap).
Parameters:
- id
- of trap to select numerically.
AUTHOR
Generated automatically by Doxygen for ccScript from the source code.