// Path: src/org/derric_lang/validator/SubStream.java
// public class SubStream {
// 	
// 	public final ArrayList<byte[]> fragments = new ArrayList<byte[]>();
// 
// 	public void addFragment(ValidatorInputStream stream, long size) throws IOException {
// 		if (!stream.isByteAligned()) {
// 			throw new RuntimeException("Can only read data fragments when the stream is byte aligned.");
// 		}
// 		// TODO: handle bit sizes
// 		byte[] data = new byte[(int)size];
// 		stream.read(data);
// 		fragments.add(data);
// 	}
// 	
// 	public byte[] getLast() {
// 		if (fragments.size() == 0) return null;
// 		else return fragments.get(fragments.size() -1);
// 	}
// }


import org.derric_lang.validator.SubStream;
package org.derric_lang.validator.interpreter.structure;


public class Buffer extends Type {
	
	private final SubStream _buffer;
	
	public Buffer() {
		_buffer = new SubStream();
	}
	
// Path: src/org/derric_lang/validator/SubStream.java
// public class SubStream {
// 	
// 	public final ArrayList<byte[]> fragments = new ArrayList<byte[]>();
// 
// 	public void addFragment(ValidatorInputStream stream, long size) throws IOException {
// 		if (!stream.isByteAligned()) {
// 			throw new RuntimeException("Can only read data fragments when the stream is byte aligned.");
// 		}
// 		// TODO: handle bit sizes
// 		byte[] data = new byte[(int)size];
// 		stream.read(data);
// 		fragments.add(data);
// 	}
// 	
// 	public byte[] getLast() {
// 		if (fragments.size() == 0) return null;
// 		else return fragments.get(fragments.size() -1);
// 	}
// }


// Path: src/org/derric_lang/validator/interpreter/structure/Buffer.java
import org.derric_lang.validator.SubStream;

package org.derric_lang.validator.interpreter.structure;


public class Buffer extends Type {
	
	private final SubStream _buffer;
	
	public Buffer() {
		_buffer = new SubStream();
	}
	
	public SubStream getSubStream() {