2018-12-18 03:48:29 +00:00
|
|
|
package nl.grauw.glass.instructions;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.OutputStream;
|
|
|
|
|
|
|
|
import nl.grauw.glass.Scope;
|
|
|
|
import nl.grauw.glass.expressions.Expression;
|
|
|
|
import nl.grauw.glass.expressions.Schema;
|
|
|
|
|
|
|
|
public class Org extends InstructionFactory {
|
2018-12-18 03:49:56 +00:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public InstructionObject createObject(Scope context, Expression arguments) {
|
|
|
|
if (Org_N.ARGUMENTS.check(arguments)) {
|
|
|
|
return new Org_N(context, arguments.getElement(0));
|
|
|
|
}
|
|
|
|
throw new ArgumentException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static class Org_N extends Empty.EmptyObject {
|
|
|
|
|
|
|
|
public static Schema ARGUMENTS = new Schema(Schema.INTEGER);
|
|
|
|
|
|
|
|
private Expression argument;
|
|
|
|
|
|
|
|
public Org_N(Scope context, Expression argument) {
|
|
|
|
super(context);
|
|
|
|
this.argument = argument;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getAddress() {
|
|
|
|
return argument.getAddress();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int resolve(int address) {
|
|
|
|
super.resolve(address);
|
|
|
|
return getAddress();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void generateObjectCode(OutputStream output) throws IOException {
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2018-12-18 03:48:29 +00:00
|
|
|
}
|