Mercurial > octave
annotate libinterp/corefcn/interpreter-private.cc @ 23532:084245f9bd03
pass reference to evaluator to octave_function call methods
* interpreter-private.h, interpreter-private.cc: (__get_evaluator__):
New function.
* interpreter.h, interpreter.cc (interpreter::m_evaluator):
Now a reference instead of a pointer. Change all uses.
(interpreter::get_evaluator): New function.
(intrepreter::current_evaluator): Delete. Replace all uses with
__get_evaluator__.
* ov-fcn.h, ov-fcn.cc (octave_function::call): Pass reference to
tree_evaluator. Change all functions in derived classes and all
uses.
(octave_function::subsref): Delete.
* ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_script::subsref): Delete.
* pt-eval.h, pt-eval.cc (tree_evaluator::m_interpreter): Now a
reference instead of a pointer. Change all uses.
* ov-classdef.h, ov-classdef.cc (execute_ov): Delete. Replaces uses
with calls to feval.
(octave_classdef_superclass_ref::subsref): Delete.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 25 May 2017 13:13:17 -0400 |
parents | 1bc8f1f50b54 |
children | 14723784b9f2 |
rev | line source |
---|---|
23438 | 1 /* |
2 | |
3 Copyright (C) 2017 John W. Eaton | |
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 | |
9 the Free Software Foundation; either version 3 of the License, or | |
10 (at your option) any later version. | |
11 | |
12 Octave is distributed in the hope that it will be useful, but | |
13 WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with Octave; see the file COPYING. If not, see | |
19 <http://www.gnu.org/licenses/>. | |
20 | |
21 */ | |
22 | |
23 #if defined (HAVE_CONFIG_H) | |
24 # include "config.h" | |
25 #endif | |
26 | |
27 #include <string> | |
28 | |
29 #include "error.h" | |
23511
232c8d69d934
manage interpreter instance in interpreter object
John W. Eaton <jwe@octave.org>
parents:
23438
diff
changeset
|
30 #include "load-path.h" |
23438 | 31 #include "interpreter-private.h" |
23511
232c8d69d934
manage interpreter instance in interpreter object
John W. Eaton <jwe@octave.org>
parents:
23438
diff
changeset
|
32 #include "interpreter.h" |
23438 | 33 |
34 namespace octave | |
35 { | |
23517
1bc8f1f50b54
new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents:
23511
diff
changeset
|
36 interpreter& __get_interpreter__ (const std::string& who) |
23438 | 37 { |
23511
232c8d69d934
manage interpreter instance in interpreter object
John W. Eaton <jwe@octave.org>
parents:
23438
diff
changeset
|
38 interpreter *interp = interpreter::the_interpreter (); |
23438 | 39 |
40 if (! interp) | |
41 error ("%s: interpreter context missing", who.c_str ()); | |
42 | |
23517
1bc8f1f50b54
new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents:
23511
diff
changeset
|
43 return *interp; |
1bc8f1f50b54
new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents:
23511
diff
changeset
|
44 } |
1bc8f1f50b54
new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents:
23511
diff
changeset
|
45 |
1bc8f1f50b54
new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents:
23511
diff
changeset
|
46 load_path& __get_load_path__ (const std::string& who) |
1bc8f1f50b54
new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents:
23511
diff
changeset
|
47 { |
1bc8f1f50b54
new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents:
23511
diff
changeset
|
48 interpreter& interp = __get_interpreter__ (who); |
1bc8f1f50b54
new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents:
23511
diff
changeset
|
49 |
1bc8f1f50b54
new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents:
23511
diff
changeset
|
50 return interp.get_load_path (); |
23438 | 51 } |
23532
084245f9bd03
pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents:
23517
diff
changeset
|
52 |
084245f9bd03
pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents:
23517
diff
changeset
|
53 tree_evaluator& __get_evaluator__ (const std::string& who) |
084245f9bd03
pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents:
23517
diff
changeset
|
54 { |
084245f9bd03
pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents:
23517
diff
changeset
|
55 interpreter& interp = __get_interpreter__ (who); |
084245f9bd03
pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents:
23517
diff
changeset
|
56 |
084245f9bd03
pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents:
23517
diff
changeset
|
57 return interp.get_evaluator (); |
084245f9bd03
pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents:
23517
diff
changeset
|
58 } |
23438 | 59 } |