public TemplateCharactersTreeImpl(List<AstNode> characters) { super(Kind.TEMPLATE_CHARACTERS); StringBuilder builder = new StringBuilder(); for (AstNode character : characters) { builder.append(character.getTokenValue()); addChild(character); } this.value = builder.toString(); }
private void declare(AstNode astNode) { Preconditions.checkState(astNode.is(FlexGrammar.IDENTIFIER)); String identifier = astNode.getTokenValue(); arguments.put(identifier, 0); }
public static boolean classHasNoInheritance(AstNode classDef) { AstNode inheritanceClause = classDef.getFirstChild(PythonGrammar.ARGLIST); if (inheritanceClause == null){ return true; } else { AstNode argument = inheritanceClause.getFirstChild(PythonGrammar.ARGUMENT); return argument != null && ("object".equals(argument.getTokenValue())); } }
private static boolean isILogger(AstNode variableBinding) { AstNode typeExpr = variableBinding .getFirstChild(FlexGrammar.TYPED_IDENTIFIER) .getFirstChild(FlexGrammar.TYPE_EXPR); return typeExpr != null && "ILogger".equals(typeExpr.getTokenValue()); }
private String extractEventSignature(String accessor, AstNode astNode) { StringBuilder signature = new StringBuilder(accessor); signature.append("_"); AstNode delcarationNode = astNode.getParent().getParent(); signature.append(delcarationNode.getFirstChild(CSharpGrammar.MEMBER_NAME).getTokenValue()); signature.append(":"); signature.append(astNode.getTokenLine()); return signature.toString(); }
private void appendNodecontent(AstNode node) throws IOException { writer.append(node.getName()); if (node.getTokenValue() != null) { writer.append(" tokenValue=\"" + node.getTokenValue() + "\""); } if (node.hasToken()) { writer.append(" tokenLine=\"" + node.getTokenLine() + "\" tokenColumn=\"" + node.getToken().getColumn() + "\""); } }
private void appendNodecontent(AstNode node) throws IOException { writer.append(node.getName()); if (node.getTokenValue() != null) { writer.append(" tokenValue=\"" + node.getTokenValue() + "\""); } if (node.hasToken()) { writer.append(" tokenLine=\"" + node.getTokenLine() + "\" tokenColumn=\"" + node.getToken().getColumn() + "\""); } }
@Override public void visitNode(AstNode astNode) { if (!shouldCheckFunctionDeclaration(astNode)) { return; } AstNode nameNode = astNode.getFirstChild(PythonGrammar.FUNCNAME); String name = nameNode.getTokenValue(); if (!pattern().matcher(name).matches()) { String message = String.format(MESSAGE, typeName(), name, this.format); addIssue(nameNode, message); } }
@Override public void visitNode(AstNode node) { AstNode booleanLiteral = getBooleanLiteralFromExpression(node); if (booleanLiteral != null) { getContext().createLineViolation(this, "Remove the literal \"{0}\" boolean value.", booleanLiteral, booleanLiteral.getTokenValue()); } }
private static boolean isArray(AstNode varBinding) { AstNode typeExpr = varBinding.getFirstChild(FlexGrammar.TYPED_IDENTIFIER).getFirstChild(FlexGrammar.TYPE_EXPR); return typeExpr != null && typeExpr.getNumberOfChildren() == 1 && "Array".equals(typeExpr.getFirstChild().getTokenValue()); }
public static boolean isConstructor(AstNode functionDef, String className) { Preconditions.checkArgument(functionDef.is(FlexGrammar.FUNCTION_DEF)); return functionDef.getFirstChild(FlexGrammar.FUNCTION_NAME).getNumberOfChildren() == 1 && functionDef.getFirstChild(FlexGrammar.FUNCTION_NAME).getFirstChild().getTokenValue().equals(className); }
private static boolean isArray(AstNode varBinding) { AstNode typeExpr = varBinding.getFirstChild(FlexGrammar.TYPED_IDENTIFIER).getFirstChild(FlexGrammar.TYPE_EXPR); return typeExpr != null && typeExpr.getNumberOfChildren() == 1 && "Array".equals(typeExpr.getFirstChild().getTokenValue()); }
private static boolean isExtendingEvent(AstNode classDef) { AstNode inheritenceNode = classDef.getFirstChild(FlexGrammar.INHERITENCE); if (inheritenceNode != null && inheritenceNode.getFirstChild(FlexKeyword.EXTENDS) != null) { AstNode qualifiedId = inheritenceNode.getFirstChild(FlexGrammar.TYPE_EXPR).getLastChild(); if (qualifiedId.is(FlexGrammar.QUALIFIED_IDENTIFIER) && EVENT_TYPE_NAME.equals(qualifiedId.getTokenValue())) { return true; } } return false; }
private static boolean isExtendingEvent(AstNode classDef) { AstNode inheritenceNode = classDef.getFirstChild(FlexGrammar.INHERITENCE); if (inheritenceNode != null && inheritenceNode.getFirstChild(FlexKeyword.EXTENDS) != null) { AstNode qualifiedId = inheritenceNode.getFirstChild(FlexGrammar.TYPE_EXPR).getLastChild(); if (qualifiedId.is(FlexGrammar.QUALIFIED_IDENTIFIER) && EVENT_TYPE_NAME.equals(qualifiedId.getTokenValue())) { return true; } } return false; }
@Override public void visitNode(AstNode astNode) { if (!isIterationStatement(astNode.getFirstChild(FlexGrammar.SUB_STATEMENT))) { getContext().createLineViolation(this, "Remove this ''{0}'' label.", astNode, astNode.getFirstChild(FlexGrammar.IDENTIFIER).getTokenValue()); } }
private static String getResultType(AstNode functionDef) { AstNode resultType = functionDef .getFirstChild(FlexGrammar.FUNCTION_COMMON) .getFirstChild(FlexGrammar.FUNCTION_SIGNATURE) .getFirstChild(FlexGrammar.RESULT_TYPE); if (resultType != null && resultType.getFirstChild(FlexGrammar.TYPE_EXPR) != null) { return resultType.getFirstChild(FlexGrammar.TYPE_EXPR).getTokenValue(); } return null; }
private static boolean isOverridingParentFunction(AstNode attributesNode) { if (attributesNode != null && attributesNode.is(FlexGrammar.ATTRIBUTES)) { for (AstNode attribute : attributesNode.getChildren()) { if (attribute.getFirstChild().is(FlexGrammar.ATTRIBUTE_EXPR) && attribute.getFirstChild().getNumberOfChildren() == 1 && attribute.getFirstChild().getFirstChild(FlexGrammar.IDENTIFIER).getTokenValue().equals(FlexKeyword.OVERRIDE.getValue())) { return true; } } } return false; }
private static boolean isOverriding(AstNode directive) { for (AstNode attribute : directive.getFirstChild(FlexGrammar.ATTRIBUTES).getChildren()) { if (attribute.getFirstChild().is(FlexGrammar.ATTRIBUTE_EXPR) && attribute.getFirstChild().getNumberOfChildren() == 1 && attribute.getFirstChild().getFirstChild(FlexGrammar.IDENTIFIER).getTokenValue().equals(FlexKeyword.OVERRIDE.getValue())) { return true; } } return false; } }
@Override public SourceCode createSourceCode(SourceCode parentSourceCode, AstNode astNode) { String functionName = astNode.getFirstChild(PythonGrammar.FUNCNAME).getFirstChild().getTokenValue(); SourceFunction function = new SourceFunction(functionName + ":" + astNode.getToken().getLine()); function.setStartAtLine(astNode.getTokenLine()); return function; } }, PythonGrammar.FUNCDEF));
@Override public void visitNode(AstNode astNode) { AstNode constructorDef = Clazz.getConstructor(astNode); if (constructorDef != null && hasVoidReturnType(constructorDef)) { getContext().createLineViolation(this, "Remove the \"void\" return type from this \"{0}\" constructor", constructorDef, astNode.getFirstChild(FlexGrammar.CLASS_NAME).getFirstChild(FlexGrammar.CLASS_IDENTIFIERS).getLastChild().getTokenValue()); } }