亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? createbcode.jrag

?? JDK1.4編譯器后端
?? JRAG
?? 第 1 頁 / 共 4 頁
字號:
    gen.emit(type().arrayLoad());  }    // select the typed operation for a compound assign expression  public void AssignExpr.createAssignOp(CodeGeneration gen, TypeDecl type) {    throw new Error("Operation createAssignOp is not implemented for " + getClass().getName());  }  public void AssignMulExpr.createAssignOp(CodeGeneration gen, TypeDecl type)     { type.mul(gen); }  public void AssignDivExpr.createAssignOp(CodeGeneration gen, TypeDecl type)     { type.div(gen); }  public void AssignModExpr.createAssignOp(CodeGeneration gen, TypeDecl type)     { type.rem(gen); }  public void AssignPlusExpr.createAssignOp(CodeGeneration gen, TypeDecl type)    { type.add(gen); }  public void AssignMinusExpr.createAssignOp(CodeGeneration gen, TypeDecl type)   { type.sub(gen); }  public void AssignLShiftExpr.createAssignOp(CodeGeneration gen, TypeDecl type)  { type.shl(gen); }  public void AssignRShiftExpr.createAssignOp(CodeGeneration gen, TypeDecl type)  { type.shr(gen); }  public void AssignURShiftExpr.createAssignOp(CodeGeneration gen, TypeDecl type) { type.ushr(gen); }  public void AssignAndExpr.createAssignOp(CodeGeneration gen, TypeDecl type)     { type.bitand(gen); }  public void AssignXorExpr.createAssignOp(CodeGeneration gen, TypeDecl type)     { type.bitxor(gen); }  public void AssignOrExpr.createAssignOp(CodeGeneration gen, TypeDecl type)      { type.bitor(gen); }  public void AbstractDot.createBCode(CodeGeneration gen) {    lastAccess().createBCode(gen);  }  public void VarAccess.createBCode(CodeGeneration gen) {    Variable v = decl();    if(v instanceof VariableDeclaration) {      VariableDeclaration decl = (VariableDeclaration)v;      if(decl.hostType() == hostType())        decl.type().emitLoadLocal(gen, decl.localNum());      else        emitLoadLocalInNestedClass(gen, decl);    }    else if(v instanceof ParameterDeclaration) {      ParameterDeclaration decl = (ParameterDeclaration)v;      if(decl.hostType() == hostType())        decl.type().emitLoadLocal(gen, decl.localNum());      else        emitLoadLocalInNestedClass(gen, decl);    }    else if(v instanceof FieldDeclaration) {      FieldDeclaration f = (FieldDeclaration)v;      createLoadQualifier(gen);      if(f.isConstant() && (f.type().isPrimitive() || f.type().isString())) {        if(!f.isStatic())          fieldQualifierType().emitPop(gen);        f.constant().createBCode(gen);      }      else if(f.isPrivate() && !hostType().hasField(v.name()))        f.createAccessor(fieldQualifierType()).emitInvokeMethod(gen, fieldQualifierType());      else        f.emitLoadField(gen, fieldQualifierType());    }  }  syn boolean TypeDecl.needsAccessorFor(Variable v) {    if(!(v instanceof FieldDeclaration))      return false;    FieldDeclaration f = (FieldDeclaration)v;    if(f.isConstant() && (f.type().isPrimitive() || f.type().isString()))      return false;    return f.isPrivate() && !hasField(v.name());  }  inh boolean Access.inExplicitConstructorInvocation();  public void Access.emitLoadLocalInNestedClass(CodeGeneration gen, Variable v) {    if(inExplicitConstructorInvocation() && enclosingBodyDecl() instanceof ConstructorDecl) {      ConstructorDecl c = (ConstructorDecl)enclosingBodyDecl();      v.type().emitLoadLocal(gen, c.localIndexOfEnclosingVariable(v));    }    else {      String classname = hostType().constantPoolName();      String      desc = v.type().typeDescriptor();      String      name = "val$" + v.name();      int index = gen.constantPool().addFieldref(classname, name, desc);      gen.emit(Bytecode.ALOAD_0);      gen.emit(Bytecode.GETFIELD, v.type().variableSize() - 1).add2(index);    }  }  protected void VarAccess.createLoadQualifier(CodeGeneration gen) {    Variable v = decl();    if(v instanceof FieldDeclaration) {      FieldDeclaration f = (FieldDeclaration)v;      if(hasPrevExpr()) {        // load explicit qualifier        prevExpr().createBCode(gen);        // pop qualifier stack element for class variables        // this qualifier must be computed to ensure side effects        if(!prevExpr().isTypeAccess() && f.isClassVariable())          prevExpr().type().emitPop(gen);      }      else if(f.isInstanceVariable()) {        emitThis(gen, fieldQualifierType());      }    }  }  public void MethodAccess.createBCode(CodeGeneration gen) {    createLoadQualifier(gen);    if(decl().type().isUnknown()) {      System.err.println("Could not bind " + this);      for (int i = 0; i < getNumArg(); ++i) {        System.err.println("Argument " + getArg(i) + " is of type " + getArg(i).type().typeName());        if(getArg(i).varDecl() != null) System.err.println(getArg(i).varDecl() + " in " + getArg(i).varDecl().hostType().typeName());      }      if(isQualified())        System.err.println("Qualifier " + qualifier() + " is of type " + qualifier().type().typeName());      throw new Error("Could not bind " + this);    }    if(decl().getNumParameter() != getNumArg()) {      System.out.println(this + " does not have the same number of arguments as " + decl());    }    for (int i = 0; i < getNumArg(); ++i) {      getArg(i).createBCode(gen);      getArg(i).type().emitCastTo(gen, decl().getParameter(i).type()); // MethodInvocationConversion    }    /*    if(decl().isPrivate() && !hostType().hasMethod(name())) {      decl().emitInvokeMethodAccessor(gen, methodQualifierType());    }        else*/ {      if(!decl().isStatic() && isQualified() && prevExpr().isSuperAccess()) {        if(!hostType().instanceOf(prevExpr().type()))          decl().createSuperAccessor(superAccessorTarget()).emitInvokeMethod(gen, superAccessorTarget());        else          decl().emitInvokeSpecialMethod(gen, methodQualifierType());      }      else        decl().emitInvokeMethod(gen, methodQualifierType());    }  }  protected void MethodAccess.createLoadQualifier(CodeGeneration gen) {    MethodDecl m = decl();    if(hasPrevExpr()) {      // load explicit qualifier      prevExpr().createBCode(gen);      // pop qualifier stack element for class variables      // this qualifier must be computed to ensure side effects      if(m.isStatic() && !prevExpr().isTypeAccess())        prevExpr().type().emitPop(gen);    }    else if(!m.isStatic()) {      // load implicit this qualifier      emitThis(gen, methodQualifierType());    }  }  public void ArrayAccess.createBCode(CodeGeneration gen) {    prevExpr().createBCode(gen);    getExpr().createBCode(gen);    gen.emit(type().arrayLoad());  }  public void ThisAccess.createBCode(CodeGeneration gen) {    emitThis(gen, decl());  }  public void SuperAccess.createBCode(CodeGeneration gen) {    emitThis(gen, decl());  }  // load this where hostType is the target this instance   // supporting inner classes and in explicit contructor invocations  public void Access.emitThis(CodeGeneration gen, TypeDecl targetDecl) {    if(targetDecl == hostType())      gen.emit(Bytecode.ALOAD_0);    else {      TypeDecl enclosing = hostType();      if(inExplicitConstructorInvocation()) {        gen.emit(Bytecode.ALOAD_1);        enclosing = enclosing.enclosing();      }      else {        gen.emit(Bytecode.ALOAD_0);      }      while(enclosing != targetDecl) {        String classname = enclosing.constantPoolName();        enclosing = enclosing.enclosingType();        String desc = enclosing.typeDescriptor();        int index = gen.constantPool().addFieldref(classname, "this$0", desc);        gen.emit(Bytecode.GETFIELD, 0).add2(index);      }    }  }  public void ConstructorAccess.createBCode(CodeGeneration gen) {    ConstructorDecl c = decl();    int index = 0;    // this    gen.emitLoadReference(index++);    // this$0    if(c.needsEnclosing())      gen.emitLoadReference(index++);    if(c.needsSuperEnclosing())      gen.emitLoadReference(index++);    // args    for (int i = 0; i < getNumArg(); ++i) {      getArg(i).createBCode(gen);      getArg(i).type().emitCastTo(gen, decl().getParameter(i).type()); // MethodInvocationConversion    }    if(decl().isPrivate() && decl().hostType() != hostType()) {      gen.emit(Bytecode.ACONST_NULL);      decl().createAccessor().emitInvokeConstructor(gen);    }    else {      decl().emitInvokeConstructor(gen);    }  }    public void SuperConstructorAccess.createBCode(CodeGeneration gen) {    ConstructorDecl c = decl();        // this    gen.emit(Bytecode.ALOAD_0);        if(c.needsEnclosing()) {      if(hasPrevExpr() && !prevExpr().isTypeAccess()) {        prevExpr().createBCode(gen);        gen.emitDup();        int index = gen.constantPool().addMethodref("java/lang/Object", "getClass", "()Ljava/lang/Class;");        gen.emit(Bytecode.INVOKEVIRTUAL, 0).add2(index);        gen.emitPop();      }      else {        if(hostType().needsSuperEnclosing()) {          if(hostType().needsEnclosing())            gen.emit(Bytecode.ALOAD_2);          else            gen.emit(Bytecode.ALOAD_1);        }        else {          emitThis(gen, superConstructorQualifier(c.hostType().enclosingType()));        }      }    }    // args    for (int i = 0; i < getNumArg(); ++i) {      getArg(i).createBCode(gen);      getArg(i).type().emitCastTo(gen, decl().getParameter(i).type()); // MethodInvocationConversion    }    if(decl().isPrivate() && decl().hostType() != hostType()) {      gen.emit(Bytecode.ACONST_NULL);      decl().createAccessor().emitInvokeConstructor(gen);    }    else {      decl().emitInvokeConstructor(gen);    }  }  // 15.9.2  private void ClassInstanceExpr.emitLocalEnclosing(CodeGeneration gen, TypeDecl localClass) {    if(!localClass.inStaticContext()) {      emitThis(gen, localClass.enclosingType());    }  }  private void ClassInstanceExpr.emitInnerMemberEnclosing(CodeGeneration gen, TypeDecl innerClass) {    if(hasPrevExpr()) {      prevExpr().createBCode(gen);      gen.emitDup();      int index = gen.constantPool().addMethodref("java/lang/Object", "getClass", "()Ljava/lang/Class;");      gen.emit(Bytecode.INVOKEVIRTUAL, 0).add2(index);      gen.emitPop();    }    else {      TypeDecl enclosing = hostType();      while(enclosing != null && !enclosing.hasType(innerClass.name()))        enclosing = enclosing.enclosingType();      if(enclosing == null)        throw new Error(errorPrefix() + "Could not find enclosing for " + this);      else        emitThis(gen, enclosing);    }  }  public void ClassInstanceExpr.createBCode(CodeGeneration gen) {    type().emitNew(gen);    type().emitDup(gen);    // 15.9.2 first part    if(type().isAnonymous()) {      if(type().isAnonymousInNonStaticContext()) {        if(type().inExplicitConstructorInvocation())          gen.emit(Bytecode.ALOAD_1);        else          gen.emit(Bytecode.ALOAD_0);      }      // 15.9.2 second part      ClassDecl C = (ClassDecl)type();      TypeDecl S = C.superclass();      if(S.isLocalClass()) {        if(!type().inStaticContext())          emitLocalEnclosing(gen, S);      }      else if(S.isInnerType()) {        emitInnerMemberEnclosing(gen, S);      }    }    else if(type().isLocalClass()) {      if(!type().inStaticContext())        emitLocalEnclosing(gen, type());    }    else if(type().isInnerType()) {      emitInnerMemberEnclosing(gen, type());    }    /*    // 15.9.2 first part    if(type().isAnonymous()) {      if(type().isAnonymousInNonStaticContext()) {        if(type().inExplicitConstructorInvocation())          gen.emit(Bytecode.ALOAD_1);        else          gen.emit(Bytecode.ALOAD_0);      }      if(type().needsSuperEnclosing()) {        // 15.9.2 second part        ClassDecl C = (ClassDecl)type();        TypeDecl S = C.superclass();        if(S.isLocalClass()) {          emitLocalEnclosing(gen, S);        }        else if(S.isInnerType()) {          emitInnerMemberEnclosing(gen, S);        }      }    }    else if(type().isLocalClass()) {      emitLocalEnclosing(gen, type());    }    else if(type().isInnerType()) {      emitInnerMemberEnclosing(gen, type());    }    */    for (int i = 0; i < getNumArg(); ++i) {      getArg(i).createBCode(gen);      getArg(i).type().emitCastTo(gen, decl().getParameter(i).type()); // MethodInvocationConversion    }        if(decl().isPrivate() && type() != hostType()) {      gen.emit(Bytecode.ACONST_NULL);      decl().createAccessor().emitInvokeConstructor(gen);    }    else {      decl().emitInvokeConstructor(gen);    }  }  public void ArrayCreationExpr.createBCode(CodeGeneration gen) {    if(hasArrayInit()){      getArrayInit().createBCode(gen);    }    else {      getTypeAccess().createBCode(gen); // push array sizes      if(type().componentType().isPrimitive()) {        gen.emit(Bytecode.NEWARRAY).add(type().componentType().arrayPrimitiveTypeDescriptor());      }      else {        if(numArrays() == 1) {          String n = type().componentType().arrayTypeDescriptor();          int index = gen.constantPool().addClass(n);          gen.emit(Bytecode.ANEWARRAY).add2(index);        }        else {          String n = type().arrayTypeDescriptor();          int index = gen.constantPool().addClass(n);          gen.emit(Bytecode.MULTIANEWARRAY, 1 - numArrays()).add2(index).add(numArrays());        }      }    }  }    public void ArrayInit.createBCode(CodeGeneration gen) {    IntegerLiteral.push(gen, getNumInit());    if(type().componentType().isPrimitive()) {      gen.emit(Bytecode.NEWARRAY).add(type().componentType().arrayPrimitiveTypeDescriptor());    }     else {      String n = type().componentType().arrayTypeDescriptor();      int index = gen.constantPool().addClass(n);      gen.emit(Bytecode.ANEWARRAY).add2(index);    }    for(int i = 0; i < getNumInit(); i++) {      gen.emitDup();      IntegerLiteral.push(gen, i);      getInit(i).createBCode(gen);      if(getInit(i) instanceof ArrayInit)        gen.emit(Bytecode.AASTORE);      else {        getInit(i).type().emitAssignConvTo(gen, expectedType()); // AssignConversion        gen.emit(expectedType().arrayStore());      }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
