public static String[] getKeywordValues() { PHPKeyword[] keywordsEnum = PHPKeyword.values(); String[] keywords = new String[keywordsEnum.length]; for (int i = 0; i < keywords.length; i++) { keywords[i] = keywordsEnum[i].getValue(); } return keywords; }
public static String[] getKeywordValues() { PHPKeyword[] keywordsEnum = PHPKeyword.values(); String[] keywords = new String[keywordsEnum.length]; for (int i = 0; i < keywords.length; i++) { keywords[i] = keywordsEnum[i].getValue(); } return keywords; }
@Override public void init() { subscribeTo(PHPKeyword.values()); subscribeTo(PHPGrammar.COMMON_SCALAR); }
@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); } } }
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)) ); }
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)) ); }
/** * 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); } } }