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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? parser.java

?? 主要的怎么樣結合java 和 javascript!
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
                    break bodyLoop;                  case Token.FUNCTION:                    consumeToken();                    n = function(FunctionNode.FUNCTION_STATEMENT);                    break;                  default:                    n = statement();                    break;                }                nf.addChildToBack(pn, n);            }        } catch (ParserException e) {            // Ignore it        } finally {            --nestingOfFunction;        }        return pn;    }    private Node function(int functionType)        throws IOException, ParserException    {        int syntheticType = functionType;        int baseLineno = ts.getLineno();  // line number where source starts        int functionSourceStart = decompiler.markFunctionStart(functionType);        String name;        Node memberExprNode = null;        if (matchToken(Token.NAME)) {            name = ts.getString();            decompiler.addName(name);            if (!matchToken(Token.LP)) {                if (compilerEnv.isAllowMemberExprAsFunctionName()) {                    // Extension to ECMA: if 'function <name>' does not follow                    // by '(', assume <name> starts memberExpr                    Node memberExprHead = nf.createName(name);                    name = "";                    memberExprNode = memberExprTail(false, memberExprHead);                }                mustMatchToken(Token.LP, "msg.no.paren.parms");            }        } else if (matchToken(Token.LP)) {            // Anonymous function            name = "";        } else {            name = "";            if (compilerEnv.isAllowMemberExprAsFunctionName()) {                // Note that memberExpr can not start with '(' like                // in function (1+2).toString(), because 'function (' already                // processed as anonymous function                memberExprNode = memberExpr(false);            }            mustMatchToken(Token.LP, "msg.no.paren.parms");        }        if (memberExprNode != null) {            syntheticType = FunctionNode.FUNCTION_EXPRESSION;        }        boolean nested = insideFunction();        FunctionNode fnNode = nf.createFunction(name);        if (nested || nestingOfWith > 0) {            // 1. Nested functions are not affected by the dynamic scope flag            // as dynamic scope is already a parent of their scope.            // 2. Functions defined under the with statement also immune to            // this setup, in which case dynamic scope is ignored in favor            // of with object.            fnNode.itsIgnoreDynamicScope = true;        }        int functionIndex = currentScriptOrFn.addFunction(fnNode);        int functionSourceEnd;        ScriptOrFnNode savedScriptOrFn = currentScriptOrFn;        currentScriptOrFn = fnNode;        int savedNestingOfWith = nestingOfWith;        nestingOfWith = 0;        Hashtable savedLabelSet = labelSet;        labelSet = null;        ObjArray savedLoopSet = loopSet;        loopSet = null;        ObjArray savedLoopAndSwitchSet = loopAndSwitchSet;        loopAndSwitchSet = null;        Node body;        String source;        try {            decompiler.addToken(Token.LP);            if (!matchToken(Token.RP)) {                boolean first = true;                do {                    if (!first)                        decompiler.addToken(Token.COMMA);                    first = false;                    mustMatchToken(Token.NAME, "msg.no.parm");                    String s = ts.getString();                    if (fnNode.hasParamOrVar(s)) {                        addWarning("msg.dup.parms", s);                    }                    fnNode.addParam(s);                    decompiler.addName(s);                } while (matchToken(Token.COMMA));                mustMatchToken(Token.RP, "msg.no.paren.after.parms");            }            decompiler.addToken(Token.RP);            mustMatchToken(Token.LC, "msg.no.brace.body");            decompiler.addEOL(Token.LC);            body = parseFunctionBody();            mustMatchToken(Token.RC, "msg.no.brace.after.body");            decompiler.addToken(Token.RC);            functionSourceEnd = decompiler.markFunctionEnd(functionSourceStart);            if (functionType != FunctionNode.FUNCTION_EXPRESSION) {                 if (compilerEnv.getLanguageVersion() >= Context.VERSION_1_2) {                    // function f() {} function g() {} is not allowed in 1.2                    // or later but for compatibility with old scripts                    // the check is done only if language is                    // explicitly set.                    //  XXX warning needed if version == VERSION_DEFAULT ?                    int tt = peekTokenOrEOL();                    if (tt == Token.FUNCTION) {                         reportError("msg.no.semi.stmt");                    }                 }                // Add EOL only if function is not part of expression                // since it gets SEMI + EOL from Statement in that case                decompiler.addToken(Token.EOL);            }        }        finally {            loopAndSwitchSet = savedLoopAndSwitchSet;            loopSet = savedLoopSet;            labelSet = savedLabelSet;            nestingOfWith = savedNestingOfWith;            currentScriptOrFn = savedScriptOrFn;        }        fnNode.setEncodedSourceBounds(functionSourceStart, functionSourceEnd);        fnNode.setSourceName(sourceURI);        fnNode.setBaseLineno(baseLineno);        fnNode.setEndLineno(ts.getLineno());        Node pn = nf.initFunction(fnNode, functionIndex, body, syntheticType);        if (memberExprNode != null) {            pn = nf.createAssignment(Token.ASSIGN, memberExprNode, pn);            if (functionType != FunctionNode.FUNCTION_EXPRESSION) {                // XXX check JScript behavior: should it be createExprStatement?                pn = nf.createExprStatementNoReturn(pn, baseLineno);            }        }        return pn;    }    private Node statements()        throws IOException    {        Node pn = nf.createBlock(ts.getLineno());        int tt;        while((tt = peekToken()) > Token.EOF && tt != Token.RC) {            nf.addChildToBack(pn, statement());        }        return pn;    }    private Node condition()        throws IOException, ParserException    {        Node pn;        mustMatchToken(Token.LP, "msg.no.paren.cond");        decompiler.addToken(Token.LP);        pn = expr(false);        mustMatchToken(Token.RP, "msg.no.paren.after.cond");        decompiler.addToken(Token.RP);        // there's a check here in jsparse.c that corrects = to ==        return pn;    }    // match a NAME; return null if no match.    private Node matchJumpLabelName()        throws IOException, ParserException    {        Node label = null;        int tt = peekTokenOrEOL();        if (tt == Token.NAME) {            consumeToken();            String name = ts.getString();            decompiler.addName(name);            if (labelSet != null) {                label = (Node)labelSet.get(name);            }            if (label == null) {                reportError("msg.undef.label");            }        }        return label;    }    private Node statement()        throws IOException    {        try {            Node pn = statementHelper(null);            if (pn != null) {                return pn;            }        } catch (ParserException e) { }        // skip to end of statement        int lineno = ts.getLineno();        guessingStatementEnd: for (;;) {            int tt = peekTokenOrEOL();            consumeToken();            switch (tt) {              case Token.ERROR:              case Token.EOF:              case Token.EOL:              case Token.SEMI:                break guessingStatementEnd;            }        }        return nf.createExprStatement(nf.createName("error"), lineno);    }    /**     * Whether the "catch (e: e instanceof Exception) { ... }" syntax     * is implemented.     */    private Node statementHelper(Node statementLabel)        throws IOException, ParserException    {        Node pn = null;        int tt;        tt = peekToken();        switch(tt) {          case Token.IF: {            consumeToken();            decompiler.addToken(Token.IF);            int lineno = ts.getLineno();            Node cond = condition();            decompiler.addEOL(Token.LC);            Node ifTrue = statement();            Node ifFalse = null;            if (matchToken(Token.ELSE)) {                decompiler.addToken(Token.RC);                decompiler.addToken(Token.ELSE);                decompiler.addEOL(Token.LC);                ifFalse = statement();            }            decompiler.addEOL(Token.RC);            pn = nf.createIf(cond, ifTrue, ifFalse, lineno);            return pn;          }          case Token.SWITCH: {            consumeToken();            decompiler.addToken(Token.SWITCH);            int lineno = ts.getLineno();            mustMatchToken(Token.LP, "msg.no.paren.switch");            decompiler.addToken(Token.LP);            pn = enterSwitch(expr(false), lineno, statementLabel);            try {                mustMatchToken(Token.RP, "msg.no.paren.after.switch");                decompiler.addToken(Token.RP);                mustMatchToken(Token.LC, "msg.no.brace.switch");                decompiler.addEOL(Token.LC);                boolean hasDefault = false;                switchLoop: for (;;) {                    tt = nextToken();                    Node caseExpression;                    switch (tt) {                      case Token.RC:                        break switchLoop;                      case Token.CASE:                        decompiler.addToken(Token.CASE);                        caseExpression = expr(false);                        mustMatchToken(Token.COLON, "msg.no.colon.case");                        decompiler.addEOL(Token.COLON);                        break;                      case Token.DEFAULT:                        if (hasDefault) {                            reportError("msg.double.switch.default");                        }                        decompiler.addToken(Token.DEFAULT);                        hasDefault = true;                        caseExpression = null;                        mustMatchToken(Token.COLON, "msg.no.colon.case");                        decompiler.addEOL(Token.COLON);                        break;                      default:                        reportError("msg.bad.switch");                        break switchLoop;                    }                    Node block = nf.createLeaf(Token.BLOCK);                    while ((tt = peekToken()) != Token.RC                           && tt != Token.CASE                           && tt != Token.DEFAULT                           && tt != Token.EOF)                    {                        nf.addChildToBack(block, statement());                    }                    // caseExpression == null => add default lable                    nf.addSwitchCase(pn, caseExpression, block);                }                decompiler.addEOL(Token.RC);                nf.closeSwitch(pn);            } finally {                exitSwitch();            }            return pn;          }          case Token.WHILE: {            consumeToken();            decompiler.addToken(Token.WHILE);            Node loop = enterLoop(statementLabel);            try {                Node cond = condition();                decompiler.addEOL(Token.LC);                Node body = statement();                decompiler.addEOL(Token.RC);                pn = nf.createWhile(loop, cond, body);            } finally {                exitLoop();            }            return pn;          }          case Token.DO: {            consumeToken();            decompiler.addToken(Token.DO);            decompiler.addEOL(Token.LC);            Node loop = enterLoop(statementLabel);            try {                Node body = statement();                decompiler.addToken(Token.RC);                mustMatchToken(Token.WHILE, "msg.no.while.do");                decompiler.addToken(Token.WHILE);                Node cond = condition();                pn = nf.createDoWhile(loop, body, cond);            } finally {                exitLoop();            }            // Always auto-insert semicon to follow SpiderMonkey:            // It is required by EMAScript but is ignored by the rest of            // world, see bug 238945            matchToken(Token.SEMI);            decompiler.addEOL(Token.SEMI);            return pn;          }          case Token.FOR: {            consumeToken();            boolean isForEach = false;            decompiler.addToken(Token.FOR);            Node loop = enterLoop(statementLabel);            try {                Node init;  // Node init is also foo in 'foo in Object'                Node cond;  // Node cond is also object in 'foo in Object'                Node incr = null; // to kill warning                Node body;                // See if this is a for each () instead of just a for ()                if (matchToken(Token.NAME)) {                    decompiler.addName(ts.getString());                    if (ts.getString().equals("each")) {                        isForEach = true;                    } else {                        reportError("msg.no.paren.for");                    }                }                mustMatchToken(Token.LP, "msg.no.paren.for");                decompiler.addToken(Token.LP);                tt = peekToken();                if (tt == Token.SEMI) {                    init = nf.createLeaf(Token.EMPTY);                } else {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚欧色一区w666天堂| 日韩黄色片在线观看| 欧美人妖巨大在线| 国产成人亚洲综合a∨婷婷图片| 亚洲欧洲精品一区二区三区不卡 | 蜜桃一区二区三区在线| 久久久国产综合精品女国产盗摄| 欧美三级视频在线播放| 成人av免费在线观看| 日韩黄色小视频| 亚洲免费观看高清完整版在线| 欧美精品一区二区三区蜜臀| 欧美巨大另类极品videosbest | 久久精品日产第一区二区三区高清版| 色天使色偷偷av一区二区| 国产精品羞羞答答xxdd| 舔着乳尖日韩一区| 亚洲美女免费在线| 国产精品欧美经典| 国产亚洲成av人在线观看导航| 91精品国产色综合久久ai换脸 | 1区2区3区国产精品| 精品少妇一区二区三区日产乱码| 欧美在线不卡视频| 91香蕉视频污在线| www.色综合.com| 国产精品911| 国产美女精品在线| 精品夜夜嗨av一区二区三区| 青青草国产成人av片免费| 亚洲成av人在线观看| 亚洲综合在线电影| 亚洲欧美韩国综合色| 日韩毛片一二三区| 亚洲色图色小说| 最新日韩在线视频| 中文字幕视频一区| 日韩美女精品在线| 一区二区三区在线观看动漫| 一区二区三区欧美激情| 亚洲欧美日韩一区| 亚洲自拍偷拍图区| 亚洲第一精品在线| 免费观看在线色综合| 奇米影视一区二区三区小说| 秋霞国产午夜精品免费视频| 奇米精品一区二区三区四区| 久久精品99久久久| 国内精品在线播放| 国产二区国产一区在线观看| 成人国产在线观看| 91女人视频在线观看| 欧美少妇bbb| 日韩一卡二卡三卡四卡| 精品少妇一区二区三区在线播放| 欧美精品一区在线观看| 国产亚洲精品超碰| 国产精品久久一级| 一区二区三区小说| 日本sm残虐另类| 国产精品一卡二卡在线观看| 成人免费视频caoporn| 一本大道久久精品懂色aⅴ| 欧美性生活久久| 精品视频在线视频| 91麻豆精品国产91久久久久久 | 精品日韩在线观看| 久久午夜电影网| 综合av第一页| 丝袜诱惑亚洲看片| 国产一区二区在线观看免费| 成人一二三区视频| 欧美手机在线视频| 亚洲精品一区二区三区影院| 亚洲图片激情小说| 日韩电影在线观看一区| 国产91在线|亚洲| 日本二三区不卡| 久久久久国产精品麻豆 | 国产一区二区三区蝌蚪| av激情综合网| 91麻豆精品国产91久久久| 久久精品一区四区| 亚洲在线中文字幕| 欧美性色欧美a在线播放| 精品精品欲导航| 亚洲人成网站色在线观看| 免费观看一级欧美片| 91在线视频播放地址| 日韩片之四级片| 亚洲激情av在线| 国产不卡在线播放| 欧美精品久久99| 亚洲天堂久久久久久久| 美女视频黄 久久| 91黄色在线观看| 欧美韩国一区二区| 欧美aⅴ一区二区三区视频| 91视频在线看| 久久奇米777| 日韩激情视频网站| 91黄色免费看| 中文字幕日韩欧美一区二区三区| 日本欧美一区二区三区乱码| 色国产综合视频| 国产精品视频你懂的| 韩国中文字幕2020精品| 欧美高清你懂得| 一区二区三区中文在线观看| 成人一区在线观看| 2014亚洲片线观看视频免费| 日韩福利视频网| 欧美性xxxxxxxx| 亚洲色图在线看| 成人黄色综合网站| 精品福利二区三区| 奇米色一区二区三区四区| 欧美日韩一本到| 亚洲国产一区二区三区青草影视| 成人国产在线观看| 欧美激情一区二区三区四区| 国产美女久久久久| ww亚洲ww在线观看国产| 久久丁香综合五月国产三级网站 | 精品乱人伦一区二区三区| 婷婷久久综合九色综合绿巨人| 欧美网站大全在线观看| 亚洲激情图片小说视频| 成人深夜在线观看| 日本一区二区三区视频视频| 国内欧美视频一区二区| 欧美精品一区二区三区很污很色的| 日本视频中文字幕一区二区三区| 911精品产国品一二三产区 | 色综合久久中文综合久久97| 日韩一区在线播放| 色婷婷精品大在线视频| 亚洲午夜免费福利视频| 欧美精品视频www在线观看| 日韩高清不卡一区二区| 91精品国产高清一区二区三区蜜臀| 首页国产丝袜综合| 91精品国产色综合久久不卡蜜臀| 免费观看日韩av| 综合分类小说区另类春色亚洲小说欧美| 国产91综合网| 亚洲视频1区2区| 强制捆绑调教一区二区| 国产成人综合在线| 国产调教视频一区| av激情成人网| 亚洲福利视频一区| 欧美一区欧美二区| 韩国av一区二区| 中文字幕不卡在线| 在线观看www91| 麻豆久久一区二区| 国产亚洲精品资源在线26u| 99国产精品国产精品久久| 亚洲国产精品一区二区尤物区| 91精品国产一区二区三区蜜臀 | 国产精品网曝门| 在线视频观看一区| 美女性感视频久久| 国产免费成人在线视频| 91福利社在线观看| 日本伊人色综合网| 久久久精品tv| 欧美在线观看一区二区| 狠狠色丁香久久婷婷综合丁香| 中文字幕av一区 二区| 欧美亚洲综合在线| 国模冰冰炮一区二区| 自拍偷拍亚洲欧美日韩| 91精品国产91久久综合桃花| 国产91精品露脸国语对白| 性做久久久久久免费观看| 久久精品一级爱片| 欧美亚洲国产一区二区三区| 激情小说亚洲一区| 亚洲一区二区黄色| 美女视频黄免费的久久 | 国产精品1区2区3区在线观看| 亚洲乱码国产乱码精品精98午夜 | 日韩一级片在线观看| 成人激情视频网站| 喷白浆一区二区| 亚洲黄色在线视频| 久久蜜臀中文字幕| 欧美日韩一级二级三级| 成人午夜视频在线| 日本强好片久久久久久aaa| 国产精品狼人久久影院观看方式| 3d动漫精品啪啪一区二区竹菊| 成人小视频在线| 另类小说一区二区三区| 一个色妞综合视频在线观看| 欧美国产日韩亚洲一区| 精品久久久久久久人人人人传媒| 欧美色手机在线观看|