Mercurial > hg > octave-lyh
comparison src/DLD-FUNCTIONS/dispatch.cc @ 10154:40dfc0c99116
DLD-FUNCTIONS/*.cc: untabify
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 20 Jan 2010 17:33:41 -0500 |
parents | 0c785ad961fa |
children | cc3aad9dd3ef |
comparison
equal
deleted
inserted
replaced
10153:2c28f9d0360f | 10154:40dfc0c99116 |
---|---|
55 if (nargin > 0) | 55 if (nargin > 0) |
56 { | 56 { |
57 const std::string name (args(0).string_value ()); | 57 const std::string name (args(0).string_value ()); |
58 | 58 |
59 if (! error_state) | 59 if (! error_state) |
60 { | 60 { |
61 octave_value fcn = symbol_table::builtin_find (name); | 61 octave_value fcn = symbol_table::builtin_find (name); |
62 | 62 |
63 if (fcn.is_defined ()) | 63 if (fcn.is_defined ()) |
64 retval = feval (fcn.function_value (), args.splice (0, 1), | 64 retval = feval (fcn.function_value (), args.splice (0, 1), |
65 nargout); | 65 nargout); |
66 else | 66 else |
67 error ("builtin: lookup for symbol `%s' failed", name.c_str ()); | 67 error ("builtin: lookup for symbol `%s' failed", name.c_str ()); |
68 } | 68 } |
69 else | 69 else |
70 error ("builtin: expecting function name as first argument"); | 70 error ("builtin: expecting function name as first argument"); |
71 } | 71 } |
72 else | 72 else |
73 print_usage (); | 73 print_usage (); |
74 | 74 |
75 return retval; | 75 return retval; |
99 std::string f, r, t; | 99 std::string f, r, t; |
100 | 100 |
101 if (nargin > 0 && nargin < 4) | 101 if (nargin > 0 && nargin < 4) |
102 { | 102 { |
103 if (nargin > 0) | 103 if (nargin > 0) |
104 { | 104 { |
105 f = args(0).string_value (); | 105 f = args(0).string_value (); |
106 | 106 |
107 if (error_state) | 107 if (error_state) |
108 { | 108 { |
109 error ("dispatch: expecting first argument to be function name"); | 109 error ("dispatch: expecting first argument to be function name"); |
110 return retval; | 110 return retval; |
111 } | 111 } |
112 } | 112 } |
113 | 113 |
114 if (nargin > 1) | 114 if (nargin > 1) |
115 { | 115 { |
116 r = args(1).string_value (); | 116 r = args(1).string_value (); |
117 | 117 |
118 if (error_state) | 118 if (error_state) |
119 { | 119 { |
120 error ("dispatch: expecting second argument to be function name"); | 120 error ("dispatch: expecting second argument to be function name"); |
121 return retval; | 121 return retval; |
122 } | 122 } |
123 } | 123 } |
124 | 124 |
125 if (nargin > 2) | 125 if (nargin > 2) |
126 { | 126 { |
127 t = args(2).string_value (); | 127 t = args(2).string_value (); |
128 | 128 |
129 if (error_state) | 129 if (error_state) |
130 { | 130 { |
131 error ("dispatch: expecting third argument to be type name"); | 131 error ("dispatch: expecting third argument to be type name"); |
132 return retval; | 132 return retval; |
133 } | 133 } |
134 } | 134 } |
135 | 135 |
136 if (nargin == 1) | 136 if (nargin == 1) |
137 { | 137 { |
138 if (nargout > 0) | 138 if (nargout > 0) |
139 { | 139 { |
140 symbol_table::fcn_info::dispatch_map_type dm | 140 symbol_table::fcn_info::dispatch_map_type dm |
141 = symbol_table::get_dispatch (f); | 141 = symbol_table::get_dispatch (f); |
142 | 142 |
143 size_t len = dm.size (); | 143 size_t len = dm.size (); |
144 | 144 |
145 Cell type_field (len, 1); | 145 Cell type_field (len, 1); |
146 Cell name_field (len, 1); | 146 Cell name_field (len, 1); |
147 | 147 |
148 symbol_table::fcn_info::dispatch_map_type::const_iterator p | 148 symbol_table::fcn_info::dispatch_map_type::const_iterator p |
149 = dm.begin (); | 149 = dm.begin (); |
150 | 150 |
151 for (size_t i = 0; i < len; i++) | 151 for (size_t i = 0; i < len; i++) |
152 { | 152 { |
153 type_field(i) = p->first; | 153 type_field(i) = p->first; |
154 name_field(i) = p->second; | 154 name_field(i) = p->second; |
155 | 155 |
156 p++; | 156 p++; |
157 } | 157 } |
158 | 158 |
159 Octave_map m; | 159 Octave_map m; |
160 | 160 |
161 m.assign ("type", type_field); | 161 m.assign ("type", type_field); |
162 m.assign ("name", name_field); | 162 m.assign ("name", name_field); |
163 | 163 |
164 retval = m; | 164 retval = m; |
165 } | 165 } |
166 else | 166 else |
167 symbol_table::print_dispatch (octave_stdout, f); | 167 symbol_table::print_dispatch (octave_stdout, f); |
168 } | 168 } |
169 else if (nargin == 2) | 169 else if (nargin == 2) |
170 { | 170 { |
171 t = r; | 171 t = r; |
172 symbol_table::clear_dispatch (f, t); | 172 symbol_table::clear_dispatch (f, t); |
173 } | 173 } |
174 else | 174 else |
175 symbol_table::add_dispatch (f, t, r); | 175 symbol_table::add_dispatch (f, t, r); |
176 } | 176 } |
177 else | 177 else |
178 print_usage (); | 178 print_usage (); |
179 | 179 |
180 return retval; | 180 return retval; |