2 ank_r4. Copyright 2007 Andres N. Kievsky
4 This file is part of ank_r4.
6 ank_r4 is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 ank_r4 is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 package ar
.com
.ank
.lang
.r4
;
22 import ar
.com
.ank
.lang
.r4
.datatypes
.Pointer
;
24 public class Environment
{
25 private Stack stack
= new Stack();
26 private DefinitionMap defs
= new DefinitionMap();
27 private Memory memory
= new Memory(4096);
28 private Pointer instructionPointer
= new Pointer(0);
29 private Pointer freeMemStart
= new Pointer(2048);
31 public Pointer
getFreeMemStart() {
34 public void setFreeMemStart(Pointer p
) {
37 public void advanceFreeMemStart(int n
) {
38 freeMemStart
= new Pointer(freeMemStart
.getAsInt()+n
);
40 public void advanceInstructionPointer(int n
) {
41 instructionPointer
= new Pointer(instructionPointer
.getAsInt()+n
);
43 public Stack
getStack() {
46 public DefinitionMap
getDefinitions() {
49 public Memory
getMemory() {
52 public Environment() {
54 public String
toString() {
55 return "{ ENVIRONMENT = \nFREEMEMSTART = "+freeMemStart
+"\n"+stack
+ "\n" + defs
+"}\n";