diff src/nabble/naml/compiler/Interpreter.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/Interpreter.java	Thu Mar 21 19:15:52 2019 -0600
@@ -0,0 +1,24 @@
+package nabble.naml.compiler;
+
+
+public interface Interpreter extends Encoder {
+	public Object getArg(String param);
+	public String getArgString(String param);
+	public Template template();
+	public <T> T getFromStack(Class<T> cls);
+	public boolean hasModule(String moduleName);
+	public int callDepth();
+
+	public boolean getArgAsBoolean(String param) throws BooleanFormatException;
+	public boolean getArgAsBoolean(String param,boolean defaultValue) throws BooleanFormatException;
+	public int getArgAsInt(String param) throws NumberFormatException;
+	public int getArgAsInt(String param, int defaultValue) throws NumberFormatException;
+	public long getArgAsLong(String param) throws NumberFormatException;
+	public <T> T getArgAsNamespace(Class<T> cls,String param);
+	public Encoder getEncoder();
+	public void setEncoder(Encoder encoder);
+
+	// compile-time methods
+	public boolean hasNamespace(String namespace);
+	public boolean isInCommandStack(String commandName);
+}