/* (non-Javadoc)
   * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.PrefixExpression)
   */
  public boolean visit(PrefixExpression node) {
    if (node.getOperand().getNodeType() == ASTNode.NUMBER_LITERAL) {
      // For number literals we see if it is a "+" or "-" prefix, and if it is, we simply
      // create a PTNumberLiteral with the operator already in it. It is a simplification.
      // Any other operator we've left alone since those won't be decoded simply by the
      // Number decoder.
      // If not a number literal, then leave alone since needs to be handled as a prefix
      // operation.
      PrefixExpression.Operator operator = node.getOperator();
      if (operator == PrefixExpression.Operator.PLUS
          || operator == PrefixExpression.Operator.MINUS) {
        PTNumberLiteral nm = InstantiationFactory.eINSTANCE.createPTNumberLiteral();
        nm.setToken(operator.toString() + ((NumberLiteral) node.getOperand()).getToken());
        expression = nm;
        return false;
      }
    }

    PTPrefixExpression pe = InstantiationFactory.eINSTANCE.createPTPrefixExpression();
    PTPrefixOperator ptoper = getParsePrefix(node.getOperator());
    if (ptoper == null) {
      // It is not one we can handle.
      throw new InvalidExpressionException(
          MessageFormat.format(
              WorkbenchUtilityMessages.ParseTreeCreationFromAST_OperatorTooComplicatedToHandle_EXC_,
              new Object[] {node.getOperator().toString()}));
    }
    pe.setOperator(ptoper);
    pe.setExpression(perform(node.getOperand()));
    expression = pe;
    return false;
  }
Exemplo n.º 2
0
 public boolean visit(PrefixExpression s) throws Exception {
   Map<String, String> parameters = createInitialParameters(s);
   parameters.put("operator", s.getOperator());
   xmlWriter.startTag("PrefixExpression", parameters);
   return true;
 }
Exemplo n.º 3
0
 @Override
 public Void visitPrefixExpression(PrefixExpression node) {
   writer.print(node.getOperator().getLexeme());
   visit(node.getOperand());
   return null;
 }
 public void visitPrefixExpression(PrefixExpression expression) {
   expression.getExpression().visit(this);
 }
 /*
  * @see ASTVisitor#visit(PrefixExpression)
  */
 @Override
 public boolean visit(PrefixExpression node) {
   this.fBuffer.append(node.getOperator().toString());
   node.getOperand().accept(this);
   return false;
 }