annotate src/pt-fcn.h @ 2168:0a2e2e64f813

[project @ 1996-05-13 14:27:36 by jwe]
author jwe
date Mon, 13 May 1996 14:27:36 +0000
parents 97a566037a75
children ef422e6f6138
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
1 /*
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
2
1827
effa9400766f [project @ 1996-02-02 14:07:51 by jwe]
jwe
parents: 1755
diff changeset
3 Copyright (C) 1996 John W. Eaton
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
4
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
6
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
10 later version.
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
11
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
15 for more details.
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
16
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, write to the Free
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
20
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
21 */
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
22
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
23 #if !defined (octave_tree_fcn_h)
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
24 #define octave_tree_fcn_h 1
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
25
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
26 #if defined (__GNUG__)
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
27 #pragma interface
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
28 #endif
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
29
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
30 #include <ctime>
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
31
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
32 class ostream;
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
33
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1739
diff changeset
34 #include <string>
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1739
diff changeset
35
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
36 class tree_parameter_list;
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
37 class tree_statement_list;
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
38 class tree_va_return_list;
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
39
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
40 class tree_walker;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
41
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
42 #include "oct-obj.h"
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
43 #include "symtab.h"
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
44 #include "pt-fvc.h"
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
45
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
46 // User defined functions.
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
47
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
48 class
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
49 tree_function : public tree_fvc
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
50 {
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
51 public:
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
52
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
53 tree_function (int l = -1, int c = -1) : tree_fvc (l, c)
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
54 { init (); }
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
55
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
56 tree_function (tree_statement_list *cl, symbol_table *st,
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
57 int l = -1, int c = -1)
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
58 : tree_fvc (l, c)
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
59 {
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
60 init ();
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
61 sym_tab = st;
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
62 cmd_list = cl;
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
63 install_nargin_and_nargout ();
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
64 }
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
65
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
66 ~tree_function (void);
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
67
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
68 // tree_function *define (tree_statement_list *t);
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
69 tree_function *define_param_list (tree_parameter_list *t);
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
70 tree_function *define_ret_list (tree_parameter_list *t);
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
71
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
72 void stash_fcn_file_name (void);
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
73
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
74 void stash_fcn_file_time (time_t t)
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
75 { t_parsed = t; }
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
76
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1739
diff changeset
77 string fcn_file_name (void)
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
78 { return file_name; }
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
79
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
80 time_t time_parsed (void)
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
81 { return t_parsed; }
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
82
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
83 void mark_as_system_fcn_file (void);
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
84
1827
effa9400766f [project @ 1996-02-02 14:07:51 by jwe]
jwe
parents: 1755
diff changeset
85 bool is_system_fcn_file (void) const
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
86 { return system_fcn_file; }
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
87
1827
effa9400766f [project @ 1996-02-02 14:07:51 by jwe]
jwe
parents: 1755
diff changeset
88 bool takes_varargs (void) const;
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
89
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
90 void octave_va_start (void)
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
91 { curr_va_arg_number = num_named_args; }
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
92
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
93 octave_value octave_va_arg (void);
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
94
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
95 octave_value_list octave_all_va_args (void);
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
96
1827
effa9400766f [project @ 1996-02-02 14:07:51 by jwe]
jwe
parents: 1755
diff changeset
97 bool takes_var_return (void) const;
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
98
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
99 void octave_vr_val (const octave_value& val);
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
100
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1739
diff changeset
101 void stash_function_name (const string& s);
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
102
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1739
diff changeset
103 string function_name (void)
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
104 { return fcn_name; }
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
105
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
106 octave_value eval (bool print);
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
107
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
108 octave_value_list eval (bool print, int nargout, const octave_value_list& args);
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
109
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
110 void traceback_error (void);
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
111
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
112 tree_parameter_list *parameter_list (void) { return param_list; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
113
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
114 tree_parameter_list *return_list (void) { return ret_list; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
115
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
116 tree_statement_list *body (void) { return cmd_list; }
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
117
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
118 void accept (tree_walker& tw);
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
119
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
120 private:
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
121
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
122 // List of arguments for this function. These are local variables.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
123 tree_parameter_list *param_list;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
125 // List of parameters we return. These are also local variables in
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
126 // this function.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
127 tree_parameter_list *ret_list;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
128
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
129 // The list of commands that make up the body of this function.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
130 tree_statement_list *cmd_list;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
131
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
132 // The local symbol table for this function.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
133 symbol_table *sym_tab;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
134
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
135 // Used to keep track of recursion depth.
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
136 int call_depth;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
137
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
138 // The name of the file we parsed
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1739
diff changeset
139 string file_name;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
140
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
141 // The name of the function.
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1739
diff changeset
142 string fcn_name;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
143
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
144 // The time the file was parsed.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
145 time_t t_parsed;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
146
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
147 // True if this function came from a file that is considered to be a
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
148 // system function. This affects whether we check the time stamp
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
149 // on the file to see if it has changed.
1827
effa9400766f [project @ 1996-02-02 14:07:51 by jwe]
jwe
parents: 1755
diff changeset
150 bool system_fcn_file;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
151
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
152 // The number of arguments that have names.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
153 int num_named_args;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
154
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
155 // The values that were passed as arguments.
2086
bfb775fb6fe8 [project @ 1996-04-25 05:55:19 by jwe]
jwe
parents: 1996
diff changeset
156 octave_value_list args_passed;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
157
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
158 // The number of arguments passed in.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
159 int num_args_passed;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
160
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
161 // Used to keep track of the current offset into the list of va_args.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
162 int curr_va_arg_number;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
163
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
164 // The list of return values when an unspecified number can be
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
165 // returned.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
166 tree_va_return_list *vr_list;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
167
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
168 // The symbol record for nargin in the local symbol table.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
169 symbol_record *nargin_sr;
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
170
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
171 // The symbol record for nargout in the local symbol table.
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
172 symbol_record *nargout_sr;
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
173
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
174 void print_code_function_header (void);
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
175 void print_code_function_trailer (void);
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
176
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
177 void install_nargin_and_nargout (void);
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
178
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
179 void bind_nargin_and_nargout (int nargin, int nargout);
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
180
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
181 void init (void)
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
182 {
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
183 call_depth = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
184 param_list = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
185 ret_list = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
186 sym_tab = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
187 cmd_list = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
188 t_parsed = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
189 system_fcn_file = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
190 num_named_args = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
191 num_args_passed = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
192 curr_va_arg_number = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
193 vr_list = 0;
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2086
diff changeset
194 }
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
195 };
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
196
2168
0a2e2e64f813 [project @ 1996-05-13 14:27:36 by jwe]
jwe
parents: 2124
diff changeset
197 extern void symbols_of_pt_fcn (void);
0a2e2e64f813 [project @ 1996-05-13 14:27:36 by jwe]
jwe
parents: 2124
diff changeset
198
1739
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
199 #endif
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
200
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
201 /*
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
202 ;;; Local Variables: ***
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
203 ;;; mode: C++ ***
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
204 ;;; End: ***
bbfca89cb1cd [project @ 1996-01-12 11:03:26 by jwe]
jwe
parents:
diff changeset
205 */