• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java JCBinary类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.sun.tools.javac.tree.JCTree.JCBinary的典型用法代码示例。如果您正苦于以下问题:Java JCBinary类的具体用法?Java JCBinary怎么用?Java JCBinary使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



JCBinary类属于com.sun.tools.javac.tree.JCTree包,在下文中一共展示了JCBinary类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: diffBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
protected int diffBinary(JCBinary oldT, JCBinary newT, int[] bounds) {
    int localPointer = bounds[0];

    int[] lhsBounds = getBounds(oldT.lhs);
    copyTo(localPointer, lhsBounds[0]);
    localPointer = diffTree(oldT.lhs, newT.lhs, lhsBounds);
    if (oldT.getTag() != newT.getTag()) {
        copyTo(localPointer, oldT.pos);
        printer.print(operatorName(newT.getTag()));
        localPointer = oldT.pos + operatorName(oldT.getTag()).toString().length();
    }
    int[] rhsBounds = getCommentCorrectedBounds(oldT.rhs);
    rhsBounds[0] = copyUpTo(localPointer, rhsBounds[0]);
    localPointer = diffTree(oldT.rhs, newT.rhs, rhsBounds);
    return copyUpTo(localPointer, bounds[1]);
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:17,代码来源:CasualDiff.java


示例2: translateTopLevelClass

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
@Override
public List<JCTree> translateTopLevelClass(Env<AttrContext> env, JCTree cdef, TreeMaker make) {
    List<JCTree> result = super.translateTopLevelClass(env, cdef, make);

    new TreeScanner() {
        @Override
        public void visitBinary(JCBinary tree) {
            hasNullCheck |= tree.operator.getSimpleName().contentEquals("!=") &&
                            "resource".equals(String.valueOf(TreeInfo.name(tree.lhs))) &&
                            TreeInfo.isNull(tree.rhs);
            super.visitBinary(tree);
        }
    }.scan(result);

    return result;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:17,代码来源:TwrAvoidNullCheck.java


示例3: isThereInMiniTree

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
/**
 * This function walks into a tree with nodes of type JCBinary to search for 
 * a string as one of the elements of the tree.
 * @param toTest The String searched as Element in the tree.
 * @param expression The bifurcation tree searched.
 * @return True if the string was found, or False.
 */
private boolean isThereInMiniTree(String toTest, JCTree expression) {
	if(expression instanceof JCParens){
		if(isThereInMiniTree(toTest, ((JCParens) expression).expr))
			return true;
	} else if(expression instanceof JCIdent){
		if(((JCIdent) expression).name.toString().equals(toTest))
			return true;
	} else if(expression instanceof JCBinary){
		if(isThereInMiniTree(toTest, ((JCBinary) expression).rhs))
			return true;
		if(isThereInMiniTree(toTest, ((JCBinary) expression).lhs))
			return true;
	}
	return false;
}
 
开发者ID:alyssonfm,项目名称:jmlok,代码行数:23,代码来源:Examinator.java


示例4: hasTrueValue

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
/**
 * Verify if the boolean expression have a true value despite of any variable values. 
 * @param expression The boolean expression examined.
 * @return 1 When the expression is always true.
 */
private int hasTrueValue(JCTree expression) {
	if(expression instanceof JCParens){
		if(hasTrueValue(((JCParens)expression).expr) != 0)
			return 1;
	}else if(expression instanceof JCLiteral){
		if(((JCLiteral) expression).value == null)
			return VAR_FALSE_VALUE;
		return (int) ((JCLiteral) expression).value;
	}else if(expression instanceof JmlSingleton){
		return 1;
	}else if(expression instanceof JCBinary){
		return resolveBooleanOperations(expression);
	}
	return VAR_FALSE_VALUE;
}
 
开发者ID:alyssonfm,项目名称:jmlok,代码行数:21,代码来源:Examinator.java


示例5: matchBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
@Override
public Description matchBinary(BinaryTree tree, VisitorState state) {
  Tree parent = state.getPath().getParentPath().getLeaf();
  if (!(parent instanceof BinaryTree)) {
    return NO_MATCH;
  }
  if (TreeInfo.opPrec(((JCBinary) tree).getTag())
      == TreeInfo.opPrec(((JCBinary) parent).getTag())) {
    return NO_MATCH;
  }
  if (!isConfusing(tree.getKind(), parent.getKind())) {
    return NO_MATCH;
  }
  return describeMatch(
      tree, SuggestedFix.builder().prefixWith(tree, "(").postfixWith(tree, ")").build());
}
 
开发者ID:google,项目名称:error-prone,代码行数:17,代码来源:OperatorPrecedence.java


示例6: visitBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
@Override public void visitBinary(JCBinary tree) {
	String op = operator(treeTag(tree));
	print(tree.lhs);
	print(" ");
	print(op);
	print(" ");
	print(tree.rhs);
}
 
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:9,代码来源:PrettyPrinter.java


示例7: generateCompareFloatOrDouble

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
public JCStatement generateCompareFloatOrDouble(JCExpression thisDotField, JCExpression otherDotField,
	JavacTreeMaker maker, JavacNode node, boolean isDouble) {
	
	/* if (Float.compare(fieldName, other.fieldName) != 0) return false; */
	JCExpression clazz = genJavaLangTypeRef(node, isDouble ? "Double" : "Float");
	List<JCExpression> args = List.of(thisDotField, otherDotField);
	JCBinary compareCallEquals0 = maker.Binary(CTC_NOT_EQUAL, maker.Apply(
		List.<JCExpression>nil(), maker.Select(clazz, node.toName("compare")), args), maker.Literal(0));
	return maker.If(compareCallEquals0, returnBool(maker, false), null);
}
 
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:11,代码来源:HandleEqualsAndHashCode.java


示例8: returnVarNameIfNullCheck

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
/**
 * Checks if the statement is of the form 'if (x == null) {throw WHATEVER;},
 * where the block braces are optional. If it is of this form, returns "x".
 * If it is not of this form, returns null.
 */
public String returnVarNameIfNullCheck(JCStatement stat) {
	if (!(stat instanceof JCIf)) return null;
	
	/* Check that the if's statement is a throw statement, possibly in a block. */ {
		JCStatement then = ((JCIf) stat).thenpart;
		if (then instanceof JCBlock) {
			List<JCStatement> stats = ((JCBlock) then).stats;
			if (stats.length() == 0) return null;
			then = stats.get(0);
		}
		if (!(then instanceof JCThrow)) return null;
	}
	
	/* Check that the if's conditional is like 'x == null'. Return from this method (don't generate
	   a nullcheck) if 'x' is equal to our own variable's name: There's already a nullcheck here. */ {
		JCExpression cond = ((JCIf) stat).cond;
		while (cond instanceof JCParens) cond = ((JCParens) cond).expr;
		if (!(cond instanceof JCBinary)) return null;
		JCBinary bin = (JCBinary) cond;
		if (!CTC_EQUAL.equals(treeTag(bin))) return null;
		if (!(bin.lhs instanceof JCIdent)) return null;
		if (!(bin.rhs instanceof JCLiteral)) return null;
		if (!CTC_BOT.equals(typeTag(bin.rhs))) return null;
		return ((JCIdent) bin.lhs).name.toString();
	}
}
 
开发者ID:git03394538,项目名称:lombok-ianchiu,代码行数:32,代码来源:HandleNonNull.java


示例9: visitBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
public void visitBinary(JCBinary that) {
    try {
        print("JCBinary:");
    } catch (Exception e) {
    }
    super.visitBinary(that);
}
 
开发者ID:pcgomes,项目名称:javaparser2jctree,代码行数:8,代码来源:PrintAstVisitor.java


示例10: visitBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
public void visitBinary(JCBinary tree) {
	try {
		int ownprec = isOwnPrec(tree);
		String opname = operatorName(treeTag(tree));
		open(prec, ownprec);
		printExpr(tree.lhs, ownprec);
		print(" " + opname + " ");
		printExpr(tree.rhs, ownprec + 1);
		close(prec, ownprec);
	} catch (IOException e) {
		throw new UncheckedIOException(e);
	}
}
 
开发者ID:mobmead,项目名称:EasyMPermission,代码行数:14,代码来源:PrettyCommentsPrinter.java


示例11: generateCompareFloatOrDouble

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
public JCStatement generateCompareFloatOrDouble(JCExpression thisDotField, JCExpression otherDotField,
		JavacTreeMaker maker, JavacNode node, boolean isDouble) {
	/* if (Float.compare(fieldName, other.fieldName) != 0) return false; */
	JCExpression clazz = genJavaLangTypeRef(node, isDouble ? "Double" : "Float");
	List<JCExpression> args = List.of(thisDotField, otherDotField);
	JCBinary compareCallEquals0 = maker.Binary(CTC_NOT_EQUAL, maker.Apply(
			List.<JCExpression>nil(), maker.Select(clazz, node.toName("compare")), args), maker.Literal(0));
	return maker.If(compareCallEquals0, returnBool(maker, false), null);
}
 
开发者ID:mobmead,项目名称:EasyMPermission,代码行数:10,代码来源:HandleEqualsAndHashCode.java


示例12: inline

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
@Override
public JCBinary inline(Inliner inliner) throws CouldNotResolveImportException {
  return inliner.maker().Binary(
      OP_CODES.get(getKind()), 
      getLeftOperand().inline(inliner),
      getRightOperand().inline(inliner));
}
 
开发者ID:sivakumar-kailasam,项目名称:refactor-faster,代码行数:8,代码来源:UBinary.java


示例13: visitBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
@Override public void visitBinary(JCBinary tree) {
	printNode(tree);
	child("lhs", tree.lhs);
	property("(operator)", operatorName(getTag(tree)));
	child("rhs", tree.rhs);
	indent--;
}
 
开发者ID:evant,项目名称:android-retrolambda-lombok,代码行数:8,代码来源:JcTreePrinter.java


示例14: visitBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
@Override public void visitBinary(JCBinary node) {
	BinaryExpression expr = new BinaryExpression();
	expr.rawLeft(toTree(node.getLeftOperand()));
	expr.rawRight(toTree(node.getRightOperand()));
	expr.astOperator(JcTreeBuilder.BINARY_OPERATORS.inverse().get(getTag(node)));
	set(node, expr);
}
 
开发者ID:evant,项目名称:android-retrolambda-lombok,代码行数:8,代码来源:JcTreeConverter.java


示例15: inline

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
@Override
public JCBinary inline(Inliner inliner) throws CouldNotResolveImportException {
  return inliner
      .maker()
      .Binary(
          OP_CODES.get(getKind()),
          getLeftOperand().inline(inliner),
          getRightOperand().inline(inliner));
}
 
开发者ID:google,项目名称:error-prone,代码行数:10,代码来源:UBinary.java


示例16: visitBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
@Override
public Choice<State<JCBinary>> visitBinary(final BinaryTree node, State<?> state) {
  final Tag tag = ((JCBinary) node).getTag();
  return chooseSubtrees(
      state,
      s -> unifyExpression(node.getLeftOperand(), s),
      s -> unifyExpression(node.getRightOperand(), s),
      (l, r) -> maker().Binary(tag, l, r));
}
 
开发者ID:google,项目名称:error-prone,代码行数:10,代码来源:PlaceholderUnificationVisitor.java


示例17: rewriteCompoundAssignment

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
/** Desugars a compound assignment, making the cast explicit. */
private static Optional<Fix> rewriteCompoundAssignment(
    CompoundAssignmentTree tree, VisitorState state) {
  CharSequence var = state.getSourceForNode(tree.getVariable());
  CharSequence expr = state.getSourceForNode(tree.getExpression());
  if (var == null || expr == null) {
    return Optional.absent();
  }
  switch (tree.getKind()) {
    case RIGHT_SHIFT_ASSIGNMENT:
      // narrowing the result of a signed right shift does not lose information
      return Optional.absent();
    default:
      break;
  }
  Kind regularAssignmentKind = regularAssignmentFromCompound(tree.getKind());
  String op = assignmentToString(regularAssignmentKind);

  // Add parens to the rhs if necessary to preserve the current precedence
  // e.g. 's -= 1 - 2' -> 's = s - (1 - 2)'
  if (tree.getExpression() instanceof JCBinary) {
    Kind rhsKind = tree.getExpression().getKind();
    if (!OperatorPrecedence.from(rhsKind)
        .isHigher(OperatorPrecedence.from(regularAssignmentKind))) {
      expr = String.format("(%s)", expr);
    }
  }

  // e.g. 's *= 42' -> 's = (short) (s * 42)'
  String castType = getType(tree.getVariable()).toString();
  String replacement = String.format("%s = (%s) (%s %s %s)", var, castType, var, op, expr);
  return Optional.of(SuggestedFix.replace(tree, replacement));
}
 
开发者ID:google,项目名称:error-prone,代码行数:34,代码来源:NarrowingCompoundAssignment.java


示例18: visitBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
public void visitBinary(JCBinary tree) {
    try {
        int ownprec = TreeInfo.opPrec(tree.getTag());
        String opname = operatorName(tree.getTag());
        open(prec, ownprec);
        printExpr(tree.lhs, ownprec);
        print(" " + opname + " ");
        printExpr(tree.rhs, ownprec + 1);
        close(prec, ownprec);
    } catch (IOException e) {
        throw new UncheckedIOException(e);
    }
}
 
开发者ID:sebastianoe,项目名称:s4j,代码行数:14,代码来源:Pretty.java


示例19: visitBinary

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
public void visitBinary(JCBinary tree) {
    try {
        int ownprec = TreeInfo.opPrec(getTag(tree));
        String opname = operatorName(getTag(tree));
        open(prec, ownprec);
        printExpr(tree.lhs, ownprec);
        print(" " + opname + " ");
        printExpr(tree.rhs, ownprec + 1);
        close(prec, ownprec);
    } catch (IOException e) {
        throw new UncheckedIOException(e);
    }
}
 
开发者ID:redundent,项目名称:lombok,代码行数:14,代码来源:PrettyCommentsPrinter.java


示例20: generateCompareFloatOrDouble

import com.sun.tools.javac.tree.JCTree.JCBinary; //导入依赖的package包/类
private JCStatement generateCompareFloatOrDouble(JCExpression thisDotField, JCExpression otherDotField,
		TreeMaker maker, JavacNode node, boolean isDouble) {
	/* if (Float.compare(fieldName, other.fieldName) != 0) return false; */
	JCExpression clazz = chainDots(node, "java", "lang", isDouble ? "Double" : "Float");
	List<JCExpression> args = List.of(thisDotField, otherDotField);
	JCBinary compareCallEquals0 = maker.Binary(CTC_NOT_EQUAL, maker.Apply(
			List.<JCExpression>nil(), maker.Select(clazz, node.toName("compare")), args), maker.Literal(0));
	return maker.If(compareCallEquals0, returnBool(maker, false), null);
}
 
开发者ID:redundent,项目名称:lombok,代码行数:10,代码来源:HandleEqualsAndHashCode.java



注:本文中的com.sun.tools.javac.tree.JCTree.JCBinary类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ResourceAdapter类代码示例发布时间:2022-05-21
下一篇:
Java PathElement类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap