@Override
 public void visitNode(AstNode node) {
   if (node.is(CxxGrammarImpl.LITERAL)) {
     reg.reset(node.getTokenOriginalValue().replaceAll("\\s", ""));
     if (reg.find()) {
       getContext()
           .createLineViolation(this, "Do not hard code sensitive data in programs.", node);
     }
   }
 }
  private static List<String> getParameters(AstNode node) {
    ImmutableList.Builder<String> builder = ImmutableList.builder();

    for (AstNode parameter :
        node.getFirstChild(JavaGrammar.FORMAL_PARAMETERS)
            .getDescendants(JavaGrammar.VARIABLE_DECLARATOR_ID)) {
      builder.add(parameter.getTokenOriginalValue());
    }

    return builder.build();
  }
 /**
  * Method that searches for testMethod keyword in a method given a node.
  *
  * @param astNode parent node for method.
  * @return a boolean value, returns true if there is a testMethod keyword or false otherwise.
  */
 public static boolean hasTestMethodKeyword(AstNode astNode) {
   boolean hasAnnotation = false;
   List<AstNode> modifiersChildren = astNode.getChildren(MODIFIERS);
   for (AstNode modifier : modifiersChildren) {
     for (AstNode modifierChild : modifier.getChildren()) {
       if ((modifierChild.getTokenOriginalValue().matches(TEST_METHOD_PATTERN))) {
         hasAnnotation = true;
         break;
       }
     }
   }
   return hasAnnotation;
 }
 private void checkAssignment(AstNode astNode) {
   AstNode memberExpr = astNode.getFirstChild();
   AstNode variable = memberExpr.getFirstChild();
   if (memberExpr.getNumberOfChildren() == 1 && variable.is(PHPGrammar.VARIABLE_WITHOUT_OBJECTS)) {
     String varName = variable.getTokenOriginalValue();
     if (memberExpr.getTokens().size() == 1
         && !CheckUtils.isSuperGlobal(varName)
         && !globalVariableNames.contains(varName)) {
       getContext().createLineViolation(this, "Move this variable into a class.", astNode);
       globalVariableNames.add(varName);
     }
   }
 }
 /**
  * Looks for an Assertion inside method given a list of name nodes.
  *
  * @param nameNodes list of Name nodes
  * @param pattern a pattern to define if it is assert only or assertEquals or assertNotEquals
  * @return a boolean value true if there is an assertion, false otherwise.
  */
 public static boolean hasAssertion(List<AstNode> nameNodes, String pattern) {
   StringBuilder validcall = new StringBuilder();
   for (AstNode nameNodeChild : nameNodes) {
     if (nameNodeChild.getTokenOriginalValue().matches(SYSTEM_PATTERN)) {
       nameNodeChild
           .getChildren()
           .stream()
           .forEach(
               (AstNode nameNodeGrandChild) -> {
                 validcall.append(nameNodeGrandChild.getTokenOriginalValue());
               });
       break;
     }
   }
   return validcall.toString().matches(pattern);
 }
 private static boolean isReturnOfSuperReference(AstNode node) {
   return "return".equals(node.getTokenOriginalValue())
       && hasSuperReferenceReturnedExpression(node);
 }
 private static boolean isSuperReference(AstNode node) {
   return "super".equals(node.getTokenOriginalValue());
 }
 private static boolean isOverride(AstNode node) {
   return node.getToken().equals(node.getLastToken())
       && "Override".equals(node.getTokenOriginalValue());
 }