92国产精品观看| 另类小说视频一区二区| 在线观看欧美精品| 一区二区三区四区av| 欧美日韩国产另类不卡| 日韩黄色小视频| 国产亚洲一区二区三区在线观看| 91看片淫黄大片一级| 伊人夜夜躁av伊人久久| 欧美三级乱人伦电影| 日韩高清一区二区| 精品国产人成亚洲区| 精久久久久久久久久久| 国产日韩欧美制服另类| 一本一本久久a久久精品综合麻豆| 亚洲久本草在线中文字幕| 欧美日韩高清一区二区三区| 美国精品在线观看| 国产精品伦理一区二区| 欧美日韩一级视频| 韩国精品一区二区| 中文字幕日韩欧美一区二区三区| 欧美体内she精高潮| 男女激情视频一区| 国产精品日韩精品欧美在线| 欧美在线free| 精品夜夜嗨av一区二区三区| 99视频精品在线| 中文字幕不卡在线观看| 欧美亚洲尤物久久| 激情欧美一区二区| 成人免费在线观看入口| 欧美片在线播放| 国产成人无遮挡在线视频| 亚洲自拍偷拍欧美| www成人在线观看| 色综合久久综合中文综合网| 激情综合色综合久久| 亚洲一区二区av在线| 国产人伦精品一区二区| 欧美日韩mp4| 91亚洲精华国产精华精华液| 久久精品av麻豆的观看方式| 亚洲精品成人天堂一二三| 久久久久久日产精品| 91精品在线麻豆| 色哦色哦哦色天天综合| 成人精品国产福利| 黑人精品欧美一区二区蜜桃| 亚洲成av人在线观看| 中文字幕av免费专区久久| 日韩三级.com| 欧美久久久久久久久久| 精品一区二区综合| 亚洲老妇xxxxxx| 亚洲精品一区二区三区99| 欧美日韩免费在线视频| 91欧美一区二区| 国产成人av福利| 国内成人精品2018免费看| 五月激情综合婷婷| 亚洲一区二区三区在线播放| 国产精品久久久久久久久久久免费看 | 欧美高清在线精品一区| 日韩精品一区二区三区swag| 欧美美女直播网站| 91高清视频在线| 91麻豆视频网站| www.综合网.com| 国产v日产∨综合v精品视频| 国产一区二区h| 国产精品一区二区三区四区| 久久成人久久爱| 久久99精品一区二区三区三区| 欧美a一区二区| 欧美aⅴ一区二区三区视频| 性感美女极品91精品| 亚洲图片欧美色图| 亚洲电影在线免费观看| 亚洲成a人片在线不卡一二三区 | 国产精品嫩草99a| 国产欧美日韩在线| 国产精品久久久久久久久久久免费看| 亚洲国产精品激情在线观看| 国产精品人人做人人爽人人添| 国产性色一区二区| 中文字幕亚洲电影| 亚洲最大成人综合| 日韩影院免费视频| 蜜桃一区二区三区在线观看| 国产一区二区不卡| 99视频有精品| 欧美在线999| 日韩美女在线视频| 中文字幕av一区二区三区高 | 亚洲欧美日本韩国| 一区二区三区影院| 爽好多水快深点欧美视频| 麻豆免费精品视频| 成人激情文学综合网| 91久久国产综合久久| 91精品久久久久久久99蜜桃| 亚洲精品一线二线三线| 中文字幕一区二区三区视频| 亚洲成年人影院| 狠狠色丁香久久婷婷综合丁香| 成人国产免费视频| 欧美色精品天天在线观看视频| 精品国产乱码久久久久久老虎 | 综合久久久久久| 亚洲成人av中文| 国产精品香蕉一区二区三区| 一本久久综合亚洲鲁鲁五月天| 欧美人动与zoxxxx乱| 欧美精品一区二区三区蜜桃| 亚洲精品第1页| 国产一区二区三区最好精华液| 99re成人精品视频| 欧美高清激情brazzers| 国产精品免费丝袜| 日韩成人一区二区三区在线观看| 国产91精品久久久久久久网曝门| 欧美性受xxxx黑人xyx性爽| 精品福利一区二区三区免费视频| 亚洲欧美偷拍卡通变态| 久久不见久久见中文字幕免费| 91在线视频免费观看| 日韩一级欧美一级| 亚洲精品久久7777| 国产69精品久久久久777| 精品视频一区二区三区免费| 国产欧美精品一区二区三区四区 | 日韩三级视频中文字幕| 国产精品第一页第二页第三页| 免费精品99久久国产综合精品| 色综合久久久网| 国产午夜精品久久久久久久 | 欧美精品一区二区久久久| 亚洲精品免费看| 国产iv一区二区三区| 日韩欧美国产一区在线观看| 亚洲国产乱码最新视频| 99re亚洲国产精品| 国产欧美精品一区| 国产一区二区三区观看| 91精品婷婷国产综合久久| 一区二区三区四区不卡在线| 成人av电影免费在线播放| 国产亚洲一区二区三区| 久久精品999| 日韩午夜电影在线观看| 强制捆绑调教一区二区| 欧美精品在线一区二区三区| 亚洲综合丁香婷婷六月香| 99精品在线免费| 国产精品久久影院| 成人精品视频一区二区三区| 26uuu精品一区二区在线观看| 毛片av一区二区| 精品少妇一区二区三区视频免付费| 五月激情综合色| 欧美精品一卡二卡| 视频一区视频二区在线观看| 7777精品伊人久久久大香线蕉的| 亚洲成人一区在线| 欧美日韩国产一二三| 爽爽淫人综合网网站 | 精品福利一区二区三区免费视频| 秋霞电影网一区二区| 日韩一级片网站| 激情综合色综合久久| 久久久五月婷婷| 国产成人免费视频精品含羞草妖精| 久久久噜噜噜久久人人看| 福利一区福利二区| 国产精品乱码一区二区三区软件| 成人av网站免费| 亚洲女同女同女同女同女同69| 色域天天综合网| 亚洲aaa精品| 欧美一级搡bbbb搡bbbb| 久久99久久99小草精品免视看| 国产午夜亚洲精品午夜鲁丝片| 成年人国产精品| 亚洲国产日韩在线一区模特 | 欧美亚洲综合一区| 日韩成人一区二区| 久久人人爽人人爽| 91麻豆蜜桃一区二区三区| 一片黄亚洲嫩模| 精品欧美一区二区久久| 国产成人在线看| 亚洲乱码中文字幕| 69久久99精品久久久久婷婷| 久久97超碰国产精品超碰| 国产精品午夜在线| 欧美日韩视频在线一区二区| 精品一区二区三区在线播放视频 | 五月天欧美精品| 久久久无码精品亚洲日韩按摩|