annotate src/pt-const.cc @ 2477:3d905d3820a4

[project @ 1996-11-07 16:46:11 by jwe]
author jwe
date Thu, 07 Nov 1996 16:48:16 +0000
parents 1d7925d6bede
children 0e5eb97cb137
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 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
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
4
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
6
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
10 later version.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
11
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
15 for more details.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
16
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, write to the Free
1315
611d403c7f3d [project @ 1995-06-25 19:56:32 by jwe]
jwe
parents: 1299
diff changeset
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
20
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
21 */
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
22
1299
484e94579182 [project @ 1995-05-01 18:50:20 by jwe]
jwe
parents: 1277
diff changeset
23 #if defined (__GNUG__)
484e94579182 [project @ 1995-05-01 18:50:20 by jwe]
jwe
parents: 1277
diff changeset
24 #pragma implementation
484e94579182 [project @ 1995-05-01 18:50:20 by jwe]
jwe
parents: 1277
diff changeset
25 #endif
484e94579182 [project @ 1995-05-01 18:50:20 by jwe]
jwe
parents: 1277
diff changeset
26
240
a99f28f5e351 [project @ 1993-11-30 20:24:36 by jwe]
jwe
parents: 217
diff changeset
27 #ifdef HAVE_CONFIG_H
1192
b6360f2d4fa6 [project @ 1995-03-30 21:38:35 by jwe]
jwe
parents: 1170
diff changeset
28 #include <config.h>
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
29 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
30
1558
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
31 #include <cctype>
1355
94697d007075 [project @ 1995-09-05 20:04:15 by jwe]
jwe
parents: 1331
diff changeset
32 #include <cstring>
94697d007075 [project @ 1995-09-05 20:04:15 by jwe]
jwe
parents: 1331
diff changeset
33
1728
42b4f904f1af [project @ 1996-01-09 11:36:01 by jwe]
jwe
parents: 1688
diff changeset
34 #include <string>
42b4f904f1af [project @ 1996-01-09 11:36:01 by jwe]
jwe
parents: 1688
diff changeset
35
1558
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
36 #include <fstream.h>
581
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 531
diff changeset
37 #include <iostream.h>
bc813f5eb025 [project @ 1994-08-07 01:02:15 by jwe]
jwe
parents: 531
diff changeset
38
1742
a02f140ed897 [project @ 1996-01-12 11:09:39 by jwe]
jwe
parents: 1731
diff changeset
39 #include <SLList.h>
a02f140ed897 [project @ 1996-01-12 11:09:39 by jwe]
jwe
parents: 1731
diff changeset
40
2181
138b3c98dc85 [project @ 1996-05-13 18:02:31 by jwe]
jwe
parents: 2124
diff changeset
41 #include "Array-flags.h"
138b3c98dc85 [project @ 1996-05-13 18:02:31 by jwe]
jwe
parents: 2124
diff changeset
42
1558
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
43 #include "mx-base.h"
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
44 #include "Range.h"
1755
3a9462b655f1 [project @ 1996-01-22 04:47:22 by jwe]
jwe
parents: 1742
diff changeset
45 #include "str-vec.h"
1558
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
46
2181
138b3c98dc85 [project @ 1996-05-13 18:02:31 by jwe]
jwe
parents: 2124
diff changeset
47 #include "defun.h"
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
48 #include "error.h"
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
49 #include "gripes.h"
1558
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
50 #include "idx-vector.h"
1742
a02f140ed897 [project @ 1996-01-12 11:09:39 by jwe]
jwe
parents: 1731
diff changeset
51 #include "mappers.h"
747
6182de8cb3b7 [project @ 1994-09-30 15:09:36 by jwe]
jwe
parents: 629
diff changeset
52 #include "oct-map.h"
1742
a02f140ed897 [project @ 1996-01-12 11:09:39 by jwe]
jwe
parents: 1731
diff changeset
53 #include "oct-obj.h"
1355
94697d007075 [project @ 1995-09-05 20:04:15 by jwe]
jwe
parents: 1331
diff changeset
54 #include "pager.h"
1558
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
55 #include "pr-output.h"
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
56 #include "sysdep.h"
1742
a02f140ed897 [project @ 1996-01-12 11:09:39 by jwe]
jwe
parents: 1731
diff changeset
57 #include "pt-const.h"
2124
97a566037a75 [project @ 1996-05-12 07:16:36 by jwe]
jwe
parents: 2115
diff changeset
58 #include "pt-walk.h"
1558
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
59 #include "unwind-prot.h"
1430
045e70a15a8f [project @ 1995-09-19 07:05:37 by jwe]
jwe
parents: 1358
diff changeset
60 #include "utils.h"
1558
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
61 #include "variables.h"
297e084c3857 [project @ 1995-10-12 07:20:28 by jwe]
jwe
parents: 1490
diff changeset
62
2477
3d905d3820a4 [project @ 1996-11-07 16:46:11 by jwe]
jwe
parents: 2475
diff changeset
63 // We are likely to have a lot of tree_constant objects to allocate,
3d905d3820a4 [project @ 1996-11-07 16:46:11 by jwe]
jwe
parents: 2475
diff changeset
64 // so make the grow_size large.
3d905d3820a4 [project @ 1996-11-07 16:46:11 by jwe]
jwe
parents: 2475
diff changeset
65 octave_allocator
3d905d3820a4 [project @ 1996-11-07 16:46:11 by jwe]
jwe
parents: 2475
diff changeset
66 tree_constant::allocator (sizeof (tree_constant), 1024);
2475
1d7925d6bede [project @ 1996-11-07 04:36:00 by jwe]
jwe
parents: 2447
diff changeset
67
2390
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
68 Octave_map
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
69 tree_constant::map_value (void) const
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
70 {
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
71 return val.map_value ();
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
72 }
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
73
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
74 void
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
75 tree_constant::print (void)
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
76 {
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
77 }
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
78
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
79 octave_value
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
80 tree_constant::eval (bool print_result)
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
81 {
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
82 if (print_result)
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
83 val.print ();
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
84
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
85 return val;
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
86 }
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
87
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
88 octave_value_list
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
89 tree_constant::eval (bool, int, const octave_value_list& idx)
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
90 {
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
91 octave_value_list retval;
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
92
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
93 if (idx.length () > 0)
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
94 retval (0) = index (idx);
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
95 else
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
96 retval (0) = val;
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
97
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
98 return retval;
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
99 }
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
100
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
101 octave_value
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
102 tree_constant::lookup_map_element (const string&, bool, bool)
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
103 {
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
104 octave_value retval;
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
105 error ("tree_constant::lookup_map_element() not implemented");
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
106 return retval;
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
107 }
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
108
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
109 octave_value
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
110 tree_constant::lookup_map_element (SLList<string>&, bool, bool)
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
111 {
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
112 octave_value retval;
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
113 error ("tree_constant::lookup_map_element() not implemented");
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
114 return retval;
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
115 }
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
116
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
117 void
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
118 tree_constant::accept (tree_walker& tw)
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
119 {
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
120 tw.visit_constant (*this);
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
121 }
c2c1482c34c8 [project @ 1996-10-12 19:13:23 by jwe]
jwe
parents: 2338
diff changeset
122
96
36ff440553cd [project @ 1993-09-13 02:48:39 by jwe]
jwe
parents: 1
diff changeset
123 /*
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
124 ;;; Local Variables: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
125 ;;; mode: C++ ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
126 ;;; End: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
127 */