---
name: "ScriptCommand"
section: "3"
platform: "linux"
package: "libccscript-dev"
version: "2.5.7-1"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/ScriptCommand"
---

# ScriptCommand(3)

This class holds the bound keyword set for a given Bayonne style script interpreter. Bayonne script keyword binding tables and compiler constants.

## NAME

ScriptCommand - This class holds the bound keyword set for a given Bayonne style script interpreter. Bayonne script keyword binding tables and compiler constants.

## SYNOPSIS

`#include <script.h>`

Inherits Script.

### Public Methods

virtual int **mapicmp** (const char \*s1, const char \*s2)\
 virtual int **mapnicmp** (const char \*s1, const char \*s2, size\_t n)\

### Protected Methods

Method **getHandler** (const char \*keyword)\
 *Get the method handler associated with a given keyword.* char \* **check** (char \*command, Line \*line, **ScriptImage** \*img)\
 *Check keyword syntax.* virtual unsigned **getTrapId** (const char \*trap)\
 *Get the trap id number associated with a trap name.* virtual unsigned long **getTrapDefault** (void)\
 *Get the mask bits for the default script.* virtual unsigned long **getTrapHandler** (Name \*scr)\
 *Get the mask bits for a trap 'handler'.* virtual unsigned long **getTrapMask** (unsigned id)\
 *Get a trap mask for a given identifer.* virtual unsigned long **getTrapModifier** (const char \*trapname)\
 *A helper method for the compiler.* virtual unsigned long **getTrapMask** (const char \*trapname)\
 *A helper method for the compiler used specifically for '^' trap subsection requests.* char \* **chkIgnore** (Line \*line, **ScriptImage** \*img)\
 *Default compiler syntax to accept any syntax.* char \* **chkModule** (Line \*line, **ScriptImage** \*img)\
 *Module based script checker.* char \* **chkUse** (Line \*line, **ScriptImage** \*img)\
 *Performs DSO load phase for USE modules.* char \* **chkHasModify** (Line \*line, **ScriptImage** \*img)\
 *A check used by 'inc' and 'dec'.* char \* **chkHasVars** (Line \*line, **ScriptImage** \*img)\
 *Script compiler syntax check for certain variable using statements such as 'clear'.* char \* **chkHasList** (Line \*line, **ScriptImage** \*img)\
 *Script compiler syntax check for assignment statements such as 'set', 'for', etc.* char \* **chkNoArgs** (Line \*line, **ScriptImage** \*img)\
 *Script compiler syntax check for commands that require no arguments to be present.* char \* **chkHasArgs** (Line \*line, **ScriptImage** \*img)\
 *Script compiler syntax check for commands that require one or more arguments to be present.* void **load** (Script::Define \*keywords)\
 *Load a set of keywords into the system keyword table.* int **trap** (const char \*name)\
 *Add a trap handler symbolic identity to the keyword table.* int **getCount** (void)\
 *Get count of active traps.* virtual char \* **check** (Check chk, Line \*line, **ScriptImage** \*img)\
 *Perform compile time check of a specified symbol.* **ScriptCommand** ()\
 *Load a keydata entry for compile-time constants and bind the default* **ScriptInterp** *base class methods.*

### Friends

class **ScriptImage**\
 class **ScriptInterp**\
 class **ScriptModule**\

## DETAILED DESCRIPTION

This class holds the bound keyword set for a given Bayonne style script interpreter. Bayonne script keyword binding tables and compiler constants.

Application specific dialects are created by deriving a application specific version of ScriptCommand which then binds application specific keywords and associated methods in an application derived **ScriptInterp** which are typecast to (scriptmethod\_t).

**Author:**  David Sugar \<dyfet@ostel.com\>

## CONSTRUCTOR & DESTRUCTOR DOCUMENTATION

### ScriptCommand::ScriptCommand ()` [protected]`

Load a keydata entry for compile-time constants and bind the default **ScriptInterp** base class methods.

This class is never used alone, so no public constructor is provided.

Parameters:

- *keydata*

  *entry for constants.*

## MEMBER FUNCTION DOCUMENTATION

### virtual char\* ScriptCommand::check (Check chk, Line \* line, ScriptImage \* img)` [inline, protected, virtual]`

*Perform compile time check of a specified symbol.*

**Returns:**  *syntax error message string.*

*Parameters:*

- *line*

  *pointer.*

