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

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

?? codecompiler.java

?? tinyos最新版
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
// Copyright (c) Corporation for National Research Initiativespackage org.python.compiler;import org.python.parser.*;import org.python.parser.ast.*;import org.python.parser.ast.Attribute;import org.python.core.Py;import org.python.core.PyObject;import org.python.core.PyInteger;import org.python.core.PyFloat;import org.python.core.PyLong;import org.python.core.PyComplex;import org.python.core.PyException;import org.python.core.CompilerFlags;import java.io.IOException;import java.util.Stack;import java.util.Hashtable;import java.util.Vector;public class CodeCompiler extends Visitor    implements ClassConstants //, PythonGrammarTreeConstants{    public static final Object Exit=new Integer(1);    public static final Object NoExit=null;    public static final int GET=0;    public static final int SET=1;    public static final int DEL=2;    public static final int AUGGET=3;    public static final int AUGSET=4;    public Module module;    public Code code;    public ConstantPool pool;    public CodeCompiler mrefs;    int temporary;    int augmode;    int augtmp1;    int augtmp2;    int augtmp3;    int augtmp4;    public boolean fast_locals, print_results;    public Hashtable tbl;    public ScopeInfo my_scope;    boolean optimizeGlobals = true;    public Vector names;    public String className;    public Stack continueLabels, breakLabels, finallyLabels;    public Stack inFinallyLabels;    public Vector yields = new Vector();    /* break/continue finally's level.     * This is the lowest level in finallyLabels which should     * be executed at break or continue.     * It is saved/updated/restored when compiling loops.     * A similar level for returns is not needed because a new CodeCompiler     * is used for each PyCode, ie. each 'function'.     * When returning through finally's all finallyLabels are executed.     */    public int bcfLevel = 0;    public CodeCompiler(Module module, boolean print_results) {        this.module = module;        mrefs = this;        pool = module.classfile.pool;        continueLabels = new Stack();        breakLabels = new Stack();        finallyLabels = new Stack();        inFinallyLabels = new Stack();        this.print_results = print_results;    }    public int PyNone;    public void getNone() throws IOException {        if (mrefs.PyNone == 0) {            mrefs.PyNone = pool.Fieldref("org/python/core/Py", "None",                                         $pyObj);        }        code.getstatic(mrefs.PyNone);    }    public void loadFrame() throws Exception {        code.aload(1);    }    int f_lasti;    public void setLastI(int idx) throws Exception {        if (mrefs.f_lasti == 0) {            mrefs.f_lasti = code.pool.Fieldref(                        "org/python/core/PyFrame", "f_lasti", "I");        }        loadFrame();        code.iconst(idx);        code.putfield(mrefs.f_lasti);    }    public int storeTop() throws Exception {        int tmp = code.getLocal("org/python/core/PyObject");        code.astore(tmp);        return tmp;    }    public int setline;    public void setline(int line) throws Exception {        //System.out.println("line: "+line+", "+code.stack);        if (module.linenumbers) {            code.setline(line);            loadFrame();            code.iconst(line);            if (mrefs.setline == 0) {                mrefs.setline = pool.Methodref("org/python/core/PyFrame",                                               "setline", "(I)V");            }            code.invokevirtual(mrefs.setline);        }    }    public void setline(SimpleNode node) throws Exception {        setline(node.beginLine);    }    public void set(SimpleNode node) throws Exception {        int tmp = storeTop();        set(node, tmp);        code.aconst_null();        code.astore(tmp);        code.freeLocal(tmp);    }    boolean inSet = false;    public void set(SimpleNode node, int tmp) throws Exception {        //System.out.println("tmp: "+tmp);        if (inSet) {            System.out.println("recurse set: "+tmp+", "+temporary);        }        temporary = tmp;        visit(node);    }    private void saveAugTmps(SimpleNode node, int count) throws Exception {        if (count >= 4) {            augtmp4 = code.getLocal("org/python/core/PyObject");            code.astore(augtmp4);        }        if (count >= 3) {            augtmp3 = code.getLocal("org/python/core/PyObject");            code.astore(augtmp3);        }        if (count >= 2) {            augtmp2 = code.getLocal("org/python/core/PyObject");            code.astore(augtmp2);        }        augtmp1 = code.getLocal("org/python/core/PyObject");        code.astore(augtmp1);        code.aload(augtmp1);        if (count >= 2)            code.aload(augtmp2);        if (count >= 3)            code.aload(augtmp3);        if (count >= 4)            code.aload(augtmp4);    }    private void restoreAugTmps(SimpleNode node, int count) throws Exception {       code.aload(augtmp1);       code.freeLocal(augtmp1);       if (count == 1)           return;       code.aload(augtmp2);       code.freeLocal(augtmp2);       if (count == 2)           return;       code.aload(augtmp3);       code.freeLocal(augtmp3);       if (count == 3)           return;       code.aload(augtmp4);       code.freeLocal(augtmp4);   }    public void parse(modType node, Code code,                      boolean fast_locals, String className,                      boolean classBody, ScopeInfo scope,CompilerFlags cflags)        throws Exception    {        this.fast_locals = fast_locals;        this.className = className;        this.code = code;        my_scope = scope;        names = scope.names;        tbl = scope.tbl;        optimizeGlobals = fast_locals&&!scope.exec&&!scope.from_import_star;        Object exit = visit(node);        //System.out.println("exit: "+exit+", "+(exit==null));        if (classBody) {            loadFrame();            code.invokevirtual("org/python/core/PyFrame", "getf_locals",                               "()" + $pyObj);            code.areturn();        } else {            if (exit == null) {                //System.out.println("no exit");                setLastI(-1);                getNone();                code.areturn();            }        }    }    public Object visitInteractive(Interactive node) throws Exception {        traverse(node);        return null;    }    public Object visitModule(org.python.parser.ast.Module suite)        throws Exception    {        if (mrefs.setglobal == 0) {            mrefs.setglobal = code.pool.Methodref(                "org/python/core/PyFrame", "setglobal",                "(" +$str + $pyObj + ")V");        }        if (suite.body.length > 0 &&            suite.body[0] instanceof Expr &&            ((Expr)suite.body[0]).value instanceof Str)        {            loadFrame();            code.ldc("__doc__");            visit(((Expr) suite.body[0]).value);            code.invokevirtual(mrefs.setglobal);        }        if (module.setFile) {            loadFrame();            code.ldc("__file__");            module.filename.get(code);            code.invokevirtual(mrefs.setglobal);        }        traverse(suite);        return null;    }    public Object visitExpression(Expression node) throws Exception {        if (my_scope.generator && node.body != null) {            module.error("'return' with argument inside generator",                         true, node);        }        return visitReturn(new Return(node.body, node), true);    }    public int EmptyObjects;    public void makeArray(SimpleNode[] nodes) throws Exception {        int n;        if (nodes == null)            n = 0;        else            n = nodes.length;        if (n == 0) {            if (mrefs.EmptyObjects == 0) {                mrefs.EmptyObjects = code.pool.Fieldref(                    "org/python/core/Py", "EmptyObjects", $pyObjArr);            }            code.getstatic(mrefs.EmptyObjects);        } else {            int tmp = code.getLocal("[org/python/core/PyObject");            code.iconst(n);            code.anewarray(code.pool.Class("org/python/core/PyObject"));            code.astore(tmp);            for(int i=0; i<n; i++) {                code.aload(tmp);                code.iconst(i);                visit(nodes[i]);                code.aastore();            }            code.aload(tmp);            code.freeLocal(tmp);        }    }    public void getDocString(stmtType[] suite) throws Exception {        //System.out.println("doc: "+suite.getChild(0));        if (suite.length > 0 && suite[0] instanceof Expr &&            ((Expr) suite[0]).value instanceof Str)        {            visit(((Expr) suite[0]).value);        } else {            code.aconst_null();        }    }    int getclosure;    public boolean makeClosure(Vector freenames) throws Exception {        if (freenames == null) return false;        int n = freenames.size();        if (n == 0) return false;        if (mrefs.getclosure == 0) {            mrefs.getclosure = code.pool.Methodref(            "org/python/core/PyFrame", "getclosure", "(I)" + $pyObj);        }        int tmp = code.getLocal("[org/python/core/PyObject");        code.iconst(n);        code.anewarray(code.pool.Class("org/python/core/PyObject"));        code.astore(tmp);        for(int i=0; i<n; i++) {            code.aload(tmp);            code.iconst(i);            code.aload(1); // get frame            code.iconst(((SymInfo)tbl.get(freenames.elementAt(i))).env_index);            code.invokevirtual(getclosure);            code.aastore();        }        code.aload(tmp);        code.freeLocal(tmp);        return true;    }    int f_globals, PyFunction_init, PyFunction_closure_init;    public Object visitFunctionDef(FunctionDef node) throws Exception {        String name = getName(node.name);        setline(node);        code.new_(code.pool.Class("org/python/core/PyFunction"));        code.dup();        loadFrame();        if (mrefs.f_globals == 0) {            mrefs.f_globals = code.pool.Fieldref(                "org/python/core/PyFrame", "f_globals", $pyObj);        }        code.getfield(mrefs.f_globals);        ScopeInfo scope = module.getScopeInfo(node);        makeArray(scope.ac.getDefaults());        scope.setup_closure(my_scope);        scope.dump();        module.PyCode(new Suite(node.body, node), name, true,                      className, false, false,                      node.beginLine, scope).get(code);        Vector freenames = scope.freevars;        getDocString(node.body);        if (!makeClosure(freenames)) {            if (mrefs.PyFunction_init == 0) {                mrefs.PyFunction_init = code.pool.Methodref(                    "org/python/core/PyFunction", "<init>",                    "(" + $pyObj + $pyObjArr + $pyCode + $pyObj + ")V");            }            code.invokespecial(mrefs.PyFunction_init);        } else {            if (mrefs.PyFunction_closure_init == 0) {                mrefs.PyFunction_closure_init = code.pool.Methodref(                    "org/python/core/PyFunction", "<init>",                    "(" + $pyObj + $pyObjArr + $pyCode + $pyObj + $pyObjArr +                    ")V");            }            code.invokespecial(mrefs.PyFunction_closure_init);        }        set(new Name(node.name, Name.Store, node));        return null;    }    public int printResult;    public Object visitExpr(Expr node) throws Exception {        setline(node);        visit(node.value);        if (print_results) {            if (mrefs.printResult == 0) {                mrefs.printResult = code.pool.Methodref(                    "org/python/core/Py",                    "printResult", "(" + $pyObj + ")V");            }            code.invokestatic(mrefs.printResult);        } else {            code.pop();        }        return null;    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一区二区三区在线| 免费成人美女在线观看| 国产主播一区二区三区| 91 com成人网| 天天影视网天天综合色在线播放| 99精品桃花视频在线观看| 国产精品美女久久久久久| 视频一区二区欧美| 91黄色免费网站| 国产精品视频九色porn| 国产在线播放一区三区四| 精品电影一区二区三区| 精品综合免费视频观看| 精品999在线播放| 麻豆成人91精品二区三区| 欧美一区二区三区电影| 精品一区精品二区高清| 欧美电影免费观看高清完整版在线观看| 五月天激情综合| 日韩美女一区二区三区四区| 久久99精品国产麻豆不卡| 精品乱人伦一区二区三区| 国产麻豆成人传媒免费观看| 国产亚洲人成网站| 91免费小视频| 亚洲欧美日韩一区二区 | 中文字幕不卡三区| 成人av电影在线观看| 亚洲视频免费在线观看| 欧美在线不卡一区| 秋霞国产午夜精品免费视频| 51精品视频一区二区三区| 韩国av一区二区三区四区| 国产欧美一区二区精品性色超碰| 成人深夜视频在线观看| 一二三四区精品视频| 欧美一区二区三区在| 国产精品亚洲第一区在线暖暖韩国 | 欧美美女一区二区在线观看| 激情欧美日韩一区二区| 日韩一级精品视频在线观看| 国产一区二区免费视频| 国产精品对白交换视频 | 欧美精品乱码久久久久久按摩| 蜜臀av性久久久久蜜臀aⅴ| 亚洲精品在线电影| 99久久精品免费| 日本亚洲天堂网| 中文字幕的久久| 欧美日韩免费视频| 国产剧情在线观看一区二区| 亚洲男人天堂av| 欧美成人bangbros| 91污在线观看| 国产在线精品一区二区不卡了 | 成人在线综合网站| 日日摸夜夜添夜夜添亚洲女人| 亚洲精品一区二区三区在线观看| 91片黄在线观看| 奇米精品一区二区三区在线观看一 | 国产剧情在线观看一区二区| 亚洲欧美日韩国产另类专区| 欧美一级片在线| 91视频国产资源| 国产mv日韩mv欧美| 日韩av在线免费观看不卡| 亚洲国产精华液网站w| 91精品国产福利| 一本大道久久a久久精品综合| 麻豆久久一区二区| 亚洲一区二区影院| 久久精品夜色噜噜亚洲aⅴ| 欧美视频三区在线播放| 成人精品高清在线| 久久疯狂做爰流白浆xx| 欧美精品一区视频| 在线播放/欧美激情| 色偷偷88欧美精品久久久| 国产乱子轮精品视频| 日韩av在线发布| 图片区小说区区亚洲影院| 亚洲色欲色欲www| 国产欧美精品一区二区色综合 | 免费观看30秒视频久久| 亚洲一线二线三线视频| 亚洲素人一区二区| 国产精品午夜免费| 国产亚洲欧美在线| 久久久久久久久久久久久夜| 欧美一级日韩一级| 欧美一区二区久久| 欧美一区二区三区影视| 精品视频在线视频| 欧美自拍丝袜亚洲| 91福利在线免费观看| 91丨九色丨黑人外教| eeuss鲁片一区二区三区| 免费成人你懂的| 午夜精彩视频在线观看不卡| 亚洲h在线观看| 亚洲va国产va欧美va观看| 亚洲国产日韩一级| 偷拍亚洲欧洲综合| 人人精品人人爱| 日韩高清一区在线| 日本大胆欧美人术艺术动态 | 久久婷婷一区二区三区| 精品免费一区二区三区| 91精品国产入口| 日韩亚洲欧美一区二区三区| 日韩欧美二区三区| 久久久久久久电影| 国产精品伦一区| 亚洲日本在线a| 一区二区成人在线视频 | 欧美日韩综合色| 制服丝袜激情欧洲亚洲| 精品久久久久久久久久久久久久久| 欧美大片国产精品| 国产亚洲精品资源在线26u| 国产欧美日韩激情| 国产精品第四页| 亚洲一区二区三区影院| 免费日韩伦理电影| 风流少妇一区二区| 欧洲生活片亚洲生活在线观看| 欧美日韩午夜在线| 精品久久久久香蕉网| 国产精品久久久久久一区二区三区 | 久久av老司机精品网站导航| 国产馆精品极品| 欧美性视频一区二区三区| 欧美一级久久久| 欧美顶级少妇做爰| 日韩女优av电影| 日韩理论片网站| 美女尤物国产一区| 成人av免费在线观看| 91麻豆精品国产91| 最新高清无码专区| 日韩精品乱码av一区二区| 粉嫩久久99精品久久久久久夜| 国产精品 欧美精品| 欧美三日本三级三级在线播放| 日韩精品一区二区三区视频播放| 亚洲欧洲韩国日本视频| 麻豆一区二区三| 91蝌蚪porny九色| 日韩精品一区二区三区在线播放| 亚洲天堂2014| 国产精品一区二区在线看| 欧美亚洲综合网| 国产亚洲婷婷免费| 日本特黄久久久高潮| 91在线精品秘密一区二区| 日韩精品一区二区三区四区 | 欧美一区二区三区在线| 国产清纯在线一区二区www| 亚洲综合一区在线| 国产精品一区二区91| 欧美一级高清片| 亚洲美女视频在线观看| 国产福利一区在线| 欧美高清一级片在线| 亚洲欧美区自拍先锋| 国产成人综合亚洲91猫咪| 久久综合九色综合97_久久久| 奇米一区二区三区| 日韩视频免费观看高清完整版| 首页国产欧美久久| 欧美一区二区三区人| 视频在线观看一区二区三区| 91精品国产免费| 捆绑调教美女网站视频一区| 欧美一级一区二区| 精品在线你懂的| 精品久久久久久久一区二区蜜臀| 激情综合色播激情啊| 久久视频一区二区| 国产黄色成人av| 国产精品久久毛片av大全日韩| 成人精品视频一区二区三区尤物| 国产精品三级在线观看| 99久久er热在这里只有精品15| 亚洲欧美日本在线| 欧美日本在线看| 久久99精品久久久久| 国产亚洲污的网站| 91尤物视频在线观看| 一区二区三区**美女毛片| 4438x成人网最大色成网站| 精品亚洲成a人在线观看| 国产欧美精品一区aⅴ影院 | 黑人精品欧美一区二区蜜桃 | 日韩va亚洲va欧美va久久| 亚洲精品在线三区| 99视频有精品| 午夜精品久久久久久久久久久| 日韩一区二区在线免费观看| 国产成人h网站|