public class ProgramFactory extends java.lang.Object implements asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
| Constructor and Description |
|---|
ProgramFactory() |
| Modifier and Type | Method and Description |
|---|---|
Expression |
createAdditionExpression(Expression e1,
Expression e2,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to the addition of the values
obtained by evaluating the first and second given expressions.
|
Expression |
createAnyExpression(asteroids.part3.programs.SourceLocation location)
Creates an expression that evaluates to an arbitrary entity in the world
of the ship that is executing the program.
|
Statement |
createAssignmentStatement(java.lang.String variableName,
Expression value,
asteroids.part3.programs.SourceLocation sourceLocation)
Create a statement that represents the assignment of a variable.
|
Expression |
createAsteroidExpression(asteroids.part3.programs.SourceLocation location)
Creates an expression that evaluates to the asteroid that is closest to
the ship that is executing the program.
|
Statement |
createBreakStatement(asteroids.part3.programs.SourceLocation sourceLocation)
Create a statement that represents a break statement.
|
Expression |
createBulletExpression(asteroids.part3.programs.SourceLocation location)
Creates an expression that evaluates to one of the bullets fired by the
ship that executes the program.
|
Expression |
createChangeSignExpression(Expression expression,
asteroids.part3.programs.SourceLocation sourceLocation)
Create an expression that evaluates to the given expression with changed
sign (i.e., negated).
|
Expression |
createDoubleLiteralExpression(double value,
asteroids.part3.programs.SourceLocation location)
Creates an expression that represents a literal double value.
|
Expression |
createEqualityExpression(Expression e1,
Expression e2,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to true if the evaluation of the
first expression yields a value that is equal to the value obtained by
evaluating the second expression.
|
Statement |
createFireStatement(asteroids.part3.programs.SourceLocation location)
Returns a statement that fires a bullet from the ship that is executing
the program.
|
Expression |
createFunctionCallExpression(java.lang.String functionName,
java.util.List<Expression> actualArgs,
asteroids.part3.programs.SourceLocation sourceLocation)
Create an expression that evaluates to result of calling the given
function with the given list of actual arguments.
|
Function |
createFunctionDefinition(java.lang.String functionName,
Statement body,
asteroids.part3.programs.SourceLocation sourceLocation)
Create a function definition involving the given function name,
parameters and body.
|
Expression |
createGetDirectionExpression(asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to the direction (in radians) of the
ship executing the program.
|
Expression |
createGetRadiusExpression(Expression expression,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to the radius of the entity to which
the given expression evaluates.
|
Expression |
createGetVXExpression(Expression expression,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to the velocity along the x-axis of
the entity to which the given expression evaluates.
|
Expression |
createGetVYExpression(Expression expression,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to the velocity along the y-axis of
the entity to which the given expression evaluates.
|
Expression |
createGetXExpression(Expression expression,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to the position along the x-axis of
the entity to which the given expression evaluates.
|
Expression |
createGetYExpression(Expression expression,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to the position along the y-axis of
the entity to which the given expression evaluates.
|
Statement |
createIfStatement(Expression condition,
Statement ifBody,
Statement elseBody,
asteroids.part3.programs.SourceLocation sourceLocation)
Create an if-then-else statement.
|
Expression |
createLessThanExpression(Expression e1,
Expression e2,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to true if the evaluation of the
first expression yields a value that is less than the value obtained by
evaluating the second expression.
|
Expression |
createMultiplicationExpression(Expression e1,
Expression e2,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to the multiplication of the values
obtained by evaluating the first and second given expressions.
|
Expression |
createNotExpression(Expression expression,
asteroids.part3.programs.SourceLocation sourceLocation)
Create an expression that evaluates to true when the given expression
evaluates to false, and vice versa.
|
Expression |
createNullExpression(asteroids.part3.programs.SourceLocation location)
Creates an expression that represents the null value.
|
Expression |
createPlanetExpression(asteroids.part3.programs.SourceLocation location)
Creates an expression that evaluates to the minor planet that is closest
to the ship that is executing the program.
|
Expression |
createPlanetoidExpression(asteroids.part3.programs.SourceLocation location)
Creates an expression that evaluates to the planetoid that is closest to
the ship that is executing the program.
|
Statement |
createPrintStatement(Expression value,
asteroids.part3.programs.SourceLocation sourceLocation)
Create a print statement that prints the value obtained by evaluating the
given expression.
|
Program |
createProgram(java.util.List<Function> functions,
Statement main)
Create a program from the given arguments.
|
Expression |
createReadParameterExpression(java.lang.String parameterName,
asteroids.part3.programs.SourceLocation sourceLocation)
Create an expression that evaluates to the current value of the given
parameter.
|
Expression |
createReadVariableExpression(java.lang.String variableName,
asteroids.part3.programs.SourceLocation sourceLocation)
Create an expression that evaluates to the current value of the given
variable.
|
Statement |
createReturnStatement(Expression value,
asteroids.part3.programs.SourceLocation sourceLocation)
Create a statement that represents a return statement.
|
Expression |
createSelfExpression(asteroids.part3.programs.SourceLocation location)
Creates an expression that represents the self value, evaluating to the
ship that executes the program.
|
Statement |
createSequenceStatement(java.util.List<Statement> statements,
asteroids.part3.programs.SourceLocation sourceLocation)
Create a sequence of statements.
|
Expression |
createShipExpression(asteroids.part3.programs.SourceLocation location)
Creates an expression that evaluates to the ship that is closest to the
ship that is executing the program.
|
Statement |
createSkipStatement(asteroids.part3.programs.SourceLocation location)
Returns a statement that does nothing.
|
Expression |
createSqrtExpression(Expression expression,
asteroids.part3.programs.SourceLocation location)
Returns an expression that evaluates to the square root of the value
obtained by evaluating the given expression.
|
Statement |
createThrustOffStatement(asteroids.part3.programs.SourceLocation location)
Returns a statement that turns the thruster of the ship executing the
program off.
|
Statement |
createThrustOnStatement(asteroids.part3.programs.SourceLocation location)
Returns a statement that turns the thruster of the ship executing the
program on.
|
Statement |
createTurnStatement(Expression angle,
asteroids.part3.programs.SourceLocation location)
Returns a statement that makes the ship that is executing the program
turn by the given amount.
|
Statement |
createWhileStatement(Expression condition,
Statement body,
asteroids.part3.programs.SourceLocation sourceLocation)
Create a statement that represents a while loop.
|
public Program createProgram(java.util.List<Function> functions, Statement main)
asteroids.part3.programs.IProgramFactorycreateProgram in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>functions - The function definitions for the program.main - The main statement of the program. Most likely this is a
sequence statement.public Function createFunctionDefinition(java.lang.String functionName, Statement body, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateFunctionDefinition in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>functionName - The name of the functionbody - The body of the function.public Statement createAssignmentStatement(java.lang.String variableName, Expression value, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateAssignmentStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>variableName - The name of the assigned variablevalue - An expression that evaluates to the assigned valuepublic Statement createWhileStatement(Expression condition, Statement body, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateWhileStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>condition - The condition of the while loopbody - The body of the loop (most likely this is a sequence
statement).public Statement createBreakStatement(asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateBreakStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Statement createReturnStatement(Expression value, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateReturnStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>value - An expression that evaluates to the value to be returnedpublic Statement createIfStatement(Expression condition, Statement ifBody, Statement elseBody, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateIfStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>condition - The condition of the if statementifBody - The body of the if-part, which must be executed when the
condition evaluates to trueelseBody - The body of the else-part, which must be executed when the
condition evaluates to false. Can be null if no else clause is
specified.public Statement createPrintStatement(Expression value, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreatePrintStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>value - The expression to evaluate and printpublic Statement createSequenceStatement(java.util.List<Statement> statements, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateSequenceStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>statements - The statements that must be executed in the given order.public Expression createReadVariableExpression(java.lang.String variableName, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateReadVariableExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>variableName - The name of the variable to read.public Expression createReadParameterExpression(java.lang.String parameterName, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateReadParameterExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>parameterName - The name of the parameter to read.public Expression createFunctionCallExpression(java.lang.String functionName, java.util.List<Expression> actualArgs, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateFunctionCallExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>functionName - The name of the function to call.actualArgs - A list of expressions that act as actual arguments.public Expression createChangeSignExpression(Expression expression, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateChangeSignExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createNotExpression(Expression expression, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactorycreateNotExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createDoubleLiteralExpression(double value, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateDoubleLiteralExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createNullExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateNullExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createSelfExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateSelfExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createShipExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateShipExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createAsteroidExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateAsteroidExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createPlanetoidExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreatePlanetoidExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createBulletExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateBulletExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createPlanetExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreatePlanetExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createAnyExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateAnyExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createGetXExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateGetXExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createGetYExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateGetYExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createGetVXExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateGetVXExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createGetVYExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateGetVYExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createGetDirectionExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateGetDirectionExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createGetRadiusExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateGetRadiusExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createLessThanExpression(Expression e1, Expression e2, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateLessThanExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createEqualityExpression(Expression e1, Expression e2, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateEqualityExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createAdditionExpression(Expression e1, Expression e2, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateAdditionExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createMultiplicationExpression(Expression e1, Expression e2, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateMultiplicationExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Expression createSqrtExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateSqrtExpression in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Statement createThrustOnStatement(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateThrustOnStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Statement createThrustOffStatement(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateThrustOffStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Statement createFireStatement(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateFireStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Statement createTurnStatement(Expression angle, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateTurnStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>public Statement createSkipStatement(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactorycreateSkipStatement in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>