org.codehaus.groovy.syntax.Token.getType()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(8.1k)|赞(0)|评价(0)|浏览(135)

本文整理了Java中org.codehaus.groovy.syntax.Token.getType()方法的一些代码示例,展示了Token.getType()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Token.getType()方法的具体详情如下:
包路径:org.codehaus.groovy.syntax.Token
类名称:Token
方法名:getType

Token.getType介绍

[英]Returns the actual type of the node. If the node isEmpty(), returns the type of Token.NULL.
[中]返回节点的实际类型。如果节点为空(),则返回令牌的类型。无效的

代码示例

代码示例来源:origin: org.codehaus.groovy/groovy

/**
 * Checks that a given token is either in the whitelist or not in the blacklist.
 *
 * @param token the token to be checked
 * @throws SecurityException if usage of this token is forbidden
 */
private void assertTokenAuthorized(final Token token) throws SecurityException {
  final int value = token.getType();
  if (tokensBlacklist != null && tokensBlacklist.contains(value)) {
    throw new SecurityException("Token " + token + " is not allowed");
  } else if (tokensWhitelist != null && !tokensWhitelist.contains(value)) {
    throw new SecurityException("Token " + token + " is not allowed");
  }
}

代码示例来源:origin: apache/groovy

protected String tokenAsSql(Token token) {
    switch (token.getType()) {
      case Types.COMPARE_EQUAL:
        return "=";
      case Types.LOGICAL_AND:
        return "and";
      case Types.LOGICAL_OR:
        return "or";
      default:
        return token.getText();
    }
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

/**
*  Returns the actual type of the node.  If the node isEmpty(), returns
*  the type of Token.NULL.
*/
public int getType()
{
  return getRoot( true ).getType();
}

代码示例来源:origin: spockframework/spock

private BinaryExpression getOrExpression(Expression expr) {
 BinaryExpression binExpr = ObjectUtil.asInstance(expr, BinaryExpression.class);
 if (binExpr == null) return null;
 int binExprType = binExpr.getOperation().getType();
 if (binExprType == Types.BITWISE_OR || binExprType == Types.LOGICAL_OR) return binExpr;
 return null;
}

代码示例来源:origin: org.codehaus.groovy/groovy

/**
 * Returns true for expressions of the form x[...]
 *
 * @param expression an expression
 * @return true for array access expressions
 */
protected static boolean isArrayAccessExpression(Expression expression) {
  return expression instanceof BinaryExpression && isArrayOp(((BinaryExpression) expression).getOperation().getType());
}

代码示例来源:origin: org.codehaus.groovy/groovy

private boolean isCompoundAssignment(Expression exp) {
  if (!(exp instanceof BinaryExpression)) return false;
  int type = ((BinaryExpression) exp).getOperation().getType();
  return isAssignment(type) && type != ASSIGN;
}

代码示例来源:origin: org.codehaus.groovy/groovy

private static boolean isAssignmentToArray(BinaryExpression binExp) {
  Expression leftExpression = binExp.getLeftExpression();
  if (!(leftExpression instanceof BinaryExpression)) return false;
  BinaryExpression leftBinExpr = (BinaryExpression) leftExpression;
  return leftBinExpr.getOperation().getType() == LEFT_SQUARE_BRACKET;
}

代码示例来源:origin: spockframework/spock

private Expression parseResults(Expression expr) {
 while (expr instanceof BinaryExpression) {
  BinaryExpression binExpr = (BinaryExpression) expr;
  int type = binExpr.getOperation().getType();
  if (type != Types.RIGHT_SHIFT && type != Types.RIGHT_SHIFT_UNSIGNED) break;
  responses.add(new InteractionResponse(binExpr.getRightExpression(), type == Types.RIGHT_SHIFT_UNSIGNED));
  expr = binExpr.getLeftExpression();
 }
 return expr;
}

代码示例来源:origin: spockframework/spock

private Expression parseCount(Expression expr) {
 BinaryExpression binExpr = ObjectUtil.asInstance(expr, BinaryExpression.class);
 if (binExpr == null || binExpr.getOperation().getType() != Types.MULTIPLY) return expr;
 count = binExpr.getLeftExpression();
 return binExpr.getRightExpression();
}

代码示例来源:origin: org.codehaus.groovy/groovy

@Override
public void visitPostfixExpression(final PostfixExpression expression) {
  super.visitPostfixExpression(expression);
  Expression inner = expression.getExpression();
  int op = expression.getOperation().getType();
  visitPrefixOrPostifExpression(expression, inner, op);
}

代码示例来源:origin: org.codehaus.groovy/groovy

@Override
public void visitPrefixExpression(final PrefixExpression expression) {
  super.visitPrefixExpression(expression);
  Expression inner = expression.getExpression();
  int type = expression.getOperation().getType();
  visitPrefixOrPostifExpression(expression, inner, type);
}

代码示例来源:origin: org.codehaus.groovy/groovy

private boolean isLHSOfEnclosingAssignment(final Expression expression) {
  final BinaryExpression ec = typeCheckingContext.getEnclosingBinaryExpression();
  return ec != null && ec.getLeftExpression() == expression && isAssignment(ec.getOperation().getType());
}

代码示例来源:origin: spockframework/spock

private void checkIsValidImplicitCondition(Statement stat) {
  BinaryExpression binExpr = AstUtil.getExpression(stat, BinaryExpression.class);
  if (binExpr == null) return;

  if (Types.ofType(binExpr.getOperation().getType(), Types.ASSIGNMENT_OPERATOR)) {
   resources.getErrorReporter().error(stat, "Expected a condition, but found an assignment. Did you intend to write '==' ?");
  }
 }
}

