# HG changeset patch # User jwe # Date 772989789 0 # Node ID 680426c10c5e2f2da3b1b7d3ec161df5e670606c # Parent 376ac108f611c5f180997f151516cac8773905d1 [project @ 1994-06-30 15:23:09 by jwe] diff -r 376ac108f611 -r 680426c10c5e src/parse.y --- a/src/parse.y Thu Jun 30 14:40:42 1994 +0000 +++ b/src/parse.y Thu Jun 30 15:23:09 1994 +0000 @@ -151,12 +151,10 @@ tree_colon_expression *tree_colon_expression_type; tree_argument_list *tree_argument_list_type; tree_parameter_list *tree_parameter_list_type; - tree_word_list *tree_word_list_type; tree_command *tree_command_type; tree_if_command *tree_if_command_type; tree_global_command *tree_global_command_type; tree_command_list *tree_command_list_type; - tree_word_list_command *tree_word_list_command_type; tree_plot_command *tree_plot_command_type; tree_subplot_list *tree_subplot_list_type; tree_plot_limits *tree_plot_limits_type; @@ -193,16 +191,14 @@ %type matrix %type identifier %type func_def func_def1 func_def2 func_def3 -%type variable +%type variable word_list_cmd %type colon_expr -%type arg_list arg_list1 +%type arg_list arg_list1 word_list word_list1 %type param_list param_list1 func_def1a -%type word_list word_list1 %type statement %type elseif %type global_decl global_decl1 %type simple_list simple_list1 list list1 opt_list -%type word_list_cmd %type plot_command %type plot_command1 plot_command2 plot_options %type ranges @@ -855,7 +851,10 @@ ; word_list_cmd : identifier word_list - { $$ = new tree_word_list_command ($1, $2); } + { + $$ = new tree_index_expression + ($1, $2, $1->line (), $1->column ()); + } ; word_list : word_list1 @@ -863,9 +862,15 @@ ; word_list1 : TEXT - { $$ = new tree_word_list ($1->string ()); } + { + tree_constant *tmp = new tree_constant ($1->string ()); + $$ = new tree_argument_list (tmp); + } | word_list1 TEXT - { $$ = $1->chain ($2->string ()); } + { + tree_constant *tmp = new tree_constant ($2->string ()); + $$ = $1->chain (tmp); + } ; // This is truly disgusting. diff -r 376ac108f611 -r 680426c10c5e src/pt-base.h --- a/src/pt-base.h Thu Jun 30 14:40:42 1994 +0000 +++ b/src/pt-base.h Thu Jun 30 15:23:09 1994 +0000 @@ -144,10 +144,8 @@ virtual tree_constant *eval (int print, int nargout); - virtual tree_constant eval (int argc, char **argv, int print); - - virtual tree_constant *eval (const tree_constant *args, int n_in, int nout, - int print) + virtual tree_constant *eval (const tree_constant *args, int nargin, + int nargout, int print) { assert (0); return NULL_TREE_CONST; } virtual int save (ostream& os, int mark_as_global = 0, diff -r 376ac108f611 -r 680426c10c5e src/pt-const.cc --- a/src/pt-const.cc Thu Jun 30 14:40:42 1994 +0000 +++ b/src/pt-const.cc Thu Jun 30 15:23:09 1994 +0000 @@ -2520,13 +2520,6 @@ } } -tree_constant -tree_constant::eval (int argc, char **argv, int print) -{ - ::error ("first element of word-list command is a constant"); - return tree_constant (); -} - #if defined (MDEBUG) void * tree_constant::operator new (size_t size) diff -r 376ac108f611 -r 680426c10c5e src/pt-const.h --- a/src/pt-const.h Thu Jun 30 14:40:42 1994 +0000 +++ b/src/pt-const.h Thu Jun 30 15:23:09 1994 +0000 @@ -197,7 +197,7 @@ #ifndef TREE_FCN_TYPEDEFS #define TREE_FCN_TYPEDEFS 1 -typedef tree_constant (*Text_fcn)(int, char **); +typedef tree_constant* (*Text_fcn)(int, char **, int); typedef tree_constant* (*General_fcn)(tree_constant *, int, int); #endif @@ -762,8 +762,6 @@ return retval; } - tree_constant eval (int argc, char **argv, int print); - tree_constant *eval (const tree_constant *args, int n_in, int n_out, int print) { return rep->eval (args, n_in, n_out, print); } diff -r 376ac108f611 -r 680426c10c5e src/t-builtins.cc --- a/src/t-builtins.cc Thu Jun 30 14:40:42 1994 +0000 +++ b/src/t-builtins.cc Thu Jun 30 15:23:09 1994 +0000 @@ -174,10 +174,10 @@ return os; } -tree_constant -builtin_casesen (int argc, char **argv) +tree_constant * +builtin_casesen (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; if (argc == 1 || (argc > 1 && strcmp (argv[1], "off") == 0)) warning ("casesen: sorry, Octave is always case sensitive"); @@ -192,10 +192,10 @@ /* * Change current working directory. */ -tree_constant -builtin_cd (int argc, char **argv) +tree_constant * +builtin_cd (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; if (argc > 1) { @@ -251,10 +251,10 @@ * Wipe out user-defined variables and functions given a list of * globbing patterns. */ -tree_constant -builtin_clear (int argc, char **argv) +tree_constant * +builtin_clear (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; // Always clear the local table, but don't clear currently compiled // functions unless we are at the top level. (Allowing that to happen @@ -328,10 +328,10 @@ /* * Associate a cryptic message with a variable name. */ -tree_constant -builtin_document (int argc, char **argv) +tree_constant * +builtin_document (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; if (argc == 3) document_symbol (argv[1], argv[2]); else @@ -342,10 +342,10 @@ /* * Edit commands with your favorite editor. */ -tree_constant -builtin_edit_history (int argc, char **argv) +tree_constant * +builtin_edit_history (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; do_edit_history (argc, argv); return retval; } @@ -353,10 +353,10 @@ /* * Set output format state. */ -tree_constant -builtin_format (int argc, char **argv) +tree_constant * +builtin_format (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; set_format_style (argc, argv); return retval; } @@ -488,10 +488,10 @@ /* * Print cryptic yet witty messages. */ -tree_constant -builtin_help (int argc, char **argv) +tree_constant * +builtin_help (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; if (argc == 1) { @@ -623,10 +623,10 @@ /* * Display, save, or load history. */ -tree_constant -builtin_history (int argc, char **argv) +tree_constant * +builtin_history (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; do_history (argc, argv); @@ -637,10 +637,10 @@ * Change state flag that determines whether lines are added to plots * or drawn on new plots. */ -tree_constant -builtin_hold (int argc, char **argv) +tree_constant * +builtin_hold (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; switch (argc) { @@ -809,10 +809,10 @@ * * -- This function is not terribly robust. */ -tree_constant -builtin_load (int argc, char **argv) +tree_constant * +builtin_load (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; argc--; argv++; @@ -895,10 +895,10 @@ /* * Get a directory listing. */ -tree_constant -builtin_ls (int argc, char **argv) +tree_constant * +builtin_ls (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; ostrstream ls_buf; @@ -929,10 +929,10 @@ /* * Run previous commands from the history list. */ -tree_constant -builtin_run_history (int argc, char **argv) +tree_constant * +builtin_run_history (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; do_run_history (argc, argv); return retval; } @@ -979,10 +979,10 @@ /* * Write variables to an output stream. */ -tree_constant -builtin_save (int argc, char **argv) +tree_constant * +builtin_save (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; if (argc < 2) { @@ -1082,10 +1082,10 @@ /* * Set plotting options. */ -tree_constant -builtin_set (int argc, char **argv) +tree_constant * +builtin_set (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; ostrstream plot_buf; @@ -1113,10 +1113,10 @@ /* * Set plotting options. */ -tree_constant -builtin_show (int argc, char **argv) +tree_constant * +builtin_show (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; ostrstream plot_buf; @@ -1205,10 +1205,10 @@ return status; } -tree_constant -builtin_who (int argc, char **argv) +tree_constant * +builtin_who (int argc, char **argv, int nargout) { - tree_constant retval; + tree_constant *retval = NULL_TREE_CONST; int show_builtins = 0; int show_functions = (curr_sym_tab == top_level_sym_tab); diff -r 376ac108f611 -r 680426c10c5e src/t-builtins.h --- a/src/t-builtins.h Thu Jun 30 14:40:42 1994 +0000 +++ b/src/t-builtins.h Thu Jun 30 15:23:09 1994 +0000 @@ -34,22 +34,23 @@ char *help_string; }; -extern tree_constant builtin_casesen (int, char **); -extern tree_constant builtin_cd (int, char **); -extern tree_constant builtin_clear (int, char **); -extern tree_constant builtin_document (int, char **); -extern tree_constant builtin_edit_history (int, char **); -extern tree_constant builtin_format (int, char **); -extern tree_constant builtin_help (int, char **); -extern tree_constant builtin_history (int, char **); -extern tree_constant builtin_hold (int, char **); -extern tree_constant builtin_load (int, char **); -extern tree_constant builtin_ls (int, char **); -extern tree_constant builtin_run_history (int, char **); -extern tree_constant builtin_save (int, char **); -extern tree_constant builtin_set (int, char **); -extern tree_constant builtin_show (int, char **); -extern tree_constant builtin_who (int, char **); +extern tree_constant *builtin_casesen (int argc, char **argv, int nargout); +extern tree_constant *builtin_cd (int argc, char **argv, int nargout); +extern tree_constant *builtin_clear (int argc, char **argv, int nargout); +extern tree_constant *builtin_document (int argc, char **argv, int nargout); +extern tree_constant *builtin_edit_history (int argc, char **argv, + int nargout); +extern tree_constant *builtin_format (int argc, char **argv, int nargout); +extern tree_constant *builtin_help (int argc, char **argv, int nargout); +extern tree_constant *builtin_history (int argc, char **argv, int nargout); +extern tree_constant *builtin_hold (int argc, char **argv, int nargout); +extern tree_constant *builtin_load (int argc, char **argv, int nargout); +extern tree_constant *builtin_ls (int argc, char **argv, int nargout); +extern tree_constant *builtin_run_history (int argc, char **argv, int nargout); +extern tree_constant *builtin_save (int argc, char **argv, int nargout); +extern tree_constant *builtin_set (int argc, char **argv, int nargout); +extern tree_constant *builtin_show (int argc, char **argv, int nargout); +extern tree_constant *builtin_who (int argc, char **argv, int nargout); #endif diff -r 376ac108f611 -r 680426c10c5e src/tree.h.old --- a/src/tree.h.old Thu Jun 30 14:40:42 1994 +0000 +++ b/src/tree.h.old Thu Jun 30 15:23:09 1994 +0000 @@ -78,7 +78,6 @@ class tree_argument_list; class tree_parameter_list; class tree_return_list; -class tree_word_list; class tree_command; class tree_command_list; class tree_global_command; @@ -88,7 +87,6 @@ class tree_break_command; class tree_continue_command; class tree_return_command; -class tree_word_list_command;; class tree_plot_limits; class tree_plot_range; class tree_subplot; @@ -150,10 +148,8 @@ tree_constant *eval (int print, int nargout); - tree_constant eval (int argc, char **argv, int print); - - tree_constant *eval (const tree_constant *args, int n_in, int n_out, - int print); + tree_constant *eval (const tree_constant *args, int nargin, + int nargout, int print); char *name (void) const; @@ -211,10 +207,8 @@ tree_constant *eval (int print, int nargout); - tree_constant eval (int argc, char **argv, int print); - - tree_constant *eval (const tree_constant *args, int n_in, int n_out, - int print); + tree_constant *eval (const tree_constant *args, int nargin, + int nargout, int print); void eval_undefined_error (void); @@ -259,10 +253,8 @@ tree_constant *eval (int print, int nargout); - tree_constant eval (int argc, char **argv, int print); - - tree_constant *eval (const tree_constant *args, int n_in, int n_out, - int print); + tree_constant *eval (const tree_constant *args, int nargin, + int nargout, int print); int max_expected_args (void); @@ -612,33 +604,6 @@ }; /* - * Word lists. - */ -class -tree_word_list : public tree -{ - public: - tree_word_list (void); - tree_word_list (char *s); - - ~tree_word_list (void); - - tree_word_list *chain (char *s); - tree_word_list *reverse (void); - int length (void); - - char *name (void) const; - - tree_word_list *next_elem (void); - - tree_constant eval (int print); - - private: - char *word; - tree_word_list *next; -}; - -/* * A base class for commands. */ class @@ -814,25 +779,6 @@ tree_constant eval (int print); }; -/* - * Functions that take a list of strings as arguments. - */ -class -tree_word_list_command : public tree_command -{ - public: - tree_word_list_command (void); - tree_word_list_command (tree_identifier *id, tree_word_list *wl); - - ~tree_word_list_command (void); - - tree_constant eval (int print); - - private: - tree_identifier *ident; - tree_word_list *word_list; -}; - #endif /*