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.IProgramFactory
createProgram
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.IProgramFactory
createFunctionDefinition
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.IProgramFactory
createAssignmentStatement
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.IProgramFactory
createWhileStatement
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.IProgramFactory
createBreakStatement
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Statement createReturnStatement(Expression value, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactory
createReturnStatement
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.IProgramFactory
createIfStatement
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.IProgramFactory
createPrintStatement
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.IProgramFactory
createSequenceStatement
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.IProgramFactory
createReadVariableExpression
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.IProgramFactory
createReadParameterExpression
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.IProgramFactory
createFunctionCallExpression
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.IProgramFactory
createChangeSignExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createNotExpression(Expression expression, asteroids.part3.programs.SourceLocation sourceLocation)
asteroids.part3.programs.IProgramFactory
createNotExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createDoubleLiteralExpression(double value, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createDoubleLiteralExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createNullExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createNullExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createSelfExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createSelfExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createShipExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createShipExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createAsteroidExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createAsteroidExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createPlanetoidExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createPlanetoidExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createBulletExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createBulletExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createPlanetExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createPlanetExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createAnyExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createAnyExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createGetXExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createGetXExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createGetYExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createGetYExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createGetVXExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createGetVXExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createGetVYExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createGetVYExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createGetDirectionExpression(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createGetDirectionExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createGetRadiusExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createGetRadiusExpression
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.IProgramFactory
createLessThanExpression
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.IProgramFactory
createEqualityExpression
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.IProgramFactory
createAdditionExpression
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.IProgramFactory
createMultiplicationExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Expression createSqrtExpression(Expression expression, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createSqrtExpression
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Statement createThrustOnStatement(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createThrustOnStatement
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Statement createThrustOffStatement(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createThrustOffStatement
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Statement createFireStatement(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createFireStatement
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Statement createTurnStatement(Expression angle, asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createTurnStatement
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>
public Statement createSkipStatement(asteroids.part3.programs.SourceLocation location)
asteroids.part3.programs.IProgramFactory
createSkipStatement
in interface asteroids.part3.programs.IProgramFactory<Expression,Statement,Function,Program>