@Override protected ImmutableSet<String> functionNames() { return ImmutableSet.of(PHPKeyword.EVAL.getValue()); }
private static void keywords(LexerlessGrammarBuilder b) { Object[] rest = new Object[PHPKeyword.values().length - 2]; for (int i = 0; i < PHPKeyword.values().length; i++) { PHPKeyword tokenType = PHPKeyword.values()[i]; // PHP keywords are case insensitive b.rule(tokenType).is(SPACING, b.regexp("(?i)" + tokenType.getValue()), b.nextNot(b.regexp(LexicalConstant.IDENTIFIER_PART))).skip(); if (i > 1) { rest[i - 2] = b.regexp("(?i)" + tokenType.getValue()); } } b.rule(KEYWORDS).is(SPACING, b.firstOf( PHPKeyword.getKeywordValues()[0], PHPKeyword.getKeywordValues()[1], rest), b.nextNot(b.regexp(LexicalConstant.IDENTIFIER_PART)) ); }
@Override public Set<Detector> getDetectors() { return ImmutableSet.of( new EndWithDetector(0.95, '}', ';', '{'), new KeywordsDetector(0.3, PHPKeyword.getKeywordValues()), new ContainsDetector(0.95, "*=", "/=", "%=", "+=", "-=", "<<=", ">>=", "&=", "^=", "|="), new ContainsDetector(0.95, "!=", "!==")); }
@Override public void init() { subscribeTo(PHPKeyword.values()); subscribeTo(PHPGrammar.COMMON_SCALAR); }
/** * Return true if method is private or protected. */ private boolean isExcluded(AstNode methodDec) { if (!countNonpublicMethods) { for (AstNode modifier : methodDec.getChildren(PHPGrammar.MEMBER_MODIFIER)) { TokenType modifierType = modifier.getFirstChild().getToken().getType(); if (PHPKeyword.PROTECTED.equals(modifierType) || PHPKeyword.PRIVATE.equals(modifierType)) { return true; } } } return false; }
private static void keywords(LexerlessGrammarBuilder b) { Object[] rest = new Object[PHPKeyword.values().length - 2]; for (int i = 0; i < PHPKeyword.values().length; i++) { PHPKeyword tokenType = PHPKeyword.values()[i]; // PHP keywords are case insensitive b.rule(tokenType).is(SPACING, b.regexp("(?i)" + tokenType.getValue()), b.nextNot(b.regexp(LexicalConstant.IDENTIFIER_PART))).skip(); if (i > 1) { rest[i - 2] = b.regexp("(?i)" + tokenType.getValue()); } } b.rule(KEYWORDS).is(SPACING, b.firstOf( PHPKeyword.getKeywordValues()[0], PHPKeyword.getKeywordValues()[1], rest), b.nextNot(b.regexp(LexicalConstant.IDENTIFIER_PART)) ); }
@Override public Set<Detector> getDetectors() { return ImmutableSet.of( new EndWithDetector(0.95, '}', ';', '{'), new KeywordsDetector(0.3, PHPKeyword.getKeywordValues()), new ContainsDetector(0.95, "*=", "/=", "%=", "+=", "-=", "<<=", ">>=", "&=", "^=", "|="), new ContainsDetector(0.95, "!=", "!==")); }
@Override public void visitNode(AstNode astNode) { String tokenValue = astNode.getTokenOriginalValue(); if (!PATTERN.matcher(tokenValue).matches()) { if (isTrueFalseOrNull(astNode)) { reportIssue(astNode, "constant", tokenValue); } else if (astNode.is(PHPKeyword.values())) { reportIssue(astNode, "keyword", tokenValue); } } }
@Override protected ImmutableSet<String> functionNames() { return ImmutableSet.of(PHPKeyword.EVAL.getValue()); }
@Override public Set<Detector> getDetectors() { return ImmutableSet.of( new EndWithDetector(0.95, '}', ';', '{'), new KeywordsDetector(0.3, PHPKeyword.getKeywordValues()), new ContainsDetector(0.95, "*=", "/=", "%=", "+=", "-=", "<<=", ">>=", "&=", "^=", "|="), new ContainsDetector(0.95, "!=", "!==")); }
/** * Check that there is exactly one space between a control structure keyword and a opening parenthesis or curly brace. */ private void checkSpaceBetweenKeywordAndNextNode(FormattingStandardCheck formattingCheck, AstNode controlStructure) { AstNode keyword = controlStructure.getFirstChild(PHPKeyword.values()); Token nextToken = keyword.getNextAstNode().getToken(); if (isType(nextToken, PHPPunctuator.LCURLYBRACE, PHPPunctuator.LPARENTHESIS) && isOnSameLine(keyword.getToken(), nextToken)) { int nbSpace = getNbSpaceBetween(keyword.getToken(), nextToken); if (nbSpace != 1) { String endMsg = "between this \"" + keyword.getTokenOriginalValue() + "\" keyword and the opening " + (isType(nextToken, PHPPunctuator.LPARENTHESIS) ? "parenthesis." : "curly brace."); formattingCheck.reportIssue(buildIssueMsg(nbSpace, endMsg), keyword); } } }
private static boolean isNonPublic(List<SyntaxToken> modifiers) { for (SyntaxToken modifierToken : modifiers) { String modifier = modifierToken.text(); if (!PHPKeyword.VAR.getValue().equals(modifier) && (PHPKeyword.PROTECTED.getValue().equals(modifier) || PHPKeyword.PRIVATE.getValue().equals(modifier))) { return true; } } return false; }
@Test public void getKeywordValues() { Assertions.assertThat(PHPKeyword.getKeywordValues().length).isEqualTo(67); }
private static boolean isNonPublic(List<SyntaxToken> modifiers) { for (SyntaxToken modifierToken : modifiers) { String modifier = modifierToken.text(); if (!PHPKeyword.VAR.getValue().equals(modifier) && (PHPKeyword.PROTECTED.getValue().equals(modifier) || PHPKeyword.PRIVATE.getValue().equals(modifier))) { return true; } } return false; }
private static boolean isFinalModifier(@Nullable SyntaxToken modifier) { return modifier != null && PHPKeyword.FINAL.getValue().equalsIgnoreCase(modifier.text()); }
/** * Return true if method is private or protected. */ private boolean isExcluded(MethodDeclarationTree tree) { if (!countNonpublicMethods) { for (SyntaxToken modifierToken : tree.modifiers()) { String modifier = modifierToken.text(); if (PHPKeyword.PROTECTED.getValue().equals(modifier) || PHPKeyword.PRIVATE.getValue().equals(modifier)) { return true; } } } return false; }
/** * Return true if method is private or protected. */ private boolean isExcluded(MethodDeclarationTree tree) { if (!countNonpublicMethods) { for (SyntaxToken modifierToken : tree.modifiers()) { String modifier = modifierToken.text(); if (PHPKeyword.PROTECTED.getValue().equals(modifier) || PHPKeyword.PRIVATE.getValue().equals(modifier)) { return true; } } } return false; }
private static boolean isFinalModifier(@Nullable SyntaxToken modifier) { return modifier != null && PHPKeyword.FINAL.getValue().equalsIgnoreCase(modifier.text()); }