X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Flanguage%2Fcommand.h;h=32cb3c2ed06c3172cbac76c33f0e4003d37f8afe;hb=fbbeb6d9bfd9397e926a30c46a4c501ec161f6eb;hp=0c4a5eac5a0473ac167dc634f09d66f4cceea30e;hpb=8045778f61a3a4663d3b40361d2659b4d73d7a63;p=pspp-builds.git diff --git a/src/language/command.h b/src/language/command.h index 0c4a5eac..32cb3c2e 100644 --- a/src/language/command.h +++ b/src/language/command.h @@ -1,6 +1,5 @@ /* PSPP - computes sample statistics. Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc. - Written by Ben Pfaff . 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. */ + 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,21 @@ 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_in_state (struct lexer *lexer, struct dataset *ds, + enum cmd_state); + +enum cmd_result cmd_parse (struct lexer *lexer, struct dataset *ds); + +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