⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 astlist.java

📁 Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京技术学院的数学和计算机科学系的 Shigeru Chiba 所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使
💻 JAVA
字号:
/* * Javassist, a Java-bytecode translator toolkit. * Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved. * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License.  Alternatively, the contents of this file may be used under * the terms of the GNU Lesser General Public License Version 2.1 or later. * * 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. */package javassist.compiler.ast;import javassist.compiler.CompileError;/** * A linked list. * The right subtree must be an ASTList object or null. */public class ASTList extends ASTree {    private ASTree left;    private ASTList right;    public ASTList(ASTree _head, ASTList _tail) {        left = _head;        right = _tail;    }    public ASTList(ASTree _head) {        left = _head;        right = null;    }    public static ASTList make(ASTree e1, ASTree e2, ASTree e3) {        return new ASTList(e1, new ASTList(e2, new ASTList(e3)));    }    public ASTree getLeft() { return left; }    public ASTree getRight() { return right; }    public void setLeft(ASTree _left) { left = _left; }    public void setRight(ASTree _right) {        right = (ASTList)_right;    }    /**     * Returns the car part of the list.     */    public ASTree head() { return left; }    public void setHead(ASTree _head) {        left = _head;    }    /**     * Returns the cdr part of the list.     */    public ASTList tail() { return right; }    public void setTail(ASTList _tail) {        right = _tail;    }    public void accept(Visitor v) throws CompileError { v.atASTList(this); }    public String toString() {        StringBuffer sbuf = new StringBuffer();        sbuf.append("(<");        sbuf.append(getTag());        sbuf.append('>');        ASTList list = this;        while (list != null) {            sbuf.append(' ');            ASTree a = list.left;            sbuf.append(a == null ? "<null>" : a.toString());            list = list.right;        }        sbuf.append(')');        return sbuf.toString();    }    /**     * Returns the number of the elements in this list.     */    public int length() {        return length(this);    }    public static int length(ASTList list) {        if (list == null)            return 0;        int n = 0;        while (list != null) {            list = list.right;            ++n;        }        return n;    }    /**     * Returns a sub list of the list.  The sub list begins with the     * n-th element of the list.     *     * @param nth       zero or more than zero.     */    public ASTList sublist(int nth) {        ASTList list = this;        while (nth-- > 0)            list = list.right;        return list;    }    /**     * Substitutes <code>newObj</code> for <code>oldObj</code> in the     * list.     */    public boolean subst(ASTree newObj, ASTree oldObj) {        for (ASTList list = this; list != null; list = list.right)            if (list.left == oldObj) {                list.left = newObj;                return true;            }        return false;    }    /**     * Appends an object to a list.     */    public static ASTList append(ASTList a, ASTree b) {        return concat(a, new ASTList(b));    }    /**     * Concatenates two lists.     */    public static ASTList concat(ASTList a, ASTList b) {        if (a == null)            return b;        else {            ASTList list = a;            while (list.right != null)                list = list.right;            list.right = b;            return a;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -