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

📄 treeinfo.java

📁 GJC(Generic Java Compiler)编译器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            return ((Select) tree).name;        default:            return null;        }    }    /**      * If this tree is a qualified identifier, its return fully qualified name,      *  otherwise return null.      */    public static Name fullName(Tree tree) {        tree = skipParens(tree);        switch (tree.tag) {        case Tree.IDENT:            return ((Ident) tree).name;        case Tree.SELECT:            Name sname = fullName(((Select) tree).selected);            return sname == null ? null : sname.append('.', name(tree));        default:            return null;        }    }    /**      * If this tree is an identifier or a field, return its symbol,      *  otherwise return null.      */    public static Symbol symbol(Tree tree) {        tree = skipParens(tree);        switch (tree.tag) {        case Tree.IDENT:            return ((Ident) tree).sym;        case Tree.SELECT:            return ((Select) tree).sym;        default:            return null;        }    }    /**      * If this tree is an identifier or a field, set its symbol, otherwise skip.      */    public static void setSymbol(Tree tree, Symbol sym) {        tree = skipParens(tree);        switch (tree.tag) {        case Tree.IDENT:            ((Ident) tree).sym = sym;            break;        case Tree.SELECT:            ((Select) tree).sym = sym;            break;        default:        }    }    /**      * If this tree is a declaration or a block, return its flags field,      *  otherwise return 0.      */    public static long flags(Tree tree) {        switch (tree.tag) {        case Tree.VARDEF:            return ((VarDef) tree).flags;        case Tree.METHODDEF:            return ((MethodDef) tree).flags;        case Tree.CLASSDEF:            return ((ClassDef) tree).flags;        case Tree.BLOCK:            return ((Block) tree).flags;        default:            return 0;        }    }    /**      * Return first (smallest) flag in `flags':      *  pre: flags != 0      */    public static long firstFlag(long flags) {        int flag = 1;        while ((flag & StandardFlags) != 0 && (flag & flags) == 0)            flag = flag << 1;        return flag;    }    /**      * Return flags as a string, separated by " ".      */    public static String flagNames(long flags) {        StringBuffer sbuf = new StringBuffer();        int i = 0;        long f = flags & StandardFlags;        while (f != 0) {            if ((f & 1) != 0) {                if (sbuf.length() != 0)                    sbuf.append(" ");                sbuf.append(flagName[i]);            }            f = f >> 1;            i++;        }        return sbuf.toString();    }    private static final String[] flagName = {"public", "private", "protected", "static",    "final", "synchronized", "volatile", "transient", "native", "interface",    "abstract", "strictfp"};    /**     * Operator precedences values.     */    public static final int notExpression = -1;    /**     * Operator precedences values.     */    public static final int noPrec = 0;    /**     * Operator precedences values.     */    public static final int assignPrec = 1;    /**     * Operator precedences values.     */    public static final int assignopPrec = 2;    /**     * Operator precedences values.     */    public static final int condPrec = 3;    /**     * Operator precedences values.     */    public static final int orPrec = 4;    /**     * Operator precedences values.     */    public static final int andPrec = 5;    /**     * Operator precedences values.     */    public static final int bitorPrec = 6;    /**     * Operator precedences values.     */    public static final int bitxorPrec = 7;    /**     * Operator precedences values.     */    public static final int bitandPrec = 8;    /**     * Operator precedences values.     */    public static final int eqPrec = 9;    /**     * Operator precedences values.     */    public static final int ordPrec = 10;    /**     * Operator precedences values.     */    public static final int shiftPrec = 11;    /**     * Operator precedences values.     */    public static final int addPrec = 12;    /**     * Operator precedences values.     */    public static final int mulPrec = 13;    /**     * Operator precedences values.     */    public static final int prefixPrec = 14;    /**     * Operator precedences values.     */    public static final int postfixPrec = 15;    /**     * Operator precedences values.     */    public static final int precCount = 16;    /**     * Map operators to their precedence levels.     */    public static int opPrec(int op) {        switch (op) {        case Tree.POS:        case Tree.NEG:        case Tree.NOT:        case Tree.COMPL:        case Tree.PREINC:        case Tree.PREDEC:            return prefixPrec;        case Tree.POSTINC:        case Tree.POSTDEC:        case Tree.NULLCHK:            return postfixPrec;        case Tree.ASSIGN:            return assignPrec;        case Tree.BITOR_ASG:        case Tree.BITXOR_ASG:        case Tree.BITAND_ASG:        case Tree.SL_ASG:        case Tree.SR_ASG:        case Tree.USR_ASG:        case Tree.PLUS_ASG:        case Tree.MINUS_ASG:        case Tree.MUL_ASG:        case Tree.DIV_ASG:        case Tree.MOD_ASG:            return assignopPrec;        case Tree.OR:            return orPrec;        case Tree.AND:            return andPrec;        case Tree.EQ:        case Tree.NE:            return eqPrec;        case Tree.LT:        case Tree.GT:        case Tree.LE:        case Tree.GE:            return ordPrec;        case Tree.BITOR:            return bitorPrec;        case Tree.BITXOR:            return bitxorPrec;        case Tree.BITAND:            return bitandPrec;        case Tree.SL:        case Tree.SR:        case Tree.USR:            return shiftPrec;        case Tree.PLUS:        case Tree.MINUS:            return addPrec;        case Tree.MUL:        case Tree.DIV:        case Tree.MOD:            return mulPrec;        case Tree.TYPETEST:            return ordPrec;        default:            throw new AssertionError();        }    }}

⌨️ 快捷键说明

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