代码示例来源:origin: org.codehaus.groovy/groovy

public String getText() {
  if (operation.getType() == Types.LEFT_SQUARE_BRACKET) {
    return leftExpression.getText() + "[" + rightExpression.getText() + "]";
  }
  return "(" + leftExpression.getText() + " " + operation.getText() + " " + rightExpression.getText() + ")";
}

代码示例来源:origin: org.codehaus.groovy/groovy

public void evaluatePrefixMethod(PrefixExpression expression) {
  int type = expression.getOperation().getType();
  switch (type) {
    case Types.PLUS_PLUS:
      evaluatePrefixMethod(type, "next", expression.getExpression(), expression);
      break;
    case Types.MINUS_MINUS:
      evaluatePrefixMethod(type, "previous", expression.getExpression(), expression);
      break;
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

public void evaluatePostfixMethod(PostfixExpression expression) {
  int op = expression.getOperation().getType();
  switch (op) {
    case Types.PLUS_PLUS:
      evaluatePostfixMethod(op, "next", expression.getExpression(), expression);
      break;
    case Types.MINUS_MINUS:
      evaluatePostfixMethod(op, "previous", expression.getExpression(), expression);
      break;
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

private Token getOpWithoutEqual(Expression exp) {
  if (!(exp instanceof BinaryExpression)) return null; // should never happen
  Token op = ((BinaryExpression) exp).getOperation();
  int typeWithoutEqual = TokenUtil.removeAssignment(op.getType());
  return new Token(typeWithoutEqual, op.getText() /* will do */, op.getStartLine(), op.getStartColumn());
}

代码示例来源:origin: spockframework/spock

@Override
public void visitBinaryExpression(BinaryExpression expr) {
 // order of convert calls is important or indexes and thus recorded values get confused
 Expression convertedLeftExpression = Types.ofType(expr.getOperation().getType(), Types.ASSIGNMENT_OPERATOR) ?
   // prevent lvalue from getting turned into record(lvalue), which can no longer be assigned to
   convertAndRecordNa(expr.getLeftExpression()) :
   convert(expr.getLeftExpression());
 Expression convertedRightExpression = convert(expr.getRightExpression());
 Expression conversion =
   Types.ofType(expr.getOperation().getType(), Types.KEYWORD_INSTANCEOF) ?
     // morph instanceof expression to isInstance method call to be able to record rvalue
     new MethodCallExpression(convertedRightExpression, "isInstance", convertedLeftExpression):
     new BinaryExpression(convertedLeftExpression, expr.getOperation(), convertedRightExpression);
 conversion.setSourcePosition(expr);
 result = record(conversion);
}

代码示例来源:origin: spockframework/spock

@Override
public void visitBinaryExpression(BinaryExpression expr) {
 result = new ExpressionInfo(
   TextRegion.of(expr),
   expr.getOperation().getType() == Types.LEFT_SQUARE_BRACKET ?
     startOf("[", expr.getRightExpression()) : // workaround for the fact that Token.startLine == 0 for token [
     TextPosition.startOf(expr.getOperation()),
   expr.getOperation().getText(),
   convert(expr.getLeftExpression()),
   convert(expr.getRightExpression())
 );
}

代码示例来源:origin: org.codehaus.groovy/groovy

protected boolean doPrimitiveCompare(ClassNode leftType, ClassNode rightType, BinaryExpression binExp) {
  Expression leftExp = binExp.getLeftExpression();
  Expression rightExp = binExp.getRightExpression();
  int operation = binExp.getOperation().getType();
  
  int operationType = getOperandConversionType(leftType,rightType);
  BinaryExpressionWriter bew = binExpWriter[operationType];
  if (!bew.write(operation, true)) return false;
    
  AsmClassGenerator acg = getController().getAcg();
  OperandStack os = getController().getOperandStack();
  leftExp.visit(acg);
  os.doGroovyCast(bew.getNormalOpResultType());
  rightExp.visit(acg);
  os.doGroovyCast(bew.getNormalOpResultType());
  bew.write(operation, false);
  
  return true;
}

相关文章