X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fcommand.h;h=ecd2a752659d663366c3788fe7c9f5d105a36dfe;hb=851ed83935c98128cca5eeaf4ea39915fa456d16;hp=3cf5b997bdfd06b14a58cfb44a18ea74e7d62af8;hpb=5729150f2c4a00caf688e7e3b514b10b1987e211;p=pspp diff --git a/src/language/command.h b/src/language/command.h index 3cf5b997bd..ecd2a75265 100644 --- a/src/language/command.h +++ b/src/language/command.h @@ -1,21 +1,18 @@ -/* PSPP - computes sample statistics. - Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc. - Written by Ben Pfaff . +/* PSPP - a program for statistical analysis. + Copyright (C) 1997-9, 2000, 2006, 2010, 2013 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with this program. If not, see . */ #ifndef COMMAND_H #define COMMAND_H 1 @@ -30,12 +27,6 @@ enum cmd_result 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. */ @@ -48,19 +39,31 @@ bool cmd_result_is_failure (enum cmd_result); /* Command processing state. */ enum cmd_state { - CMD_STATE_INITIAL, /* No active file yet defined. */ - CMD_STATE_DATA, /* Active file has been defined. */ + 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. */ + CMD_STATE_FILE_TYPE, /* Inside FILE TYPE. */ + + /* Inside LOOP or DO IF... */ + CMD_STATE_NESTED_DATA, /* ...in CMD_STATE_DATA. */ + CMD_STATE_NESTED_INPUT_PROGRAM, /* ...in CMD_STATE_INPUT_PROGRAM. */ }; -enum cmd_result cmd_parse (enum cmd_state); +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 **); +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