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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? codecompiler.java

?? tinyos最新版
?? JAVA
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
// 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;    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产精品国产精品久久| 国产精品国产精品国产专区不片| 在线免费亚洲电影| 日本精品视频一区二区三区| 99精品视频在线观看免费| av在线播放一区二区三区| 成人免费视频一区二区| 成人激情午夜影院| 91片在线免费观看| 在线观看欧美精品| 欧美女孩性生活视频| 宅男噜噜噜66一区二区66| 欧美一区二区三区四区视频| 日韩免费高清视频| 久久久精品免费免费| 久久久久久久久久久久久久久99| 久久人人爽爽爽人久久久| 欧美高清在线视频| 亚洲久草在线视频| 日本 国产 欧美色综合| 美日韩一级片在线观看| 国产一区二区三区日韩| 菠萝蜜视频在线观看一区| 色婷婷亚洲一区二区三区| 欧美日韩在线观看一区二区 | 777xxx欧美| 精品卡一卡二卡三卡四在线| 欧美精品一区二区三区蜜桃| 国产精品久久久久影院| 亚洲精品va在线观看| 午夜电影网亚洲视频| 狠狠v欧美v日韩v亚洲ⅴ| 粉嫩13p一区二区三区| 色视频一区二区| 91精品国产全国免费观看| 久久伊人中文字幕| 亚洲人成7777| 美女视频黄免费的久久| 成人国产精品免费观看动漫| 欧美日韩国产高清一区二区三区 | 欧美一卡二卡在线观看| 国产午夜精品福利| 一二三四社区欧美黄| 麻豆免费精品视频| 99国产精品久| 日韩精品中文字幕一区二区三区| 中文字幕一区二区三| 五月综合激情网| 国产成人午夜视频| 欧美色涩在线第一页| 久久久久久9999| 一区二区三区免费看视频| 国产一区二区三区免费看| 欧美在线播放高清精品| 国产亚洲一区二区三区四区| 午夜精品福利一区二区三区av| 韩国精品主播一区二区在线观看 | 欧美色精品在线视频| 久久色.com| 婷婷国产v国产偷v亚洲高清| 成人国产亚洲欧美成人综合网 | 一区二区三区久久久| 精品无人区卡一卡二卡三乱码免费卡| 91免费国产视频网站| 久久综合九色综合97婷婷女人| 一区二区三区鲁丝不卡| 成人永久免费视频| 精品播放一区二区| 石原莉奈在线亚洲二区| 一本一本久久a久久精品综合麻豆| 精品毛片乱码1区2区3区| 亚洲精品国产高清久久伦理二区| 国产精品一区不卡| 欧美岛国在线观看| 午夜精品久久久久久久久久| 91论坛在线播放| 国产午夜精品福利| 久久99精品久久久久婷婷| 欧美三级电影网站| 亚洲精品自拍动漫在线| 成人黄色软件下载| 精品国产乱码久久久久久老虎| 亚洲影院久久精品| 一本一道久久a久久精品 | 日本不卡视频在线观看| 欧美视频在线一区二区三区 | 国产亚洲成aⅴ人片在线观看 | 91免费看片在线观看| 欧美激情一区二区| 国产老女人精品毛片久久| 91精品国产综合久久精品| 五月婷婷色综合| 欧美日韩在线播放| 亚洲一区二区三区国产| 色狠狠综合天天综合综合| 中文字幕制服丝袜一区二区三区| 国产suv一区二区三区88区| 欧美xxxx在线观看| 麻豆国产精品视频| 日韩欧美你懂的| 久久91精品久久久久久秒播| 精品盗摄一区二区三区| 国产一区亚洲一区| 久久久久久综合| 国产成人精品免费一区二区| 国产三级一区二区三区| 国产成人高清在线| 久久久久久久性| 成人免费看的视频| 亚洲欧洲精品一区二区三区不卡 | 26uuu亚洲综合色欧美| 狠狠色丁香婷婷综合| 亚洲精品一线二线三线无人区| 经典一区二区三区| 久久久777精品电影网影网| 国产suv精品一区二区883| 国产精品久久久久婷婷二区次| 波多野结衣91| 亚洲美女视频一区| 777久久久精品| 欧美日韩精品一区二区天天拍小说 | 日韩免费性生活视频播放| 国模套图日韩精品一区二区| 26uuu精品一区二区在线观看| 国产成人av电影免费在线观看| 日本一区二区动态图| 91性感美女视频| 亚洲成人资源网| 精品国产欧美一区二区| 成人午夜av在线| 亚洲女子a中天字幕| 欧美日韩国产另类一区| 精品一区二区三区香蕉蜜桃 | 国产一区二区三区免费观看| 亚洲欧洲美洲综合色网| 欧美精品第1页| 国产福利一区二区三区视频| 亚洲同性gay激情无套| 91精品国产综合久久久蜜臀图片| 国产一区二区三区四| 亚洲精品v日韩精品| 日韩午夜在线播放| 99久久久久久| 麻豆精品久久久| 亚洲欧洲精品成人久久奇米网| 欧美午夜宅男影院| 国产乱子伦视频一区二区三区 | 午夜一区二区三区在线观看| 精品sm在线观看| 欧美在线观看禁18| 精品久久久久久久久久久久包黑料 | 成年人国产精品| 日日夜夜一区二区| 国产精品久久福利| 欧美一级搡bbbb搡bbbb| 99久久精品国产一区| 青娱乐精品视频| 亚洲精品视频在线观看网站| 日韩欧美一区在线观看| 日本久久一区二区| 国产精品综合网| 日韩国产欧美在线播放| 中文字幕亚洲一区二区va在线| 91精品国产综合久久香蕉的特点 | 日本韩国一区二区| 国内精品在线播放| 亚洲成人激情综合网| 国产日本亚洲高清| 欧美精品日韩一本| 99精品国产91久久久久久| 精品伊人久久久久7777人| 亚洲宅男天堂在线观看无病毒| 久久精品在这里| 7777精品久久久大香线蕉 | 国产精品久久久久久久久动漫| 欧美一区二视频| 一本色道久久综合精品竹菊| 国产精品一区二区久久精品爱涩| 日日摸夜夜添夜夜添亚洲女人| 成人免费一区二区三区在线观看| 欧美xxx久久| 日韩一区二区影院| 欧美亚洲一区二区三区四区| 成人精品国产免费网站| 国产一区二区三区在线观看精品| 青青草成人在线观看| 亚洲一二三专区| 一区二区免费看| 亚洲免费在线观看视频| 亚洲欧洲精品一区二区三区不卡 | 国产一区二区视频在线| 免费视频最近日韩| 日本视频在线一区| 亚洲国产精品久久久久秋霞影院 | av不卡一区二区三区| 国产精品一区二区在线播放 | 国产精品亚洲午夜一区二区三区| 日本特黄久久久高潮| 日韩精品免费视频人成| 日韩黄色片在线观看|