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

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

?? reduction.java

?? 大名鼎鼎的java動態(tài)腳本語言。已經(jīng)通過了sun的認(rèn)證
?? JAVA
字號:
/* $Id: Reduction.java,v 1.3 2005/04/12 15:04:59 jstrachan Exp $ Copyright 2003 (C) James Strachan and Bob Mcwhirter. All Rights Reserved. Redistribution and use of this software and associated documentation ("Software"), with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain copyright    statements and notices.  Redistributions must also contain a    copy of this document. 2. Redistributions in binary form must reproduce the    above copyright notice, this list of conditions and the    following disclaimer in the documentation and/or other    materials provided with the distribution. 3. The name "groovy" must not be used to endorse or promote    products derived from this Software without prior written    permission of The Codehaus.  For written permission,    please contact info@codehaus.org. 4. Products derived from this Software may not be called "groovy"    nor may "groovy" appear in their names without prior written    permission of The Codehaus. "groovy" is a registered    trademark of The Codehaus. 5. Due credit should be given to The Codehaus -    http://groovy.codehaus.org/ THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */package org.codehaus.groovy.syntax;import org.codehaus.groovy.GroovyBugError;import org.codehaus.groovy.syntax.Token;import java.util.List;import java.util.ArrayList;import java.util.Collections;/**  *  A syntax reduction, produced by the <code>Parser</code>. * *  @see Parser *  @see Token *  @see CSTNode *  @see Types * *  @author <a href="mailto:bob@werken.com">bob mcwhirter</a> *  @author <a href="mailto:cpoirier@dreaming.org">Chris Poirier</a> * *  @version $Id: Reduction.java,v 1.3 2005/04/12 15:04:59 jstrachan Exp $ */public class Reduction extends CSTNode{    public static final Reduction EMPTY = new Reduction();  //---------------------------------------------------------------------------  // INITIALIZATION AND SUCH    private List    elements  = null;    // The set of child nodes       private boolean marked    = false;   // Used for completion marking by some parts of the parser   /**    *  Initializes the <code>Reduction</code> with the specified root.    */    public Reduction( Token root )     {        elements = new ArrayList();        set( 0, root );    }   /**    *  Initializes the <code>Reduction</code> to empty.    */    private Reduction()     {        elements = Collections.EMPTY_LIST;    }   /**    *  Creates a new <code>Reduction</code> with <code>Token.NULL</code>    *  as it's root.    */    public static Reduction newContainer()     {        return new Reduction( Token.NULL );    }  //---------------------------------------------------------------------------  // MEMBER ACCESS   /**    *  Returns true if the node is completely empty (no root, even).    */    public boolean isEmpty()     {        return size() == 0;    }   /**    *  Returns the number of elements in the node.    */    public int size()     {        return elements.size();    }   /**    *  Returns the specified element, or null.    */    public CSTNode get( int index )     {        CSTNode element = null;        if( index < size() )         {            element = (CSTNode)elements.get( index );        }        return element;    }   /**    *  Returns the root of the node, the Token that indicates it's    *  type.  Returns null if there is no root (usually only if the    *  node is a placeholder of some kind -- see isEmpty()).    */    public Token getRoot()     {        if( size() > 0 )        {            return (Token)elements.get(0);        }        else        {            return null;        }    }   /**    *  Marks the node a complete expression.    */    public void markAsExpression()     {        marked = true;    }   /**    *  Returns true if the node is a complete expression.    */    public boolean isAnExpression()     {        if( isA(Types.COMPLEX_EXPRESSION) )         {            return true;        }        return marked;    }  //---------------------------------------------------------------------------  // OPERATIONS   /**    *  Adds an element to the node.    */    public CSTNode add( CSTNode element )     {        return set( size(), element );    }   /**    *  Sets an element in at the specified index.    */    public CSTNode set( int index, CSTNode element )     {                if( elements == null )         {            throw new GroovyBugError( "attempt to set() on a EMPTY Reduction" );        }        if( index == 0 && !(element instanceof Token) )         {            //            // It's not the greatest of design that the interface allows this, but it            // is a tradeoff with convenience, and the convenience is more important.            throw new GroovyBugError( "attempt to set() a non-Token as root of a Reduction" );        }        //        // Fill slots with nulls, if necessary.        int count = elements.size();        if( index >= count )         {            for( int i = count; i <= index; i++ )             {                elements.add( null );            }        }        //        // Then set in the element.        elements.set( index, element );        return element;    }   /**    *  Removes a node from the <code>Reduction</code>.  You cannot remove     *  the root node (index 0).    */    public CSTNode remove( int index )    {        if( index < 1 )         {            throw new GroovyBugError( "attempt to remove() root node of Reduction" );        }        return (CSTNode)elements.remove( index );    }   /**    *  Creates a <code>Reduction</code> from this node.  Returns self if the    *  node is already a <code>Reduction</code>.    */    public Reduction asReduction()     {        return this;    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区精品视频| 成人开心网精品视频| 韩国成人福利片在线播放| 成人激情文学综合网| 欧美日韩精品专区| 中文字幕欧美日本乱码一线二线| 亚洲h精品动漫在线观看| 国产成人在线观看免费网站| 欧美人体做爰大胆视频| 中文字幕免费一区| 精品一区二区三区免费视频| 色欧美日韩亚洲| 精品国产一区a| 三级在线观看一区二区 | 日韩精品91亚洲二区在线观看| 成人天堂资源www在线| 日韩女同互慰一区二区| 亚洲成人7777| 色婷婷亚洲综合| 国产精品高潮呻吟久久| 国产乱人伦偷精品视频不卡| 日韩视频一区二区三区| 香蕉久久一区二区不卡无毒影院| 91视频xxxx| 亚洲人精品午夜| 97se亚洲国产综合在线| 中文字幕不卡在线观看| 国产成人av一区| 久久精品在这里| 国产中文字幕一区| 久久久精品影视| 国产精品99久久久久| 久久久亚洲精品石原莉奈| 麻豆国产91在线播放| 日韩午夜小视频| 久久精品免费看| 精品久久久久久久久久久院品网 | 91色.com| 一区二区免费看| 欧美亚洲一区三区| 亚洲一区二区三区激情| 欧美日韩国产综合视频在线观看| 亚洲一卡二卡三卡四卡五卡| 欧美性猛片xxxx免费看久爱| 五月天激情综合| 日韩视频免费观看高清完整版在线观看 | 另类中文字幕网| 日韩一区二区免费在线电影| 精品一区二区在线看| 久久久久久久久久久99999| 国产精一品亚洲二区在线视频| 久久精子c满五个校花| 成人avav影音| 亚洲va天堂va国产va久| 精品国产免费一区二区三区香蕉 | 免费欧美在线视频| 久久久精品国产免大香伊 | 日韩美女久久久| 欧美精品tushy高清| 国产在线播精品第三| 亚洲欧美综合另类在线卡通| 欧美在线免费观看视频| 蜜臀av亚洲一区中文字幕| 国产女人水真多18毛片18精品视频 | 亚洲男女毛片无遮挡| 成人国产精品免费网站| 亚洲精品国产精华液| 日韩一级免费观看| 成人高清免费观看| 天天av天天翘天天综合网 | 亚洲成a人片在线不卡一二三区| 欧美精品一级二级三级| 蜜乳av一区二区| 久久久无码精品亚洲日韩按摩| gogo大胆日本视频一区| 免费成人在线播放| 中文字幕中文字幕在线一区 | 在线免费一区三区| 国内外成人在线| 亚洲夂夂婷婷色拍ww47| 欧美一卡二卡在线观看| 97久久精品人人做人人爽| 精彩视频一区二区三区| 一区二区三区波多野结衣在线观看| 91精品欧美一区二区三区综合在| 国产91精品精华液一区二区三区 | 91久久久免费一区二区| 亚洲免费资源在线播放| 成人午夜av电影| 一区二区三区资源| 欧美一区二区久久| 夜夜嗨av一区二区三区网页| 美腿丝袜一区二区三区| 欧美在线视频你懂得| 日韩毛片视频在线看| 波多野结衣的一区二区三区| 久久久久9999亚洲精品| 精品一区二区日韩| 欧美成人三级电影在线| 麻豆视频观看网址久久| 欧美一区二区三级| 日韩制服丝袜先锋影音| 欧美日韩不卡在线| 日韩福利电影在线| 欧美一级艳片视频免费观看| 日本午夜精品一区二区三区电影| 欧美一区二区三区啪啪| 国模少妇一区二区三区| 欧美亚洲动漫精品| 亚洲一区二区三区四区五区中文 | 亚洲精品国产无套在线观| 成人99免费视频| 国产精品拍天天在线| 波多野结衣中文一区| 亚洲欧洲精品一区二区三区不卡| 91免费国产在线观看| 亚洲综合激情小说| 日韩一区二区免费电影| 国内精品国产成人国产三级粉色| 欧美国产在线观看| 日本精品一级二级| 午夜精品久久久久久| 欧美大片一区二区三区| 麻豆国产欧美一区二区三区| 国产精品久久久久永久免费观看 | 91麻豆精品国产91久久久久久| 免费成人你懂的| 国产欧美精品一区二区色综合朱莉| av高清不卡在线| 亚洲影院在线观看| 91精品国产欧美一区二区18| 成人免费视频caoporn| 亚洲在线观看免费| 久久综合狠狠综合久久综合88| 福利视频网站一区二区三区| 亚洲精品久久嫩草网站秘色| 欧美一区欧美二区| 国精产品一区一区三区mba视频| 国产女人水真多18毛片18精品视频| 欧美在线免费观看亚洲| 国产一区二区三区免费在线观看| 国产精品久久久久四虎| 欧美日韩一本到| 久久av中文字幕片| 国产精品视频麻豆| 欧美日韩激情在线| 国产制服丝袜一区| 亚洲午夜久久久| 久久久国产精品麻豆| 在线欧美日韩精品| 免费成人在线观看视频| 亚洲色图第一区| 日韩欧美的一区| 日本久久电影网| 捆绑调教美女网站视频一区| 亚洲主播在线播放| 中文一区二区完整视频在线观看 | 亚洲欧洲精品一区二区三区| 精品蜜桃在线看| 国产综合久久久久久久久久久久 | 欧美亚洲国产一区二区三区va | 久久99国内精品| 亚洲欧美乱综合| 91精品国产手机| 日韩1区2区3区| 欧美一区二区免费观在线| 高清成人免费视频| 亚洲午夜久久久久久久久电影网| 成人一区二区三区在线观看| 91在线一区二区三区| 亚洲精品在线免费播放| 亚洲精品乱码久久久久久日本蜜臀| 成人免费观看男女羞羞视频| 中文字幕一区二区三区在线播放| 成人免费毛片app| 亚洲另类春色国产| 在线看不卡av| 日韩成人免费在线| 久久精品视频一区二区三区| yourporn久久国产精品| 亚洲天天做日日做天天谢日日欢| 一区二区三区在线免费视频| 欧美系列一区二区| ●精品国产综合乱码久久久久| 懂色av中文字幕一区二区三区 | 91在线丨porny丨国产| 亚洲精品成人a在线观看| 91精品婷婷国产综合久久| 国产精品66部| 亚洲桃色在线一区| 538在线一区二区精品国产| 91亚洲国产成人精品一区二三 | 狠狠色丁香婷婷综合| 亚洲电影一区二区三区| 一区二区在线电影| 亚洲区小说区图片区qvod| 国产拍欧美日韩视频二区| 久久久美女艺术照精彩视频福利播放| 欧美性色欧美a在线播放| 91精品一区二区三区久久久久久|