package org.whole.examples.patterns.source;
public interface SampleAbstractFactory {
public Statement createWhile(Expression exp, Statement stm);
public Statement createIf(Expression exp, Statement thenStm, Statement elseStm);
public Statement createEmpty();
public Statement createAssignment(Expression var, Expression exp);
public Statement createBlock(Statement[] stm);
public Literal createBooleanLiteral(boolean val);
public Literal createIntLiteral(int val);
public Expression createVariable(String name);
public Expression createAddition(Expression exp1, Expression exp2);
public Expression createSubtraction(Expression exp1, Expression exp2);
public Expression createMultiplication(Expression exp1, Expression exp2);
public Expression createDivision(Expression exp1, Expression exp2);
public Expression createAnd(Expression exp1, Expression exp2);
public Expression createOr(Expression exp1, Expression exp2);
public Expression createNot(Expression exp);
public Expression createEquals(Expression exp1, Expression exp2);
public Expression createLessThan(Expression exp1, Expression exp2);
public Expression createGreaterThan(Expression exp1, Expression exp2);
}