mirror of https://github.com/aamine/cbc
36 lines
922 B
Java
36 lines
922 B
Java
package net.loveruby.cflat.ast;
|
|
import net.loveruby.cflat.type.*;
|
|
import net.loveruby.cflat.asm.MemoryReference;
|
|
import net.loveruby.cflat.asm.ImmediateValue;
|
|
import net.loveruby.cflat.asm.IntegerLiteral;
|
|
|
|
public class IntegerLiteralNode extends LiteralNode {
|
|
protected long value;
|
|
|
|
public IntegerLiteralNode(Location loc, TypeRef ref, long value) {
|
|
super(loc, ref);
|
|
this.value = value;
|
|
}
|
|
|
|
public long value() {
|
|
return value;
|
|
}
|
|
|
|
public ImmediateValue asmValue() {
|
|
return new ImmediateValue(new IntegerLiteral(value));
|
|
}
|
|
|
|
public MemoryReference memref() {
|
|
throw new Error("must not happen: IntegerLiteralNode#memref");
|
|
}
|
|
|
|
protected void _dump(Dumper d) {
|
|
d.printMember("typeNode", typeNode);
|
|
d.printMember("value", value);
|
|
}
|
|
|
|
public <S,E> E accept(ASTVisitor<S,E> visitor) {
|
|
return visitor.visit(this);
|
|
}
|
|
}
|