Mercurial > octave
annotate libinterp/parse-tree/token.h @ 29723:6858992dfadf
enter symbols into current scope in parser instead of lexer
* lex.h, lex.ll (base_lexer::is_variable): Eliminate unused SCOPE
argument. Change all uses.
* oct-parse.yy (identifer): Enter NAME in current scope here instead
of in lexer.
* token.h, token.cc (token::m_sr): Delete member variable and all uses.
(token::symbol_name): Delete method. Use token::text where this
method was used prevoiusly.
(token::sym_rec, token::is_symbol): Delete methods and all uses.
(token::sym_rec_token): Delete enum value and all uses. Use
string_token instead.
(token::isstring): New method.
(token::tok_info): Delete overload for symbol_record objects.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 01 Jun 2021 16:57:40 -0400 |
parents | 7854d5752dd2 |
children | c19f8cbe0fd5 |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
29358
0a5b15007766
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
3 // Copyright (C) 1993-2021 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
142 | 25 |
20791
f7084eae3318
maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents:
20075
diff
changeset
|
26 #if ! defined (octave_token_h) |
383 | 27 #define octave_token_h 1 |
142 | 28 |
21244
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21017
diff
changeset
|
29 #include "octave-config.h" |
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21017
diff
changeset
|
30 |
1755 | 31 #include <string> |
32 | |
27766
0ca7f17de041
use file position object to track line and column info in lexer and parser
John W. Eaton <jwe@octave.org>
parents:
27765
diff
changeset
|
33 #include "filepos.h" |
28582
dc8de424fc72
use octave_value object to store numeric tokens in the lexer
John W. Eaton <jwe@octave.org>
parents:
28517
diff
changeset
|
34 #include "ov.h" |
16134
ec9c6222ef5a
move static parser helper functions to octave_parser class
John W. Eaton <jwe@octave.org>
parents:
15195
diff
changeset
|
35 |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
36 namespace octave |
142 | 37 { |
27765
dd93e1fdc7db
require position info when creating tokens for the parser
John W. Eaton <jwe@octave.org>
parents:
26718
diff
changeset
|
38 class token |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
39 { |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
40 public: |
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
41 |
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
42 enum token_type |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
43 { |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
44 generic_token, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
45 keyword_token, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
46 string_token, |
28582
dc8de424fc72
use octave_value object to store numeric tokens in the lexer
John W. Eaton <jwe@octave.org>
parents:
28517
diff
changeset
|
47 numeric_token, |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
48 ettype_token, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
49 scls_name_token, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
50 }; |
142 | 51 |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
52 enum end_tok_type |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
53 { |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
54 simple_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
55 classdef_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
56 enumeration_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
57 events_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
58 for_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
59 function_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
60 if_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
61 methods_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
62 parfor_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
63 properties_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
64 switch_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
65 try_catch_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
66 unwind_protect_end, |
28517
6e8a9845d118
Add 'spmd' as interpreter keyword for Matlab compatibility (bug #58676).
Rik <rik@octave.org>
parents:
28078
diff
changeset
|
67 spmd_end, |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
68 while_end, |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
69 }; |
142 | 70 |
27769
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
71 token (int tv, const filepos& beg_pos, const filepos& end_pos); |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
72 |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
73 token (int tv, bool is_keyword, const filepos& beg_pos |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
74 , const filepos& end_pos); |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
75 |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
76 token (int tv, const char *s, const filepos& beg_pos, |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
77 const filepos& end_pos); |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
78 |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
79 token (int tv, const std::string& s, const filepos& beg_pos, |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
80 const filepos& end_pos); |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
81 |
28582
dc8de424fc72
use octave_value object to store numeric tokens in the lexer
John W. Eaton <jwe@octave.org>
parents:
28517
diff
changeset
|
82 token (int tv, const octave_value& val, const std::string& s, |
dc8de424fc72
use octave_value object to store numeric tokens in the lexer
John W. Eaton <jwe@octave.org>
parents:
28517
diff
changeset
|
83 const filepos& beg_pos, const filepos& end_pos); |
27769
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
84 |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
85 token (int tv, end_tok_type t, const filepos& beg_pos, |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
86 const filepos& end_pos); |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
87 |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
88 token (int tv, const std::string& mth, const std::string& cls, |
27769
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
89 const filepos& beg_pos, const filepos& end_pos); |
142 | 90 |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
91 // No copying! |
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
92 |
23372 | 93 token (const token&) = delete; |
16257
db7f07b22b9b
1/10 commits reworking the lexer
John W. Eaton <jwe@octave.org>
parents:
16255
diff
changeset
|
94 |
23372 | 95 token& operator = (const token&) = delete; |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
96 |
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
97 ~token (void); |
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
98 |
23372 | 99 void mark_may_be_command (void) { m_maybe_cmd = true; } |
100 bool may_be_command (void) const { return m_maybe_cmd; } | |
16255
12bf6a3f8c45
store more info in token value class
John W. Eaton <jwe@octave.org>
parents:
16134
diff
changeset
|
101 |
23372 | 102 void mark_trailing_space (void) { m_tspc = true; } |
103 bool space_follows_token (void) const { return m_tspc; } | |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
104 |
23372 | 105 int token_value (void) const { return m_tok_val; } |
106 bool token_value_is (int tv) const { return tv == m_tok_val; } | |
142 | 107 |
27769
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
108 filepos beg_pos (void) const { return m_beg_pos; } |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
109 filepos end_pos (void) const { return m_end_pos; } |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
110 |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
111 void beg_pos (const filepos& pos) { m_beg_pos = pos; } |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
112 void end_pos (const filepos& pos) { m_end_pos = pos; } |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
113 |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
114 // These will probably be removed. |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
115 int line (void) const { return m_beg_pos.line (); } |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
116 int column (void) const { return m_beg_pos.column (); } |
16255
12bf6a3f8c45
store more info in token value class
John W. Eaton <jwe@octave.org>
parents:
16134
diff
changeset
|
117 |
26059
da2bbcf1fbcd
Deprecate C++ function is_keyword in favor of iskeyword for readability.
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
118 bool iskeyword (void) const |
da2bbcf1fbcd
Deprecate C++ function is_keyword in favor of iskeyword for readability.
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
119 { |
da2bbcf1fbcd
Deprecate C++ function is_keyword in favor of iskeyword for readability.
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
120 return m_type_tag == keyword_token || m_type_tag == ettype_token; |
da2bbcf1fbcd
Deprecate C++ function is_keyword in favor of iskeyword for readability.
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
121 } |
da2bbcf1fbcd
Deprecate C++ function is_keyword in favor of iskeyword for readability.
Rik <rik@octave.org>
parents:
25103
diff
changeset
|
122 |
29723
6858992dfadf
enter symbols into current scope in parser instead of lexer
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
123 bool isstring (void) const { return m_type_tag == string_token; } |
16360
11115c237231
recognize variables when parsing (bug #38576)
John W. Eaton <jwe@octave.org>
parents:
16267
diff
changeset
|
124 |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
125 std::string text (void) const; |
28582
dc8de424fc72
use octave_value object to store numeric tokens in the lexer
John W. Eaton <jwe@octave.org>
parents:
28517
diff
changeset
|
126 octave_value number (void) const; |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
127 token_type ttype (void) const; |
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
128 end_tok_type ettype (void) const; |
142 | 129 |
26718
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
130 std::string superclass_method_name (void) const; |
23372 | 131 std::string superclass_class_name (void) const; |
581 | 132 |
23372 | 133 std::string text_rep (void) const; |
3552 | 134 |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
135 private: |
1288 | 136 |
23372 | 137 bool m_maybe_cmd; |
138 | |
139 bool m_tspc; | |
140 | |
27769
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
141 filepos m_beg_pos; |
07ffed9878ad
store begin and end position in tokens
John W. Eaton <jwe@octave.org>
parents:
27766
diff
changeset
|
142 filepos m_end_pos; |
23372 | 143 |
144 int m_tok_val; | |
145 | |
146 token_type m_type_tag; | |
147 | |
148 union tok_info | |
142 | 149 { |
23372 | 150 tok_info (void) { } |
151 | |
152 tok_info (const char *s) : m_str (new std::string (s)) { } | |
153 | |
154 tok_info (const std::string& str) : m_str (new std::string (str)) { } | |
155 | |
28582
dc8de424fc72
use octave_value object to store numeric tokens in the lexer
John W. Eaton <jwe@octave.org>
parents:
28517
diff
changeset
|
156 tok_info (const octave_value& num) : m_num (new octave_value (num)) { } |
23372 | 157 |
158 tok_info (end_tok_type et) : m_et (et) { } | |
159 | |
26718
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
160 tok_info (const std::string& meth, const std::string& cls) |
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
161 : m_superclass_info (new superclass_info (meth, cls)) |
23372 | 162 { } |
163 | |
164 tok_info (const tok_info&) = delete; | |
165 | |
166 tok_info& operator = (const tok_info&) = delete; | |
167 | |
168 ~tok_info (void) { } | |
169 | |
170 std::string *m_str; | |
171 | |
28582
dc8de424fc72
use octave_value object to store numeric tokens in the lexer
John W. Eaton <jwe@octave.org>
parents:
28517
diff
changeset
|
172 octave_value *m_num; |
23372 | 173 |
174 end_tok_type m_et; | |
175 | |
176 struct superclass_info | |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
177 { |
23372 | 178 superclass_info (void) = delete; |
179 | |
26718
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
180 superclass_info (const std::string& meth, |
26686
581d01526b34
eliminate unnecessary tree_funcall class
John W. Eaton <jwe@octave.org>
parents:
26377
diff
changeset
|
181 const std::string& cls) |
26718
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
182 : m_method_name (meth), m_class_name (cls) |
23372 | 183 { } |
184 | |
185 superclass_info (const superclass_info&) = delete; | |
186 | |
187 superclass_info& operator = (const superclass_info&) = delete; | |
188 | |
189 ~superclass_info (void) = default; | |
190 | |
26718
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
191 // The name of the method to call. This is the text before the |
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
192 // "@" and may be of the form "object.method". |
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
193 std::string m_method_name; |
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
194 |
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
195 // The name of the superclass. This is the text after the "@" |
9b0335f4bc74
revise naming of the parts of a superclass reference
John W. Eaton <jwe@octave.org>
parents:
26686
diff
changeset
|
196 // and may be of the form "object.method". |
26686
581d01526b34
eliminate unnecessary tree_funcall class
John W. Eaton <jwe@octave.org>
parents:
26377
diff
changeset
|
197 std::string m_class_name; |
23372 | 198 }; |
199 | |
200 superclass_info *m_superclass_info; | |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
201 }; |
23372 | 202 |
203 tok_info m_tok_info; | |
204 | |
205 std::string m_orig_text; | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
206 }; |
23075
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
207 } |
4e3d47dc7e25
move parse tree classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
208 |
142 | 209 #endif |