List of usage examples for org.eclipse.jdt.core.dom PrefixExpression getOperand
public Expression getOperand()
From source file:at.bestsolution.fxide.jdt.corext.dom.ASTFlattener.java
License:Open Source License
@Override public boolean visit(PrefixExpression node) { this.fBuffer.append(node.getOperator().toString()); node.getOperand().accept(this); return false; }
From source file:boa.datagen.util.Java7Visitor.java
License:Apache License
@Override public boolean visit(PrefixExpression node) { boa.types.Ast.Expression.Builder b = boa.types.Ast.Expression.newBuilder(); // b.setPosition(pos.build()); if (node.getOperator() == PrefixExpression.Operator.DECREMENT) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_DEC); else if (node.getOperator() == PrefixExpression.Operator.INCREMENT) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_INC); else if (node.getOperator() == PrefixExpression.Operator.PLUS) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_ADD); else if (node.getOperator() == PrefixExpression.Operator.MINUS) b.setKind(boa.types.Ast.Expression.ExpressionKind.OP_SUB); else if (node.getOperator() == PrefixExpression.Operator.COMPLEMENT) b.setKind(boa.types.Ast.Expression.ExpressionKind.BIT_NOT); else if (node.getOperator() == PrefixExpression.Operator.NOT) b.setKind(boa.types.Ast.Expression.ExpressionKind.LOGICAL_NOT); node.getOperand().accept(this); b.addExpressions(expressions.pop()); expressions.push(b.build());//from ww w . ja v a2 s . com return false; }
From source file:ca.mcgill.cs.swevo.ppa.inference.PrefixInferenceStrategy.java
License:Open Source License
public boolean isSafe(ASTNode node) { PrefixExpression prefix = (PrefixExpression) node; Expression exp = prefix.getOperand(); return !indexer.isIndexable(exp) || indexer.isSafe(exp); }
From source file:ca.mcgill.cs.swevo.ppa.inference.PrefixInferenceStrategy.java
License:Open Source License
private void processOperators(PrefixExpression node, TypeFact newFact) { ITypeBinding newType = null;//from ww w .j av a 2 s .c om Expression exp = node.getOperand(); boolean isPrimary = newFact != null && indexer.getMainIndex(node).equals(newFact.getIndex()); boolean isSafe = indexer.isSafe(exp) || (newFact != null && !isPrimary); if (node.getOperator() != PrefixExpression.Operator.NOT) { if (isPrimary && !isSafe) { ITypeBinding newBinding = newFact.getNewType(); ITypeBinding oldBinding = exp.resolveTypeBinding(); TypeFact typeFact = new TypeFact(indexer.getMainIndex(exp), oldBinding, TypeFact.UNKNOWN, newBinding, TypeFact.SUBTYPE, TypeFact.UNARY_STRATEGY); ppaEngine.reportTypeFact(typeFact); newType = newBinding; } else if (!isSafe) { ITypeBinding newBinding = ppaEngine.getRegistry().getPrimitiveBinding("int", exp); ITypeBinding oldBinding = exp.resolveTypeBinding(); TypeFact typeFact = new TypeFact(indexer.getMainIndex(exp), oldBinding, TypeFact.UNKNOWN, newBinding, TypeFact.SUBTYPE, TypeFact.UNARY_STRATEGY); ppaEngine.reportTypeFact(typeFact); newType = newBinding; } } else if (!isSafe) { ITypeBinding newBinding = ppaEngine.getRegistry().getPrimitiveBinding("boolean", exp); ITypeBinding oldBinding = exp.resolveTypeBinding(); TypeFact typeFact = new TypeFact(indexer.getMainIndex(exp), oldBinding, TypeFact.UNKNOWN, newBinding, TypeFact.SUBTYPE, TypeFact.UNARY_STRATEGY); ppaEngine.reportTypeFact(typeFact); newType = newBinding; } if (newType != null && !isPrimary) { ITypeBinding oldBinding = node.resolveTypeBinding(); TypeFact typeFact = new TypeFact(indexer.getMainIndex(node), oldBinding, TypeFact.UNKNOWN, newType, TypeFact.SUBTYPE, TypeFact.BINARY_STRATEGY); ppaEngine.reportTypeFact(typeFact); // report new type for this expression. // fix this expression. } else if (isPrimary) { if (newType != null) { ppaEngine.getRegistry().fixUnary(node, newType); } else if (newFact != null) { ppaEngine.getRegistry().fixUnary(node, newFact.getNewType()); } } }
From source file:ca.mcgill.cs.swevo.ppa.inference.PrefixInferenceStrategy.java
License:Open Source License
@Override public List<PPAIndex> getSecondaryIndexes(ASTNode node) { List<PPAIndex> list = super.getSecondaryIndexes(node); PrefixExpression prefix = (PrefixExpression) node; Expression exp = prefix.getOperand(); if (indexer.isIndexable(exp)) { list.add(indexer.getMainIndex(exp)); }//w w w. ja v a 2 s .c o m return list; }
From source file:coloredide.utils.CopiedNaiveASTFlattener.java
License:Open Source License
public boolean visit(PrefixExpression node) { this.buffer.append(node.getOperator().toString()); node.getOperand().accept(this); return false; }
From source file:com.bsiag.eclipse.jdt.java.formatter.SpacePreparator.java
License:Open Source License
@Override public boolean visit(PrefixExpression node) { Operator operator = node.getOperator(); if (operator.equals(Operator.INCREMENT) || operator.equals(Operator.DECREMENT)) { handleOperator(operator.toString(), node.getOperand(), this.options.insert_space_before_prefix_operator, this.options.insert_space_after_prefix_operator); } else {/*from w ww .j ava 2 s. c o m*/ handleOperator(operator.toString(), node.getOperand(), this.options.insert_space_before_unary_operator, this.options.insert_space_after_unary_operator); } return true; }
From source file:com.google.dart.java2dart.SyntaxTranslator.java
License:Open Source License
@Override public boolean visit(org.eclipse.jdt.core.dom.PrefixExpression node) { Expression operand = translate(node.getOperand()); // operator// www . j av a 2 s. c om TokenType tokenType = null; org.eclipse.jdt.core.dom.PrefixExpression.Operator javaOperator = node.getOperator(); if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.PLUS) { return done(operand); } if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.INCREMENT) { tokenType = TokenType.PLUS_PLUS; } if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.DECREMENT) { tokenType = TokenType.MINUS_MINUS; } if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.MINUS) { tokenType = TokenType.MINUS; } if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.NOT) { tokenType = TokenType.BANG; } if (javaOperator == org.eclipse.jdt.core.dom.PrefixExpression.Operator.COMPLEMENT) { tokenType = TokenType.TILDE; } Assert.isNotNull(tokenType, "No token for: " + javaOperator); // done return done(prefixExpression(tokenType, operand)); }
From source file:com.google.devtools.j2cpp.gen.CppStatementGenerator.java
License:Open Source License
@Override public boolean visit(PrefixExpression node) { if (node.getOperand() instanceof ArrayAccess) { PrefixExpression.Operator op = node.getOperator(); if (op == PrefixExpression.Operator.INCREMENT || op == PrefixExpression.Operator.DECREMENT) { String methodName = op == PrefixExpression.Operator.INCREMENT ? "incr" : "decr"; printArrayIncrementOrDecrement((ArrayAccess) node.getOperand(), methodName); return false; }/*from w w w .jav a2 s . co m*/ } buffer.append(node.getOperator().toString()); node.getOperand().accept(this); return false; }
From source file:com.google.devtools.j2objc.ast.DebugASTPrinter.java
License:Apache License
@Override public boolean visit(PrefixExpression node) { sb.print(node.getOperator().toString()); node.getOperand().accept(this); return false; }