jctree.java
来自「是一款用JAVA 编写的编译器 具有很强的编译功能」· Java 代码 · 共 2,048 行 · 第 1/5 页
JAVA
2,048 行
*/ public static class JCThrow extends JCStatement implements ThrowTree { public JCExpression expr; protected JCThrow(JCTree expr) { this.expr = (JCExpression)expr; } @Override public void accept(Visitor v) { v.visitThrow(this); } public Kind getKind() { return Kind.THROW; } public JCExpression getExpression() { return expr; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitThrow(this, d); } @Override public int getTag() { return THROW; } } /** * An assert statement. */ public static class JCAssert extends JCStatement implements AssertTree { public JCExpression cond; public JCExpression detail; protected JCAssert(JCExpression cond, JCExpression detail) { this.cond = cond; this.detail = detail; } @Override public void accept(Visitor v) { v.visitAssert(this); } public Kind getKind() { return Kind.ASSERT; } public JCExpression getCondition() { return cond; } public JCExpression getDetail() { return detail; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitAssert(this, d); } @Override public int getTag() { return ASSERT; } } /** * A method invocation */ public static class JCMethodInvocation extends JCExpression implements MethodInvocationTree { public List<JCExpression> typeargs; public JCExpression meth; public List<JCExpression> args; public Type varargsElement; protected JCMethodInvocation(List<JCExpression> typeargs, JCExpression meth, List<JCExpression> args) { this.typeargs = (typeargs == null) ? List.<JCExpression>nil() : typeargs; this.meth = meth; this.args = args; } @Override public void accept(Visitor v) { v.visitApply(this); } public Kind getKind() { return Kind.METHOD_INVOCATION; } public List<JCExpression> getTypeArguments() { return typeargs; } public JCExpression getMethodSelect() { return meth; } public List<JCExpression> getArguments() { return args; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitMethodInvocation(this, d); } @Override public JCMethodInvocation setType(Type type) { super.setType(type); return this; } @Override public int getTag() { return(APPLY); } } /** * A new(...) operation. */ public static class JCNewClass extends JCExpression implements NewClassTree { public JCExpression encl; public List<JCExpression> typeargs; public JCExpression clazz; public List<JCExpression> args; public JCClassDecl def; public Symbol constructor; public Type varargsElement; protected JCNewClass(JCExpression encl, List<JCExpression> typeargs, JCExpression clazz, List<JCExpression> args, JCClassDecl def) { this.encl = encl; this.typeargs = (typeargs == null) ? List.<JCExpression>nil() : typeargs; this.clazz = clazz; this.args = args; this.def = def; } @Override public void accept(Visitor v) { v.visitNewClass(this); } public Kind getKind() { return Kind.NEW_CLASS; } public JCExpression getEnclosingExpression() { // expr.new C< ... > ( ... ) return encl; } public List<JCExpression> getTypeArguments() { return typeargs; } public JCExpression getIdentifier() { return clazz; } public List<JCExpression> getArguments() { return args; } public JCClassDecl getClassBody() { return def; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitNewClass(this, d); } @Override public int getTag() { return NEWCLASS; } } /** * A new[...] operation. */ public static class JCNewArray extends JCExpression implements NewArrayTree { public JCExpression elemtype; public List<JCExpression> dims; public List<JCExpression> elems; protected JCNewArray(JCExpression elemtype, List<JCExpression> dims, List<JCExpression> elems) { this.elemtype = elemtype; this.dims = dims; this.elems = elems; } @Override public void accept(Visitor v) { v.visitNewArray(this); } public Kind getKind() { return Kind.NEW_ARRAY; } public JCExpression getType() { return elemtype; } public List<JCExpression> getDimensions() { return dims; } public List<JCExpression> getInitializers() { return elems; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitNewArray(this, d); } @Override public int getTag() { return NEWARRAY; } } /** * A parenthesized subexpression ( ... ) */ public static class JCParens extends JCExpression implements ParenthesizedTree { public JCExpression expr; protected JCParens(JCExpression expr) { this.expr = expr; } @Override public void accept(Visitor v) { v.visitParens(this); } public Kind getKind() { return Kind.PARENTHESIZED; } public JCExpression getExpression() { return expr; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitParenthesized(this, d); } @Override public int getTag() { return PARENS; } } /** * A assignment with "=". */ public static class JCAssign extends JCExpression implements AssignmentTree { public JCExpression lhs; public JCExpression rhs; protected JCAssign(JCExpression lhs, JCExpression rhs) { this.lhs = lhs; this.rhs = rhs; } @Override public void accept(Visitor v) { v.visitAssign(this); } public Kind getKind() { return Kind.ASSIGNMENT; } public JCExpression getVariable() { return lhs; } public JCExpression getExpression() { return rhs; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitAssignment(this, d); } @Override public int getTag() { return ASSIGN; } } /** * An assignment with "+=", "|=" ... */ public static class JCAssignOp extends JCExpression implements CompoundAssignmentTree { private int opcode; public JCExpression lhs; public JCExpression rhs; public Symbol operator; protected JCAssignOp(int opcode, JCTree lhs, JCTree rhs, Symbol operator) { this.opcode = opcode; this.lhs = (JCExpression)lhs; this.rhs = (JCExpression)rhs; this.operator = operator; } @Override public void accept(Visitor v) { v.visitAssignop(this); } public Kind getKind() { return TreeInfo.tagToKind(getTag()); } public JCExpression getVariable() { return lhs; } public JCExpression getExpression() { return rhs; } public Symbol getOperator() { return operator; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitCompoundAssignment(this, d); } @Override public int getTag() { return opcode; } } /** * A unary operation. */ public static class JCUnary extends JCExpression implements UnaryTree { private int opcode; public JCExpression arg; public Symbol operator; protected JCUnary(int opcode, JCExpression arg) { this.opcode = opcode; this.arg = arg; } @Override public void accept(Visitor v) { v.visitUnary(this); } public Kind getKind() { return TreeInfo.tagToKind(getTag()); } public JCExpression getExpression() { return arg; } public Symbol getOperator() { return operator; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitUnary(this, d); } @Override public int getTag() { return opcode; } public void setTag(int tag) { opcode = tag; } } /** * A binary operation. */ public static class JCBinary extends JCExpression implements BinaryTree { private int opcode; public JCExpression lhs; public JCExpression rhs; public Symbol operator; protected JCBinary(int opcode, JCExpression lhs, JCExpression rhs, Symbol operator) { this.opcode = opcode; this.lhs = lhs; this.rhs = rhs; this.operator = operator; } @Override public void accept(Visitor v) { v.visitBinary(this); } public Kind getKind() { return TreeInfo.tagToKind(getTag()); } public JCExpression getLeftOperand() { return lhs; } public JCExpression getRightOperand() { return rhs; } public Symbol getOperator() { return operator; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitBinary(this, d); } @Override public int getTag() { return opcode; } } /** * A type cast. */ public static class JCTypeCast extends JCExpression implements TypeCastTree { public JCTree clazz; public JCExpression expr; protected JCTypeCast(JCTree clazz, JCExpression expr) { this.clazz = clazz; this.expr = expr; } @Override public void accept(Visitor v) { v.visitTypeCast(this); } public Kind getKind() { return Kind.TYPE_CAST; } public JCTree getType() { return clazz; } public JCExpression getExpression() { return expr; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitTypeCast(this, d); } @Override public int getTag() { return TYPECAST; } } /** * A type test. */ public static class JCInstanceOf extends JCExpression implements InstanceOfTree { public JCExpression expr; public JCTree clazz; protected JCInstanceOf(JCExpression expr, JCTree clazz) { this.expr = expr; this.clazz = clazz; } @Override public void accept(Visitor v) { v.visitTypeTest(this); } public Kind getKind() { return Kind.INSTANCE_OF; } public JCTree getType() { return clazz; } public JCExpression getExpression() { return expr; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitInstanceOf(this, d); } @Override public int getTag() { return TYPETEST; } } /** * An array selection */ public static class JCArrayAccess extends JCExpression implements ArrayAccessTree { public JCExpression indexed; public JCExpression index; protected JCArrayAccess(JCExpression indexed, JCExpression index) { this.indexed = indexed; this.index = index; } @Override public void accept(Visitor v) { v.visitIndexed(this); } public Kind getKind() { return Kind.ARRAY_ACCESS; } public JCExpression getExpression() { return indexed; } public JCExpression getIndex() { return index; } @Override public <R,D> R accept(TreeVisitor<R,D> v, D d) { return v.visitArrayAccess(this, d); } @Override public int getTag() { return INDEXED; } } /** * Selects through packages and classes * @param selected selected Tree hierarchie * @param selector name of field to select thru * @param sym symbol of the selected class */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?