package rpn.basic;

import java.util.Hashtable;
import rpn.Calculator;
import rpn.ItemArray;

public class ProcItem extends Item {
	boolean executable = true;
	Item a[];

	public ProcItem(Calculator ca, Item a[]) {
		super(ca);
		this.a = a;
	}
	
	public ProcItem(Calculator ca, Item a[], boolean b) {
		super(ca);
		this.a = a;
		executable = b;
	}
	
	public int size() {
		return(a.length);
	}
	
	public boolean getExecutable() {
		return(executable);
	}
	
	public Item item(int i) {
		return(a[i]);
	}
	
	public void exec() {
		// set up to run procedure 
		if (executable) {
			ItemArray ia = new ItemArray(a);
			ca.pushExec(ia);
		} else {
			ca.push(this);
		}
	}
	
	public String toString() {
		String s = new String("{ ");
		for (int i=0;i<a.length;i++) {
			s+= a[i].toString() + " ";
		}
		s += "}";
		return(s);
	}
}