diff src/variables.h @ 529:7ea224e713cd

[project @ 1994-07-20 18:54:27 by jwe]
author jwe
date Wed, 20 Jul 1994 19:19:08 +0000
parents 88614b380d6e
children 18007cc05a02
line wrap: on
line diff
--- a/src/variables.h
+++ b/src/variables.h
@@ -25,18 +25,42 @@
 #define octave_variables_h 1
 
 class istream;
+class ostrstream;
 class symbol_record;
 class symbol_table;
 class tree;
 class tree_fvc;
 class tree_constant;
+class Octave_object;
 
-struct builtin_mapper_functions;
-struct builtin_text_functions;
-struct builtin_general_functions;
-struct builtin_string_variables;
+struct builtin_mapper_function;
+struct builtin_function;
+struct builtin_variable;
+
+typedef int (*sv_Function)(void);
 
-#include "builtins.h"
+struct builtin_variable
+{
+  char *name;
+  tree_constant *value;
+  int install_as_function;
+  int protect;
+  int eternal;
+  sv_Function sv_function;
+  char *help_string;
+};
+
+typedef Octave_object (*Octave_builtin_fcn)(const Octave_object&, int);
+
+struct builtin_function
+{
+  char *name;
+  int nargin_max;
+  int nargout_max;
+  int is_text_fcn;
+  Octave_builtin_fcn fcn;
+  char *help_string;
+};
 
 extern void initialize_symbol_tables (void);
 
@@ -44,18 +68,17 @@
 
 extern void document_symbol (const char *name, const char *help);
 
-extern void install_builtin_mapper_function (builtin_mapper_functions *mf);
-
-extern void install_builtin_text_function (builtin_text_functions *tf);
+extern void install_builtin_mapper (builtin_mapper_function *mf);
 
-extern void install_builtin_general_function (builtin_general_functions *gf);
+extern void install_builtin_function (builtin_function *gf);
 
-extern void install_builtin_variable (builtin_string_variables *sv);
+extern void install_builtin_variable (builtin_variable *v);
 
 extern void install_builtin_variable_as_function (const char *name,
 						  tree_constant *val,
 						  int protect = 0,
-						  int eternal = 0);  
+						  int eternal = 0,
+						  const char *help = 0);
 
 extern void bind_nargin_and_nargout (symbol_table *sym_tab,
 				     int nargin, int nargout);
@@ -63,7 +86,7 @@
 extern void bind_builtin_variable (const char *, tree_constant *,
 				   int protect = 0, int eternal = 0,
 				   sv_Function f = (sv_Function) 0,
-				   const char *help = (char *) 0);
+				   const char *help = 0);
 
 extern char *builtin_string_variable (const char *);
 extern int builtin_real_scalar_variable (const char *, double&);
@@ -83,10 +106,39 @@
 extern int valid_identifier (char *);
 extern int identifier_exists (char *);
 extern int is_builtin_variable (const char *name);
-extern tree_fvc *is_valid_function (tree_constant&, char *, int warn = 0);
+extern tree_fvc *is_valid_function (const tree_constant&, char *,
+				    int warn = 0); 
 extern int takes_correct_nargs (tree_fvc *, int, char *, int warn = 0);
 extern char **make_name_list (void);
 
+extern int is_text_function_name (const char *s);
+
+struct help_list;
+
+extern help_list *builtin_mapper_functions_help (void);
+extern help_list *builtin_general_functions_help (void);
+extern help_list *builtin_text_functions_help (void);
+extern help_list *builtin_variables_help (void);
+
+extern int help_from_list (ostrstream& output_buf,
+			   const help_list *list, const char *string,
+			   int usage);
+
+extern void additional_help_message (ostrstream& output_buf);
+
+extern void print_usage (const char *s, int just_usage = 0);
+
+extern void install_builtin_variables (void);
+
+extern char *octave_home (void);
+extern char *octave_lib_dir (void);
+extern char *octave_info_dir (void);
+extern char *default_path (void);
+extern char *default_info_file (void);
+extern char *default_editor (void);
+extern char *get_site_defaults (void);
+extern char *default_pager (void);
+
 // Symbol table for symbols at the top level.
 extern symbol_table *top_level_sym_tab;