Example #1
0
 @Override
 public void Hash(Hash hash) {
   encoder.encode(hash.pairs.size());
   for (KeyValuePair<Operand, Operand> pair : hash.pairs) {
     encoder.encode(pair.getKey());
     encoder.encode(pair.getValue());
   }
 }
Example #2
0
  @Override
  public void TemporaryLocalVariable(TemporaryLocalVariable variable) {
    encoder.encode((byte) variable.getType().ordinal());

    if (variable.getType() == TemporaryVariableType.CLOSURE) {
      encoder.encode(((TemporaryClosureVariable) variable).getClosureId());
    }
    encoder.encode(variable.getOffset());
  }
Example #3
0
  @Override
  public void Array(Array array) {
    Operand[] elts = array.getElts();

    encoder.encode(elts.length);
    for (Operand elt : elts) {
      encode(elt);
    }
  }
Example #4
0
 @Override
 public void AsString(AsString asstring) {
   encoder.encode(asstring.getSource());
 }
Example #5
0
 @Override
 public void Backref(Backref backref) {
   encoder.encode(backref.type);
 }
Example #6
0
 @Override
 public void Splat(Splat splat) {
   encode(splat.getArray());
   encoder.encode(splat.unsplatArgs);
 }
Example #7
0
 @Override
 public void WrappedIRClosure(WrappedIRClosure scope) {
   encoder.encode(scope.getSelf());
   encoder.encode(scope.getClosure());
 }
Example #8
0
 @Override
 public void Fixnum(Fixnum fixnum) {
   encoder.encode(fixnum.value);
 }
Example #9
0
 @Override
 public void GlobalVariable(GlobalVariable variable) {
   encoder.encode(variable.getName());
 }
Example #10
0
 // Only for CURRENT_SCOPE and CURRENT_MODULE now which is weird
 @Override
 public void TemporaryVariable(TemporaryVariable variable) {
   encoder.encode((byte) variable.getType().ordinal());
   encoder.encode(((TemporaryLocalVariable) variable).getOffset());
 }
Example #11
0
 @Override
 public void ClosureLocalVariable(ClosureLocalVariable variable) {
   // We can refigure out closure scope it is in.
   encoder.encode(variable.getName());
   encoder.encode(variable.getScopeDepth());
 }
Example #12
0
 // FIXME: Potentially some of these values should not need to have their type prefixed.
 public void encode(Operand operand) {
   encoder.encode(operand.getOperandType().getCoded());
   operand.visit(this);
 }
Example #13
0
 @Override
 public void Regexp(Regexp regexp) {
   encode(regexp.getRegexp());
   encoder.encode(regexp.options.isEncodingNone());
   encoder.encode(regexp.options.toEmbeddedOptions());
 }
Example #14
0
 @Override
 public void TemporaryBooleanVariable(TemporaryBooleanVariable variable) {
   encoder.encode((byte) variable.getType().ordinal());
   encoder.encode(variable.getOffset());
 }
Example #15
0
 @Override
 public void Symbol(Symbol symbol) {
   encoder.encode(symbol.getName());
 }
Example #16
0
 @Override
 public void StringLiteral(StringLiteral stringliteral) {
   encoder.encode(stringliteral.string);
 }
Example #17
0
 @Override
 public void Bignum(Bignum bignum) {
   encoder.encode(bignum.value.toString());
 }
Example #18
0
 @Override
 public void UnboxedBoolean(org.jruby.ir.operands.UnboxedBoolean booleanliteral) {
   encoder.encode(booleanliteral.isTrue());
 }
Example #19
0
 @Override
 public void Boolean(Boolean booleanliteral) {
   encoder.encode(booleanliteral.isTrue());
 }
Example #20
0
 @Override
 public void UnboxedFixnum(UnboxedFixnum fixnum) {
   encoder.encode(fixnum.value);
 }
Example #21
0
 @Override
 public void CurrentScope(CurrentScope scope) {
   encoder.encode(scope.getScopeNestingDepth());
 }
Example #22
0
 @Override
 public void IRException(IRException irexception) {
   encoder.encode((byte) irexception.getType().ordinal());
 }
Example #23
0
 @Override
 public void Float(Float flote) {
   encoder.encode(flote.value);
 }
Example #24
0
 @Override
 public void NthRef(NthRef nthref) {
   encoder.encode(nthref.matchNumber);
 }
Example #25
0
 @Override
 public void UnboxedFloat(UnboxedFloat flote) {
   encoder.encode(flote.value);
 }
Example #26
0
 @Override
 public void ScopeModule(ScopeModule scope) {
   encoder.encode(scope.getScopeModuleDepth());
 }
Example #27
0
 @Override
 public void Label(Label label) {
   encoder.encode(label.prefix);
   encoder.encode(label.id);
 }
Example #28
0
 @Override
 public void LocalVariable(LocalVariable variable) {
   encoder.encode(variable.getName());
   encoder.encode(variable.getScopeDepth());
 }