Remove "Written by Ben Pfaff <blp@gnu.org>" lines everywhere.
[pspp-builds.git] / src / language / command.h
index 2e34583c09377f3d65e24ea01f3c4f7b2e7e3d26..5e4671aec78ce8af4ebd54f3e758de9817623072 100644 (file)
@@ -1,6 +1,5 @@
 /* PSPP - computes sample statistics.
    Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc.
-   Written by Ben Pfaff <blp@gnu.org>.
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
@@ -27,14 +26,19 @@ enum cmd_result
   {
     /* Successful return values. */
     CMD_SUCCESS = 1,            /* Successfully parsed and executed. */
-    CMD_EOF,                    /* No commands left. */
-    CMD_QUIT,                   /* Requested exit. */
-    CMD_END_SUBLOOP,            /* End of INPUT PROGRAM or FILE TYPE. */
+    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,                /* Not executed at all. */
-    CMD_NOT_IMPLEMENTED,        /* Command not implemented. */
-    CMD_CASCADING_FAILURE       /* Serious error: don't continue. */
+    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);
@@ -49,14 +53,18 @@ enum cmd_state
     CMD_STATE_FILE_TYPE         /* Inside FILE TYPE. */
   };
 
-#if HAVE_READLINE
-char **pspp_attempted_completion_function (const char *, int start, int end);
-#endif
+struct dataset;
+struct lexer; 
+
+enum cmd_result cmd_parse (struct lexer *lexer, struct dataset *ds, enum cmd_state);
+
+struct command;
+const char *cmd_complete (const char *, const struct command **);
 
-enum cmd_result cmd_parse (enum cmd_state);
+struct dataset;
 
 /* Prototype all the command functions. */
-#define DEF_CMD(STATES, FLAGS, NAME, FUNCTION) int FUNCTION (void);
+#define DEF_CMD(STATES, FLAGS, NAME, FUNCTION) int FUNCTION (struct lexer *, struct dataset *);
 #define UNIMPL_CMD(NAME, DESCRIPTION)
 #include "command.def"
 #undef DEF_CMD