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

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

?? irfactory.java

?? 主要的怎么樣結合java 和 javascript!
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Rhino code, released * May 6, 1999. * * The Initial Developer of the Original Code is Netscape * Communications Corporation.  Portions created by Netscape are * Copyright (C) 1997-1999 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): * Norris Boyd * Igor Bukanov * Ethan Hugg * Terry Lucas * Milen Nankov * * Alternatively, the contents of this file may be used under the * terms of the GNU Public License (the "GPL"), in which case the * provisions of the GPL are applicable instead of those above. * If you wish to allow use of your version of this file only * under the terms of the GPL and not to allow others to use your * version of this file under the NPL, indicate your decision by * deleting the provisions above and replace them with the notice * and other provisions required by the GPL.  If you do not delete * the provisions above, a recipient may use your version of this * file under either the NPL or the GPL. */package org.mozilla.javascript;/** * This class allows the creation of nodes, and follows the Factory pattern. * * @see Node * @author Mike McCabe * @author Norris Boyd */final class IRFactory{    IRFactory(Parser parser)    {        this.parser = parser;    }    ScriptOrFnNode createScript()    {        return new ScriptOrFnNode(Token.SCRIPT);    }    /**     * Script (for associating file/url names with toplevel scripts.)     */    void initScript(ScriptOrFnNode scriptNode, Node body)    {        Node children = body.getFirstChild();        if (children != null) { scriptNode.addChildrenToBack(children); }    }    /**     * Leaf     */    Node createLeaf(int nodeType)    {        return new Node(nodeType);    }    Node createLeaf(int nodeType, int nodeOp)    {        return new Node(nodeType, nodeOp);    }    /**     * Statement leaf nodes.     */    Node createSwitch(Node expr, int lineno)    {        //        // The switch will be rewritten from:        //        // switch (expr) {        //   case test1: statements1;        //   ...        //   default: statementsDefault;        //   ...        //   case testN: statementsN;        // }        //        // to:        //        // {        //     switch (expr) {        //       case test1: goto label1;        //       ...        //       case testN: goto labelN;        //     }        //     goto labelDefault;        //   label1:        //     statements1;        //   ...        //   labelDefault:        //     statementsDefault;        //   ...        //   labelN:        //     statementsN;        //   breakLabel:        // }        //        // where inside switch each "break;" without label will be replaced        // by "goto breakLabel".        //        // If the original switch does not have the default label, then        // the transformed code would contain after the switch instead of        //     goto labelDefault;        // the following goto:        //     goto breakLabel;        //        Node.Jump switchNode = new Node.Jump(Token.SWITCH, expr, lineno);        Node block = new Node(Token.BLOCK, switchNode);        return block;    }    /**     * If caseExpression argument is null it indicate default label.     */    void addSwitchCase(Node switchBlock, Node caseExpression, Node statements)    {        if (switchBlock.getType() != Token.BLOCK) throw Kit.codeBug();        Node.Jump switchNode = (Node.Jump)switchBlock.getFirstChild();        if (switchNode.getType() != Token.SWITCH) throw Kit.codeBug();        Node gotoTarget = Node.newTarget();        if (caseExpression != null) {            Node.Jump caseNode = new Node.Jump(Token.CASE, caseExpression);            caseNode.target = gotoTarget;            switchNode.addChildToBack(caseNode);        } else {            switchNode.setDefault(gotoTarget);        }        switchBlock.addChildToBack(gotoTarget);        switchBlock.addChildToBack(statements);    }    void closeSwitch(Node switchBlock)    {        if (switchBlock.getType() != Token.BLOCK) throw Kit.codeBug();        Node.Jump switchNode = (Node.Jump)switchBlock.getFirstChild();        if (switchNode.getType() != Token.SWITCH) throw Kit.codeBug();        Node switchBreakTarget = Node.newTarget();        // switchNode.target is only used by NodeTransformer        // to detect switch end        switchNode.target = switchBreakTarget;        Node defaultTarget = switchNode.getDefault();        if (defaultTarget == null) {            defaultTarget = switchBreakTarget;        }        switchBlock.addChildAfter(makeJump(Token.GOTO, defaultTarget),                                  switchNode);        switchBlock.addChildToBack(switchBreakTarget);    }    Node createVariables(int lineno)    {        return new Node(Token.VAR, lineno);    }    Node createExprStatement(Node expr, int lineno)    {        int type;        if (parser.insideFunction()) {            type = Token.EXPR_VOID;        } else {            type = Token.EXPR_RESULT;        }        return new Node(type, expr, lineno);    }    Node createExprStatementNoReturn(Node expr, int lineno)    {        return new Node(Token.EXPR_VOID, expr, lineno);    }    Node createDefaultNamespace(Node expr, int lineno)    {        // default xml namespace requires activation        setRequiresActivation();        Node n = createUnary(Token.DEFAULTNAMESPACE, expr);        Node result = createExprStatement(n, lineno);        return result;    }    /**     * Name     */    Node createName(String name)    {        checkActivationName(name, Token.NAME);        return Node.newString(Token.NAME, name);    }    /**     * String (for literals)     */    Node createString(String string)    {        return Node.newString(string);    }    /**     * Number (for literals)     */    Node createNumber(double number)    {        return Node.newNumber(number);    }    /**     * Catch clause of try/catch/finally     * @param varName the name of the variable to bind to the exception     * @param catchCond the condition under which to catch the exception.     *                  May be null if no condition is given.     * @param stmts the statements in the catch clause     * @param lineno the starting line number of the catch clause     */    Node createCatch(String varName, Node catchCond, Node stmts, int lineno)    {        if (catchCond == null) {            catchCond = new Node(Token.EMPTY);        }        return new Node(Token.CATCH, createName(varName),                        catchCond, stmts, lineno);    }    /**     * Throw     */    Node createThrow(Node expr, int lineno)    {        return new Node(Token.THROW, expr, lineno);    }    /**     * Return     */    Node createReturn(Node expr, int lineno)    {        return expr == null            ? new Node(Token.RETURN, lineno)            : new Node(Token.RETURN, expr, lineno);    }    /**     * Label     */    Node createLabel(int lineno)    {        return new Node.Jump(Token.LABEL, lineno);    }    Node getLabelLoop(Node label)    {        return ((Node.Jump)label).getLoop();    }    /**     * Label     */    Node createLabeledStatement(Node labelArg, Node statement)    {        Node.Jump label = (Node.Jump)labelArg;        // Make a target and put it _after_ the statement        // node.  And in the LABEL node, so breaks get the        // right target.        Node breakTarget = Node.newTarget();        Node block = new Node(Token.BLOCK, label, statement, breakTarget);        label.target = breakTarget;        return block;    }    /**     * Break (possibly labeled)     */    Node createBreak(Node breakStatement, int lineno)    {        Node.Jump n = new Node.Jump(Token.BREAK, lineno);        Node.Jump jumpStatement;        int t = breakStatement.getType();        if (t == Token.LOOP || t == Token.LABEL) {            jumpStatement = (Node.Jump)breakStatement;        } else if (t == Token.BLOCK                   && breakStatement.getFirstChild().getType() == Token.SWITCH)        {            jumpStatement = (Node.Jump)breakStatement.getFirstChild();        } else {            throw Kit.codeBug();        }        n.setJumpStatement(jumpStatement);        return n;    }    /**     * Continue (possibly labeled)     */    Node createContinue(Node loop, int lineno)    {        if (loop.getType() != Token.LOOP) Kit.codeBug();        Node.Jump n = new Node.Jump(Token.CONTINUE, lineno);        n.setJumpStatement((Node.Jump)loop);        return n;    }    /**     * Statement block     * Creates the empty statement block     * Must make subsequent calls to add statements to the node     */    Node createBlock(int lineno)    {        return new Node(Token.BLOCK, lineno);    }    FunctionNode createFunction(String name)    {        return new FunctionNode(name);    }    Node initFunction(FunctionNode fnNode, int functionIndex,                      Node statements, int functionType)    {        fnNode.itsFunctionType = functionType;        fnNode.addChildToBack(statements);        int functionCount = fnNode.getFunctionCount();        if (functionCount != 0) {            // Functions containing other functions require activation objects            fnNode.itsNeedsActivation = true;            for (int i = 0; i != functionCount; ++i) {                FunctionNode fn = fnNode.getFunctionNode(i);                // nested function expression statements overrides var                if (fn.getFunctionType()                        == FunctionNode.FUNCTION_EXPRESSION_STATEMENT)                {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久免费丝袜| 精品成人私密视频| 国产麻豆视频一区| 国产精品三级在线观看| 在线视频欧美精品| 蜜桃视频免费观看一区| 亚洲欧美另类小说| 中文字幕第一区二区| 欧美精品色综合| 色综合欧美在线| 国产福利一区在线| 美日韩黄色大片| 午夜日韩在线电影| 一区二区三区电影在线播| 国产欧美精品区一区二区三区| 欧美三级中文字幕在线观看| 成人精品视频一区| 美女www一区二区| 亚洲国产另类精品专区| 国产视频一区在线观看| 欧美电影免费观看高清完整版在 | 欧美日韩久久一区二区| 成人免费视频一区| 手机精品视频在线观看| 国产精品久久久久久久久免费樱桃 | 欧美日韩大陆在线| 成人a级免费电影| 美腿丝袜亚洲综合| 亚洲一区二区三区不卡国产欧美| 国产午夜精品一区二区| 欧美日韩一区久久| 一本久道中文字幕精品亚洲嫩| 国内外精品视频| 麻豆国产欧美一区二区三区| 午夜精品久久久久久久| 亚洲成人动漫在线免费观看| 中文字幕在线观看一区二区| 欧美三级视频在线播放| 日本福利一区二区| 99精品久久久久久| 91尤物视频在线观看| 91女人视频在线观看| 一本久道久久综合中文字幕| 91国在线观看| 欧美日韩美女一区二区| 欧美日韩大陆一区二区| 91精品国产色综合久久ai换脸| 67194成人在线观看| 777午夜精品视频在线播放| 欧美精品在线一区二区| 337p亚洲精品色噜噜狠狠| 91精品国产欧美一区二区18| 在线观看av不卡| 欧洲精品中文字幕| 94-欧美-setu| 91官网在线观看| 日本道精品一区二区三区| 91国产免费观看| 欧美日韩一区高清| 欧美日产国产精品| 欧美欧美欧美欧美| 日韩三区在线观看| 久久久久国产免费免费| 国产精品三级视频| 亚洲电影一区二区| 久久电影网电视剧免费观看| 国产美女在线观看一区| 91小视频免费观看| 这里只有精品免费| 欧美国产欧美综合| 一区二区三区高清不卡| 狠狠色狠狠色综合日日91app| 国产精品一区二区你懂的| 色综合天天综合网天天看片| 在线不卡免费av| 中文字幕精品一区| 亚洲成人激情社区| 国产精品一级黄| 精品视频999| 国产精品情趣视频| 石原莉奈在线亚洲二区| 成人午夜电影网站| 欧美一区二区三区思思人 | 香蕉成人伊视频在线观看| 韩国一区二区三区| 色婷婷av久久久久久久| 精品国产网站在线观看| 亚洲精品videosex极品| 国产自产视频一区二区三区| 在线观看一区二区视频| 久久亚洲综合色一区二区三区| 最新国产成人在线观看| 久久精品理论片| 欧美系列日韩一区| 国产欧美综合在线观看第十页| 亚洲第一福利视频在线| 成人自拍视频在线观看| 91精品国产品国语在线不卡| 亚洲免费在线视频一区 二区| 激情av综合网| 91精品国产aⅴ一区二区| 国产区在线观看成人精品| 亚洲成av人在线观看| 99精品久久只有精品| 国产亚洲欧美日韩在线一区| 亚洲成av人综合在线观看| 99国产精品久久久久| 久久伊人蜜桃av一区二区| 五月天久久比比资源色| 色视频欧美一区二区三区| 久久精品日产第一区二区三区高清版| 亚洲电影一区二区三区| 91网页版在线| 国产精品视频免费| 国产成人综合亚洲网站| 精品精品国产高清一毛片一天堂| 亚洲国产日韩一区二区| 91免费看视频| 最新热久久免费视频| 成人福利视频网站| 久久亚洲精品小早川怜子| 日本人妖一区二区| 欧美精品久久一区二区三区 | 国产一二三精品| 精品国产乱码久久久久久免费| 婷婷综合另类小说色区| 日本高清视频一区二区| 成人免费视频在线观看| 成人免费视频caoporn| 欧美精品一区二区久久久| 另类小说一区二区三区| 欧美一区二区三区不卡| 天天操天天干天天综合网| 欧美天堂一区二区三区| 夜夜精品视频一区二区 | 日本亚洲一区二区| 91精品婷婷国产综合久久性色| 无码av免费一区二区三区试看| 欧美视频一区二区三区在线观看| 亚洲欧美一区二区久久| 91麻豆成人久久精品二区三区| 中文字幕日韩一区二区| 色综合久久99| 亚洲www啪成人一区二区麻豆| 欧美久久久影院| 蜜臀av一区二区| 久久久噜噜噜久久中文字幕色伊伊| 国产中文字幕精品| 中文字幕高清一区| 色综合久久天天综合网| 亚洲最新视频在线观看| 欧美揉bbbbb揉bbbbb| 亚洲bdsm女犯bdsm网站| 日韩视频免费观看高清完整版 | 日韩午夜中文字幕| 久久成人18免费观看| 久久夜色精品一区| heyzo一本久久综合| 亚洲动漫第一页| 精品久久久久av影院| 国产成人日日夜夜| 亚洲免费av高清| 91精品国产手机| 国产乱码字幕精品高清av | 亚洲色图视频网站| 在线免费不卡视频| 蜜臀久久久99精品久久久久久| 久久综合色播五月| 97精品国产露脸对白| 三级影片在线观看欧美日韩一区二区 | wwwwww.欧美系列| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲一区二区三区四区五区中文| 777精品伊人久久久久大香线蕉| 激情欧美一区二区| 亚洲黄色性网站| 日韩精品中文字幕在线一区| 高清免费成人av| 肉色丝袜一区二区| 国产精品系列在线| 91精品国产综合久久精品 | 欧美精品一区二区久久久| jlzzjlzz国产精品久久| 日韩福利视频网| 中文字幕在线免费不卡| 日韩一区二区三区视频在线观看| 国产成人在线免费观看| 亚洲成a人片在线不卡一二三区| 久久久久久久国产精品影院| 色伊人久久综合中文字幕| 韩国av一区二区三区四区| 亚洲一区免费观看| 国产女主播一区| 欧美日本一道本| 91视频免费观看| 国产激情一区二区三区桃花岛亚洲| 亚洲国产毛片aaaaa无费看 | 亚洲丝袜制服诱惑| 精品国产123| 欧美福利视频一区|