- CMD_SUCCESS = 0x1000, /* Successfully parsed and executed. */
- CMD_EOF, /* Requested exit. */
-
- /* Various kinds of failures, in increasing order of severity. */
- CMD_TRAILING_GARBAGE, /* Followed by garbage. */
- CMD_PART_SUCCESS, /* Fully executed up to error. */
- CMD_PART_SUCCESS_MAYBE, /* May have been partially executed. */
- CMD_FAILURE, /* Not executed at all. */
- CMD_CASCADING_FAILURE /* Serious error: don't continue. */
+ CMD_SUCCESS = 1, /* Successfully parsed and executed. */
+ CMD_EOF = 2, /* End of input. */
+ CMD_FINISH = 3, /* FINISH was executed. */
+
+ /* Range of successful return values available for use
+ by agreement between a command and the caller of
+ cmd_parse(). */
+ CMD_PRIVATE_FIRST = 4,
+ CMD_PRIVATE_LAST = 127,
+
+ /* Various kinds of failures. */
+ CMD_FAILURE = -1, /* Not executed at all. */
+ CMD_NOT_IMPLEMENTED = -2, /* Command not implemented. */
+ CMD_CASCADING_FAILURE = -3 /* Serious error: don't continue. */
+ };
+
+bool cmd_result_is_success (enum cmd_result);
+bool cmd_result_is_failure (enum cmd_result);
+
+/* Command processing state. */
+enum cmd_state
+ {
+ CMD_STATE_INITIAL, /* No active dataset yet defined. */
+ CMD_STATE_DATA, /* Active dataset has been defined. */
+ CMD_STATE_INPUT_PROGRAM, /* Inside INPUT PROGRAM. */
+ CMD_STATE_FILE_TYPE /* Inside FILE TYPE. */