Skip to content

AST Entities

Lucas Wojciechowski edited this page Nov 12, 2013 · 10 revisions
public class Program {
  public Identifier getNamespaceID();
  public PackageList getPackageList();
  public StatementList getStatements();
}
public class PackageList {
  public List<Identifier> getPackages();
  public void add(Identifier s);
  public int size();
  public Identifier get(int i);
}
public class Identifier {
  @Override
  public String toString();
}

Typename

public abstract class Typename {}
public class TupleTypename extends Typename {
  public TupleTypename();
  public Typename get(Identifier s);
  public void put(Identifier s, Typename t)
}
public class AtomicTypename extends Typename {
  public Identifier getName();
}

Statements

public abstract class Statement {}
public class AssignStatement extends Statement {
  public Identifier getID();
  public Expression getExpr();
}
public class StatementList {
  public List<Statement> getStatements();
  public void add(Statement s);
  public int size();
  public Statement get(int i);
}
public class DefineFunctionStatement extends Statement {
  public Identifier getFunctionID();
  public Identifier getInputID();
  public Typename getInputTypename();
  public Identifier getOutputID();
  public Typename getOutputTypename();
  public StatementList getStatements();
}
public class DefineVariableStatement extends Statement {
  public Identifier getName();
  public Typename getTypename();
  public Expression getInitialValueExpr();
  
}

Expressions

public abstract class Expression {

}
public class AnonymousFunctionExpression extends Expression {
  public Identifier getInputID();
  public Typename getInputTypename();
  public Identifier getOutputID();
  public Typename getOutputTypename();
  public StatementList getStatements();
}
public class TupleFieldExpression extends Expression {
  public Expression getTupleExpr();
  public Identifier getFieldID();
}
public class IntegerConstantExpression extends Expression {
  public int getValue();
}
public class IdentifierExpression extends Expression {
  public Identifier getID();
}
public class TupleFieldExpression extends Expression {
  public Expression getTupleExpr();
  public Identifier getFieldID();
}
public class FunctionEvalExpression extends Expression {
  public Identifier getFunctionName();
  public Expression getInputExpr();
}
public class BitstringExpression extends Expression {
  public String getBits();
}
public class ConditionalExpr extends Expression {
  public Expression getWhenExpr();
  public Expression getPosExpr();
  public Expression getNegExpr();
}

Exceptions

public abstract class TranslationException extends Exception {}