# Prompt rules table processing

Prompt rules table processing occurs when an application passes a string and a prompt table handle to vceBuildPromptList. Prompt table commands are processed line by line. Each command receives an input string passed to it by the previous command. The initial input string is passed in by the application. The initial line is determined by the method parameter passed to vceBuildPromptList.

Modify control flow with the GOTO, CALL, EXIT, QUIT, and ERROR keywords. The GOTO keyword specifies a jump to a specified label. Command processing then continues line by line. The CALL keyword also specifies a jump to a specified label. A CALL jump results in the following actions:

1. Saves the current state: input string, current line.

2. Jumps to the label.

3. Processes commands until an EXIT signifying a return to this saved state is encountered.

4. Restores the saved state of the input string and current line.

5. Continues processing at the following line.

Use the EXIT keyword to return to the previously saved state that consists of the saved input string and command line. The EXIT keyword can be optionally preceded by the keyword ELSE when used with the FIND and TEST commands.

Use the QUIT keyword only with the OUTPUT command. It terminates processing of the prompt rules table and returns SUCCESS to the application.

Use the ERROR keyword only with the FIND and TEST commands. It terminates processing of the prompt rules table and returns VCE_PROMPT_BUILD_ERROR to the application.

### String operations

A substring of the input string can be compared to a string or an integer with the TEST command. It can be translated to a message or label with the CONVERT command. The input string can be parsed with the FIND command. The FIND command is the only command that affects the input string itself by passing a substring to the next command. The other commands pass an unmodified string . Once a string is shortened by the FIND command, it cannot be restored unless an EXIT is used to return from a CALL jump.

### Processing termination

Command processing terminates when there are no commands left to process. In this case, SUCCESS is returned to the application. Command processing also terminates when either a QUIT or an ERROR is encountered.