diff src/nabble/naml/compiler/Chunk.java @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/nabble/naml/compiler/Chunk.java	Thu Mar 21 19:15:52 2019 -0600
@@ -0,0 +1,31 @@
+package nabble.naml.compiler;
+
+import fschmidt.util.java.Interner;
+
+
+interface Chunk {
+	public void run(IPrintWriter out,RunState runState);
+	public boolean hasOutput();
+	public Chunk intern();
+
+	static final Interner<Chunk> interner = new Interner<Chunk>();
+
+	static final Chunk NULL = new Chunk() {
+	
+		public void run(IPrintWriter out,RunState runState) {
+			out.print((String)null);
+		}
+	
+		public boolean hasOutput() {
+			return true;
+		}
+	
+		public String toString() {
+			return "nullChunk";
+		}
+
+		@Override public Chunk intern() {
+			return this;
+		}
+	};
+}