package com.babel17.interpreter.program;
import java.util.*;
public abstract class Program {
public final static int KIND_VAR = 0;
public final static int KIND_SEND_MESSAGE = 1;
public final static int KIND_VALUE = 2;
public final static int KIND_CONSTR = 3;
public final static int KIND_APPLY = 4;
public final static int KIND_VAL = 5;
public final static int KIND_VAL_WITH = 6;
public final static int KIND_BEGIN = 7;
public final static int KIND_FOR = 8;
public final static int KIND_MATCH = 9;
public final static int KIND_WHILE = 10;
public final static int KIND_OBJECT = 11;
public final static int KIND_LETREC = 12;
public final static int KIND_YIELD = 13;
public final static int KIND_WITH = 14;
public final static int KIND_IF = 15;
public final static int KIND_LAMBDA = 16;
public final static int KIND_COMPARE = 17;
public abstract int kind();
/*private SortedSet<Integer> freeVars = null;
public SortedSet<Integer> freeVars() {
if (freeVars == null)
freeVars = Collections.unmodifiableSortedSet(calcFreeVars());
return freeVars;
}
protected abstract SortedSet<Integer> calcFreeVars();*/
}