cbc/net/loveruby/cflat/ast/IntegerLiteralNode.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);
}
}