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

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

?? parser.java

?? 主要的怎么樣結合java 和 javascript!
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
                decompiler.addToken(Token.LP);                /* Add the arguments to pn, if any are supplied. */                argumentList(pn);            }            /* XXX there's a check in the C source against             * "too many constructor arguments" - how many             * do we claim to support?             */            /* Experimental syntax:  allow an object literal to follow a new expression,             * which will mean a kind of anonymous class built with the JavaAdapter.             * the object literal will be passed as an additional argument to the constructor.             */            tt = peekToken();            if (tt == Token.LC) {                nf.addChildToBack(pn, primaryExpr());            }        } else {            pn = primaryExpr();        }        return memberExprTail(allowCallSyntax, pn);    }    private Node memberExprTail(boolean allowCallSyntax, Node pn)        throws IOException, ParserException    {      tailLoop:        for (;;) {            int tt = peekToken();            switch (tt) {              case Token.DOT:              case Token.DOTDOT:                {                    int memberTypeFlags;                    String s;                    consumeToken();                    decompiler.addToken(tt);                    memberTypeFlags = 0;                    if (tt == Token.DOTDOT) {                        mustHaveXML();                        memberTypeFlags = Node.DESCENDANTS_FLAG;                    }                    if (!compilerEnv.isXmlAvailable()) {                        mustMatchToken(Token.NAME, "msg.no.name.after.dot");                        s = ts.getString();                        decompiler.addName(s);                        pn = nf.createPropertyGet(pn, null, s, memberTypeFlags);                        break;                    }                    tt = nextToken();                    switch (tt) {                      // handles: name, ns::name, ns::*, ns::[expr]                      case Token.NAME:                        s = ts.getString();                        decompiler.addName(s);                        pn = propertyName(pn, s, memberTypeFlags);                        break;                      // handles: *, *::name, *::*, *::[expr]                      case Token.MUL:                        decompiler.addName("*");                        pn = propertyName(pn, "*", memberTypeFlags);                        break;                      // handles: '@attr', '@ns::attr', '@ns::*', '@ns::*',                      //          '@::attr', '@::*', '@*', '@*::attr', '@*::*'                      case Token.XMLATTR:                        decompiler.addToken(Token.XMLATTR);                        pn = attributeAccess(pn, memberTypeFlags);                        break;                      default:                        reportError("msg.no.name.after.dot");                    }                }                break;              case Token.DOTQUERY:                consumeToken();                mustHaveXML();                decompiler.addToken(Token.DOTQUERY);                pn = nf.createDotQuery(pn, expr(false), ts.getLineno());                mustMatchToken(Token.RP, "msg.no.paren");                decompiler.addToken(Token.RP);                break;              case Token.LB:                consumeToken();                decompiler.addToken(Token.LB);                pn = nf.createElementGet(pn, null, expr(false), 0);                mustMatchToken(Token.RB, "msg.no.bracket.index");                decompiler.addToken(Token.RB);                break;              case Token.LP:                if (!allowCallSyntax) {                    break tailLoop;                }                consumeToken();                decompiler.addToken(Token.LP);                pn = nf.createCallOrNew(Token.CALL, pn);                /* Add the arguments to pn, if any are supplied. */                argumentList(pn);                break;              default:                break tailLoop;            }        }        return pn;    }    /*     * Xml attribute expression:     *   '@attr', '@ns::attr', '@ns::*', '@ns::*', '@*', '@*::attr', '@*::*'     */    private Node attributeAccess(Node pn, int memberTypeFlags)        throws IOException    {        memberTypeFlags |= Node.ATTRIBUTE_FLAG;        int tt = nextToken();        switch (tt) {          // handles: @name, @ns::name, @ns::*, @ns::[expr]          case Token.NAME:            {                String s = ts.getString();                decompiler.addName(s);                pn = propertyName(pn, s, memberTypeFlags);            }            break;          // handles: @*, @*::name, @*::*, @*::[expr]          case Token.MUL:            decompiler.addName("*");            pn = propertyName(pn, "*", memberTypeFlags);            break;          // handles @[expr]          case Token.LB:            decompiler.addToken(Token.LB);            pn = nf.createElementGet(pn, null, expr(false), memberTypeFlags);            mustMatchToken(Token.RB, "msg.no.bracket.index");            decompiler.addToken(Token.RB);            break;          default:            reportError("msg.no.name.after.xmlAttr");            pn = nf.createPropertyGet(pn, null, "?", memberTypeFlags);            break;        }        return pn;    }    /**     * Check if :: follows name in which case it becomes qualified name     */    private Node propertyName(Node pn, String name, int memberTypeFlags)        throws IOException, ParserException    {        String namespace = null;        if (matchToken(Token.COLONCOLON)) {            decompiler.addToken(Token.COLONCOLON);            namespace = name;            int tt = nextToken();            switch (tt) {              // handles name::name              case Token.NAME:                name = ts.getString();                decompiler.addName(name);                break;              // handles name::*              case Token.MUL:                decompiler.addName("*");                name = "*";                break;              // handles name::[expr]              case Token.LB:                decompiler.addToken(Token.LB);                pn = nf.createElementGet(pn, namespace, expr(false),                                         memberTypeFlags);                mustMatchToken(Token.RB, "msg.no.bracket.index");                decompiler.addToken(Token.RB);                return pn;              default:                reportError("msg.no.name.after.coloncolon");                name = "?";            }        }        pn = nf.createPropertyGet(pn, namespace, name, memberTypeFlags);        return pn;    }    private Node primaryExpr()        throws IOException, ParserException    {        Node pn;        int ttFlagged = nextFlaggedToken();        int tt = ttFlagged & CLEAR_TI_MASK;        switch(tt) {          case Token.FUNCTION:            return function(FunctionNode.FUNCTION_EXPRESSION);          case Token.LB: {            ObjArray elems = new ObjArray();            int skipCount = 0;            decompiler.addToken(Token.LB);            boolean after_lb_or_comma = true;            for (;;) {                tt = peekToken();                if (tt == Token.COMMA) {                    consumeToken();                    decompiler.addToken(Token.COMMA);                    if (!after_lb_or_comma) {                        after_lb_or_comma = true;                    } else {                        elems.add(null);                        ++skipCount;                    }                } else if (tt == Token.RB) {                    consumeToken();                    decompiler.addToken(Token.RB);                    break;                } else {                    if (!after_lb_or_comma) {                        reportError("msg.no.bracket.arg");                    }                    elems.add(assignExpr(false));                    after_lb_or_comma = false;                }            }            return nf.createArrayLiteral(elems, skipCount);          }          case Token.LC: {            ObjArray elems = new ObjArray();            decompiler.addToken(Token.LC);            if (!matchToken(Token.RC)) {                boolean first = true;            commaloop:                do {                    Object property;                    if (!first)                        decompiler.addToken(Token.COMMA);                    else                        first = false;                    tt = peekToken();                    switch(tt) {                      case Token.NAME:                      case Token.STRING:                        consumeToken();                        // map NAMEs to STRINGs in object literal context                        // but tell the decompiler the proper type                        String s = ts.getString();                        if (tt == Token.NAME) {                            decompiler.addName(s);                        } else {                            decompiler.addString(s);                        }                        property = ScriptRuntime.getIndexObject(s);                        break;                      case Token.NUMBER:                        consumeToken();                        double n = ts.getNumber();                        decompiler.addNumber(n);                        property = ScriptRuntime.getIndexObject(n);                        break;                      case Token.RC:                        // trailing comma is OK.                        break commaloop;                    default:                        reportError("msg.bad.prop");                        break commaloop;                    }                    mustMatchToken(Token.COLON, "msg.no.colon.prop");                    // OBJLIT is used as ':' in object literal for                    // decompilation to solve spacing ambiguity.                    decompiler.addToken(Token.OBJECTLIT);                    elems.add(property);                    elems.add(assignExpr(false));                } while (matchToken(Token.COMMA));                mustMatchToken(Token.RC, "msg.no.brace.prop");            }            decompiler.addToken(Token.RC);            return nf.createObjectLiteral(elems);          }          case Token.LP:            /* Brendan's IR-jsparse.c makes a new node tagged with             * TOK_LP here... I'm not sure I understand why.  Isn't             * the grouping already implicit in the structure of the             * parse tree?  also TOK_LP is already overloaded (I             * think) in the C IR as 'function call.'  */            decompiler.addToken(Token.LP);            pn = expr(false);            decompiler.addToken(Token.RP);            mustMatchToken(Token.RP, "msg.no.paren");            return pn;          case Token.XMLATTR:            mustHaveXML();            decompiler.addToken(Token.XMLATTR);            pn = attributeAccess(null, 0);            return pn;          case Token.NAME: {            String name = ts.getString();            if ((ttFlagged & TI_CHECK_LABEL) != 0) {                if (peekToken() == Token.COLON) {                    // Do not consume colon, it is used as unwind indicator                    // to return to statementHelper.                    // XXX Better way?                    return nf.createLabel(ts.getLineno());                }            }            decompiler.addName(name);            if (compilerEnv.isXmlAvailable()) {                pn = propertyName(null, name, 0);            } else {                pn = nf.createName(name);            }            return pn;          }          case Token.NUMBER: {            double n = ts.getNumber();            decompiler.addNumber(n);            return nf.createNumber(n);          }          case Token.STRING: {            String s = ts.getString();            decompiler.addString(s);            return nf.createString(s);          }          case Token.DIV:          case Token.ASSIGN_DIV: {            // Got / or /= which should be treated as regexp in fact            ts.readRegExp(tt);            String flags = ts.regExpFlags;            ts.regExpFlags = null;            String re = ts.getString();            decompiler.addRegexp(re, flags);            int index = currentScriptOrFn.addRegexp(re, flags);            return nf.createRegExp(index);          }          case Token.NULL:          case Token.THIS:          case Token.FALSE:          case Token.TRUE:            decompiler.addToken(tt);            return nf.createLeaf(tt);          case Token.RESERVED:            reportError("msg.reserved.id");            break;          case Token.ERROR:            /* the scanner or one of its subroutines reported the error. */            break;          case Token.EOF:            reportError("msg.unexpected.eof");            break;          default:            reportError("msg.syntax");            break;        }        return null;    // should never reach here    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频观看视频| 欧美精品18+| 久久激情五月婷婷| 亚洲男人都懂的| 精品少妇一区二区三区在线视频| 成人高清伦理免费影院在线观看| 午夜激情综合网| 亚洲欧洲日韩在线| 欧美精品一区二区三区蜜桃| 91国产福利在线| 成人黄色777网| 狠狠色狠狠色合久久伊人| 亚洲丰满少妇videoshd| 亚洲欧洲精品一区二区三区不卡 | 丁香婷婷综合色啪| 水蜜桃久久夜色精品一区的特点| 中文字幕在线观看一区| 久久久久久久电影| 91精品国产91久久久久久一区二区| av一本久道久久综合久久鬼色| 久久66热re国产| 青青草国产成人99久久| 香蕉av福利精品导航 | 久久99精品久久久| 亚洲最大色网站| 中文字幕在线不卡视频| 欧美国产精品中文字幕| 精品动漫一区二区三区在线观看| 69精品人人人人| 欧美喷潮久久久xxxxx| 欧洲亚洲精品在线| 91国产福利在线| 色老头久久综合| 91在线观看地址| 91日韩在线专区| 99久久精品免费看国产| 成人激情av网| 成人性生交大合| 成人理论电影网| 成人免费视频播放| www.亚洲免费av| 99国产欧美另类久久久精品| 成a人片亚洲日本久久| 99re在线精品| 色哟哟在线观看一区二区三区| 95精品视频在线| 91丝袜呻吟高潮美腿白嫩在线观看| 99久久综合国产精品| 色综合天天综合给合国产| 99精品黄色片免费大全| 91麻豆免费观看| 日本高清不卡aⅴ免费网站| 91久久免费观看| 欧美日本一区二区在线观看| 日韩一区二区三区在线观看| 久久众筹精品私拍模特| 久久久综合激的五月天| 国产精品久久精品日日| 自拍偷拍欧美激情| 亚洲国产精品麻豆| 日韩黄色小视频| 国产盗摄一区二区三区| 91日韩一区二区三区| 精品视频色一区| 精品毛片乱码1区2区3区| 久久精品亚洲麻豆av一区二区| 中文字幕在线观看不卡视频| 亚洲成人免费在线| 狠狠色丁香婷婷综合久久片| 99精品久久只有精品| 欧美日韩精品系列| 久久麻豆一区二区| 亚洲精品成人a在线观看| 日本怡春院一区二区| 国产69精品久久久久毛片| 91免费观看国产| 制服丝袜中文字幕一区| 久久久精品综合| 亚洲一区在线电影| 精品一区二区三区蜜桃| 成人不卡免费av| 欧美日韩不卡一区二区| 国产日韩三级在线| 亚洲国产综合人成综合网站| 极品少妇一区二区| 色域天天综合网| 精品人在线二区三区| 亚洲综合av网| 国产一区二区调教| 欧美挠脚心视频网站| 久久久噜噜噜久久中文字幕色伊伊 | 99精品视频在线免费观看| 51精品视频一区二区三区| 亚洲欧美在线高清| 经典三级视频一区| 欧美日韩国产综合一区二区三区| 中文一区一区三区高中清不卡| 奇米色一区二区三区四区| 色综合久久99| 国产精品污www在线观看| 日韩黄色小视频| 日本乱人伦aⅴ精品| 久久久不卡影院| 美女国产一区二区| 欧美视频在线一区| 亚洲少妇30p| 成人av电影在线| 国产日韩视频一区二区三区| 久久精品国产77777蜜臀| 欧美色视频在线观看| 亚洲精品免费视频| av亚洲产国偷v产偷v自拍| 久久综合久久99| 麻豆精品一区二区av白丝在线| 欧美日韩国产精品成人| 亚洲激情中文1区| 91视频在线观看免费| 欧美激情综合网| 国产一区二区三区在线观看免费视频 | 国产成人免费视频网站高清观看视频 | 日韩美女一区二区三区四区| 亚洲大片精品永久免费| 99精品视频一区二区| 中文字幕巨乱亚洲| 东方aⅴ免费观看久久av| 国产视频一区在线观看| 国产伦精品一区二区三区免费迷 | 亚洲主播在线观看| 欧亚洲嫩模精品一区三区| 成人欧美一区二区三区小说| 粉嫩av一区二区三区在线播放| 国产日韩欧美麻豆| 成人激情黄色小说| 国产精品灌醉下药二区| 91社区在线播放| 亚洲一区二区三区四区在线| 91麻豆精品一区二区三区| 亚洲精品高清视频在线观看| 欧洲亚洲国产日韩| 天天综合色天天综合色h| 欧美精品日韩精品| 久久国产成人午夜av影院| 欧美xfplay| 国产成人h网站| 中文字幕一区二区在线播放| 色婷婷香蕉在线一区二区| 一区二区三区久久| 91.xcao| 九色综合国产一区二区三区| 精品人在线二区三区| 国产成人激情av| 亚洲欧美二区三区| 欧美日韩亚洲另类| 麻豆视频观看网址久久| 国产三级欧美三级日产三级99 | 亚洲人亚洲人成电影网站色| 欧洲另类一二三四区| 日韩av一二三| 久久久久99精品国产片| 色综合久久久久久久久久久| 亚洲一区二区三区四区中文字幕| 制服丝袜日韩国产| 国产999精品久久久久久| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美在线短视频| 激情欧美一区二区| 亚洲日本在线视频观看| 欧美日韩午夜在线| 国产精品亚洲第一区在线暖暖韩国| 成人欧美一区二区三区1314 | 在线播放中文一区| 国产综合色产在线精品| 亚洲另类在线视频| 欧美一区二区三区四区高清| 丁香婷婷深情五月亚洲| 夜夜揉揉日日人人青青一国产精品 | 91在线porny国产在线看| 天天影视涩香欲综合网| 欧美韩日一区二区三区| 欧美网站一区二区| 激情图片小说一区| 夜夜爽夜夜爽精品视频| 久久只精品国产| 欧美视频在线一区| 国产成人日日夜夜| 亚洲成人激情av| 欧美激情中文字幕| 日韩欧美视频一区| 色乱码一区二区三区88| 国产剧情在线观看一区二区| 亚洲国产综合91精品麻豆| 欧美高清在线一区| 欧美一区二区视频在线观看| 91网页版在线| 国产成人免费视频| 麻豆精品国产传媒mv男同 | 日本伊人色综合网| 亚洲色图一区二区| 国产欧美日韩一区二区三区在线观看| 欧美色图在线观看|