---
name: "ScriptCommand"
section: "3cc"
platform: "linux"
package: "libccscript-dev"
version: "2.5.9-1+b1"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/ScriptCommand/3cc"
---

# ScriptCommand(3cc)

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>`

### Public Member Functions

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.*  virtual int **mapicmp** (const char \*s1, const char \*s2)\
 virtual int **mapnicmp** (const char \*s1, const char \*s2, size\_t n)\

### 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 ()

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, 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)

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)

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)

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)

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

**Returns:**

synxtax error message string or NULL.

**Parameters:**

*line* statement.

### char\* ScriptCommand::chkHasVars (Line \* line, ScriptImage \* img)

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)

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]`

Get count of active traps.

**Returns:**

count of active trap identifiers.

### Method ScriptCommand::getHandler (const char \* keyword)

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, virtual]`

Get the mask bits for the default script.

**Returns:**

trap mask to use.

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

Get the mask bits for a trap 'handler'.

**Returns:**

trap mask to use.

### virtual unsigned ScriptCommand::getTrapId (const char \* trap)` [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)` [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)` [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, 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)

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)

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.
