1 /* 2 * Javassist, a Java-bytecode translator toolkit. 3 * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved. 4 * 5 * The contents of this file are subject to the Mozilla Public License Version 6 * 1.1 (the "License"); you may not use this file except in compliance with 7 * the License. Alternatively, the contents of this file may be used under 8 * the terms of the GNU Lesser General Public License Version 2.1 or later, 9 * or the Apache License Version 2.0. 10 * 11 * Software distributed under the License is distributed on an "AS IS" basis, 12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 13 * for the specific language governing rights and limitations under the 14 * License. 15 */ 16 17 package javassist.compiler.ast; 18 19 import javassist.compiler.CompileError; 20 21 /** 22 * Binary expression. 23 * 24 * <p>If the operator is +, the right node might be null. 25 * See TypeChecker.atBinExpr(). 26 */ 27 public class BinExpr extends Expr { 28 /* operator must be either of: 29 * ||, &&, |, ^, &, ==, !=, <=, >=, <, >, 30 * <<, >>, >>>, +, -, *, /, % 31 */ 32 33 /** default serialVersionUID */ 34 private static final long serialVersionUID = 1L; 35 BinExpr(int op, ASTree _head, ASTList _tail)36 private BinExpr(int op, ASTree _head, ASTList _tail) { 37 super(op, _head, _tail); 38 } 39 makeBin(int op, ASTree oprand1, ASTree oprand2)40 public static BinExpr makeBin(int op, ASTree oprand1, ASTree oprand2) { 41 return new BinExpr(op, oprand1, new ASTList(oprand2)); 42 } 43 44 @Override accept(Visitor v)45 public void accept(Visitor v) throws CompileError { v.atBinExpr(this); } 46 } 47