initial import
[jr4.git] / src / ar / com / ank / lang / r4 / Environment.java
blob453df53ec4fde01c00bec7d31b687005a2423a82
1 /*
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() {
32 return freeMemStart;
34 public void setFreeMemStart(Pointer p) {
35 freeMemStart = 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() {
44 return stack;
46 public DefinitionMap getDefinitions() {
47 return this.defs;
49 public Memory getMemory() {
50 return memory;
52 public Environment() {
54 public String toString() {
55 return "{ ENVIRONMENT = \nFREEMEMSTART = "+freeMemStart+"\n"+stack + "\n" + defs+"}\n";