### char\* ScriptCommand::check (char \* command, Line \* line, ScriptImage \* img)` [protected]`

*Check keyword syntax.*

**Returns:**  *syntax error string or NULL.*

*Parameters:*

- *name*

  *of keyword to check.*

- *hook*

  *to compiler source.*

### char\* ScriptCommand::chkHasArgs (Line \* line, ScriptImage \* img)` [protected]`

*Script compiler syntax check for commands that require one or more arguments to be present.*

**Returns:**  *syntax error message string or NULL.*

*Parameters:*

- *line*

  *statement.*

### char\* ScriptCommand::chkHasList (Line \* line, ScriptImage \* img)` [protected]`

*Script compiler syntax check for assignment statements such as 'set', 'for', etc.*

**Returns:**  *syntax error message string or NULL.*

*Parameters:*

- *line*

  *statement.*

### char\* ScriptCommand::chkHasModify (Line \* line, ScriptImage \* img)` [protected]`

*A check used by 'inc' and 'dec'.*

**Returns:**  *synxtax error message string or NULL.*

*Parameters:*

- *line*

  *statement.*

### char\* ScriptCommand::chkHasVars (Line \* line, ScriptImage \* img)` [protected]`

*Script compiler syntax check for certain variable using statements such as 'clear'.*

*Assumes list of valid variable arguments.*

### char\* ScriptCommand::chkNoArgs (Line \* line, ScriptImage \* img)` [protected]`

*Script compiler syntax check for commands that require no arguments to be present.*

**Returns:**  *syntax error message string or NULL.*

*Parameters:*

- *line*

  *statement.*

### int ScriptCommand::getCount (void)` [inline, protected]`

*Get count of active traps.*

**Returns:**  *count of active trap identifiers.*

### Method ScriptCommand::getHandler (const char \* keyword)` [protected]`

*Get the method handler associated with a given keyword.*

*This is used by* **ScriptImage** *when compiling.*

*Parameters:*

- *keyword*

  *to search for.*

**Returns:**  *method handler to execute for this keyword.*

### virtual unsigned long ScriptCommand::getTrapDefault (void)` [inline, protected, virtual]`

*Get the mask bits for the default script.*

**Returns:**  *trap mask to use.*

### virtual unsigned long ScriptCommand::getTrapHandler (Name \* scr)` [inline, protected, virtual]`

*Get the mask bits for a trap 'handler'.*

**Returns:**  *trap mask to use.*

### virtual unsigned ScriptCommand::getTrapId (const char \* trap)` [protected, virtual]`

*Get the trap id number associated with a trap name.*

**Returns:**  *trap id number, 0 (exit) if invalid.*

*Parameters:*

- *name*

  *of trap identifier.*

### virtual unsigned long ScriptCommand::getTrapMask (const char \* trapname)` [protected, virtual]`

*A helper method for the compiler used specifically for '^' trap subsection requests.*

*These will occasionally carry different attribute settings.*

*Parameters:*

- *name*

  *of trap identifier.*

**Returns:**  *bit shifted mask or 0 if invalid.*

### virtual unsigned long ScriptCommand::getTrapMask (unsigned id)` [protected, virtual]`

*Get a trap mask for a given identifer.*

*This is a virtual since some derived handlers may manipulate mask bits.*

**Returns:**  *signal mask.*

*Parameters:*

- *identifier.*

  ### virtual unsigned long ScriptCommand::getTrapModifier (const char \* trapname)` [inline, protected, virtual]`

*A helper method for the compiler.*

*Converts a named trap into it's bit shifted mask. By making it a virtual, derived dialects can add 'aliases' to default trap names.*

*Parameters:*

- *name*

  *of trap identifier.*

**Returns:**  *bit shifted mask or 0 if invalid.*

### void ScriptCommand::load (Script::Define \* keywords)` [protected]`

*Load a set of keywords into the system keyword table.*

*This provides a convenient method of initializing and adding to the keyword indexes.*

*Parameters:*

- *keyword*

  *entries to load.*

### int ScriptCommand::trap (const char \* name)` [protected]`

*Add a trap handler symbolic identity to the keyword table.*

*These are used to handle signal mask coercion and event branch points in the compiler.*

*Parameters:*

- *requested*

  *trap name.*

**Returns:**  *assigned id number for the trap.*

## AUTHOR

*Generated automatically by Doxygen for ccScript from the source code.*
