Mercurial > hg > octave-nkf
annotate src/variables.h @ 15063:36cbcc37fdb8
Refactor configure.ac to make it more understandable.
Use common syntax for messages in config.h
Correct typos, refer to libraries in all caps, use two spaces after period.
Follow Autoconf guidelines and place general tests before specific tests.
* configure.ac, m4/acinclude.m4: Use common syntax for messages in config.h
Correct typos, refer to libraries in all caps, use two spaces after period.
Follow Autoconf guidelines and place general tests before specific tests.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 31 Jul 2012 10:28:51 -0700 |
parents | 72c96de7a403 |
children |
rev | line source |
---|---|
1 | 1 /* |
2 | |
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
11586
diff
changeset
|
3 Copyright (C) 1993-2012 John W. Eaton |
1 | 4 |
5 This file is part of Octave. | |
6 | |
7 Octave is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
7016 | 9 Free Software Foundation; either version 3 of the License, or (at your |
10 option) any later version. | |
1 | 11 |
12 Octave is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
7016 | 18 along with Octave; see the file COPYING. If not, see |
19 <http://www.gnu.org/licenses/>. | |
1 | 20 |
21 */ | |
22 | |
383 | 23 #if !defined (octave_variables_h) |
24 #define octave_variables_h 1 | |
1 | 25 |
2975 | 26 class octave_function; |
4700 | 27 class octave_user_function; |
1738 | 28 |
2390 | 29 class tree_identifier; |
2086 | 30 class octave_value; |
31 class octave_value_list; | |
2892 | 32 class octave_builtin; |
1755 | 33 class string_vector; |
34 | |
5794 | 35 #include <climits> |
36 #include <cfloat> | |
37 | |
1755 | 38 #include <string> |
1 | 39 |
2390 | 40 #include "ov.h" |
2975 | 41 #include "ov-builtin.h" |
2953 | 42 #include "symtab.h" |
195 | 43 |
6109 | 44 extern OCTINTERP_API void clear_mex_functions (void); |
195 | 45 |
6109 | 46 extern OCTINTERP_API octave_function * |
3523 | 47 is_valid_function (const octave_value&, const std::string& = std::string (), |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
48 bool warn = false); |
593 | 49 |
6109 | 50 extern OCTINTERP_API octave_function * |
3523 | 51 is_valid_function (const std::string&, const std::string& = std::string (), |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
52 bool warn = false); |
3178 | 53 |
6109 | 54 extern OCTINTERP_API octave_function * |
3523 | 55 extract_function (const octave_value& arg, const std::string& warn_for, |
10313 | 56 const std::string& fname, const std::string& header, |
57 const std::string& trailer); | |
2796 | 58 |
6109 | 59 extern OCTINTERP_API string_vector |
3523 | 60 get_struct_elts (const std::string& text); |
2921 | 61 |
6109 | 62 extern OCTINTERP_API string_vector |
3523 | 63 generate_struct_completions (const std::string& text, std::string& prefix, |
10313 | 64 std::string& hint); |
3020 | 65 |
6109 | 66 extern OCTINTERP_API bool |
3523 | 67 looks_like_struct (const std::string& text); |
2921 | 68 |
6109 | 69 extern OCTINTERP_API int |
4930 | 70 symbol_exist (const std::string& name, const std::string& type = "any"); |
4319 | 71 |
6109 | 72 extern OCTINTERP_API std::string |
4954 | 73 unique_symbol_name (const std::string& basename); |
74 | |
6109 | 75 extern OCTINTERP_API octave_value lookup_function_handle (const std::string& nm); |
4988 | 76 |
6109 | 77 extern OCTINTERP_API octave_value |
5027 | 78 get_global_value (const std::string& nm, bool silent = false); |
3020 | 79 |
10071
e42b1bbd1052
variables.cc (get_top_level_value, set_top_level_value): new functions
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
80 extern OCTINTERP_API void |
e42b1bbd1052
variables.cc (get_top_level_value, set_top_level_value): new functions
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
81 set_global_value (const std::string& nm, const octave_value& val); |
e42b1bbd1052
variables.cc (get_top_level_value, set_top_level_value): new functions
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
82 |
e42b1bbd1052
variables.cc (get_top_level_value, set_top_level_value): new functions
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
83 extern OCTINTERP_API octave_value |
e42b1bbd1052
variables.cc (get_top_level_value, set_top_level_value): new functions
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
84 get_top_level_value (const std::string& nm, bool silent = false); |
e42b1bbd1052
variables.cc (get_top_level_value, set_top_level_value): new functions
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
85 |
e42b1bbd1052
variables.cc (get_top_level_value, set_top_level_value): new functions
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
86 extern OCTINTERP_API void |
e42b1bbd1052
variables.cc (get_top_level_value, set_top_level_value): new functions
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
87 set_top_level_value (const std::string& nm, const octave_value& val); |
3020 | 88 |
6109 | 89 extern OCTINTERP_API octave_value |
5791 | 90 set_internal_variable (bool& var, const octave_value_list& args, |
10313 | 91 int nargout, const char *nm); |
5794 | 92 |
6109 | 93 extern OCTINTERP_API octave_value |
5794 | 94 set_internal_variable (char& var, const octave_value_list& args, |
10313 | 95 int nargout, const char *nm); |
5794 | 96 |
6109 | 97 extern OCTINTERP_API octave_value |
5794 | 98 set_internal_variable (int& var, const octave_value_list& args, |
10313 | 99 int nargout, const char *nm, |
100 int minval = INT_MIN, int maxval = INT_MAX); | |
5794 | 101 |
6109 | 102 extern OCTINTERP_API octave_value |
5794 | 103 set_internal_variable (double& var, const octave_value_list& args, |
10313 | 104 int nargout, const char *nm, |
105 double minval = DBL_MIN, double maxval = DBL_MAX); | |
5791 | 106 |
6109 | 107 extern OCTINTERP_API octave_value |
5791 | 108 set_internal_variable (std::string& var, const octave_value_list& args, |
10313 | 109 int nargout, const char *nm, bool empty_ok = true); |
5794 | 110 |
10638
e1559a8a60b4
general mechanism for string enum variables
Jaroslav Hajek <highegg@gmail.com>
parents:
10443
diff
changeset
|
111 extern OCTINTERP_API octave_value |
e1559a8a60b4
general mechanism for string enum variables
Jaroslav Hajek <highegg@gmail.com>
parents:
10443
diff
changeset
|
112 set_internal_variable (int& var, const octave_value_list& args, |
10640
5c594472f75e
determine string enum length by trailing null rather than sizeof
Jaroslav Hajek <highegg@gmail.com>
parents:
10638
diff
changeset
|
113 int nargout, const char *nm, const char **choices); |
10638
e1559a8a60b4
general mechanism for string enum variables
Jaroslav Hajek <highegg@gmail.com>
parents:
10443
diff
changeset
|
114 |
5794 | 115 #define SET_INTERNAL_VARIABLE(NM) \ |
116 set_internal_variable (V ## NM, args, nargout, #NM) | |
5791 | 117 |
5794 | 118 #define SET_NONEMPTY_INTERNAL_STRING_VARIABLE(NM) \ |
119 set_internal_variable (V ## NM, args, nargout, #NM, false) | |
120 | |
121 #define SET_INTERNAL_VARIABLE_WITH_LIMITS(NM, MINVAL, MAXVAL) \ | |
122 set_internal_variable (V ## NM, args, nargout, #NM, MINVAL, MAXVAL) | |
5791 | 123 |
10640
5c594472f75e
determine string enum length by trailing null rather than sizeof
Jaroslav Hajek <highegg@gmail.com>
parents:
10638
diff
changeset
|
124 // in the following, CHOICES must be a C string array terminated by null. |
10638
e1559a8a60b4
general mechanism for string enum variables
Jaroslav Hajek <highegg@gmail.com>
parents:
10443
diff
changeset
|
125 #define SET_INTERNAL_VARIABLE_CHOICES(NM, CHOICES) \ |
10640
5c594472f75e
determine string enum length by trailing null rather than sizeof
Jaroslav Hajek <highegg@gmail.com>
parents:
10638
diff
changeset
|
126 set_internal_variable (V ## NM, args, nargout, #NM, CHOICES) |
10638
e1559a8a60b4
general mechanism for string enum variables
Jaroslav Hajek <highegg@gmail.com>
parents:
10443
diff
changeset
|
127 |
6109 | 128 extern OCTINTERP_API std::string builtin_string_variable (const std::string&); |
129 extern OCTINTERP_API int builtin_real_scalar_variable (const std::string&, double&); | |
130 extern OCTINTERP_API octave_value builtin_any_variable (const std::string&); | |
3020 | 131 |
6109 | 132 extern OCTINTERP_API void bind_ans (const octave_value& val, bool print); |
1162 | 133 |
6109 | 134 extern OCTINTERP_API void |
5794 | 135 bind_internal_variable (const std::string& fname, const octave_value& val); |
1406 | 136 |
7336 | 137 extern OCTINTERP_API void mlock (void); |
6109 | 138 extern OCTINTERP_API void munlock (const std::string&); |
139 extern OCTINTERP_API bool mislocked (const std::string&); | |
4016 | 140 |
7336 | 141 extern OCTINTERP_API void clear_function (const std::string& nm); |
142 extern OCTINTERP_API void clear_variable (const std::string& nm); | |
143 extern OCTINTERP_API void clear_symbol (const std::string& nm); | |
4009 | 144 |
10443
34e51d4e199b
implement smart warnings about missing Matlab functionality
Jaroslav Hajek <highegg@gmail.com>
parents:
10313
diff
changeset
|
145 extern OCTINTERP_API void maybe_missing_function_hook (const std::string& name); |
34e51d4e199b
implement smart warnings about missing Matlab functionality
Jaroslav Hajek <highegg@gmail.com>
parents:
10313
diff
changeset
|
146 |
1 | 147 #endif |