private boolean isMajorType(GroovySourceAST t) { if (t == null) return false; int tt = t.getType(); return tt == CLASS_DEF || tt == TRAIT_DEF || tt == INTERFACE_DEF || tt == METHOD_DEF || tt == ANNOTATION_DEF || tt == ENUM_DEF || tt == VARIABLE_DEF || tt == ANNOTATION_FIELD_DEF || tt == ENUM_CONSTANT_DEF || tt == CTOR_IDENT; }
private boolean isTopLevelConstruct(GroovySourceAST node) { if (node == null) return false; int type = node.getType(); return type == CLASS_DEF || type == INTERFACE_DEF || type == TRAIT_DEF || type == ANNOTATION_DEF || type == ENUM_DEF; }
private String getFolded(GroovySourceAST t) { if (depth > 2 && t.getNumberOfChildren() > 0) { switch (t.getType()) { case GroovyTokenTypes.EXPR : case GroovyTokenTypes.METHOD_DEF : case GroovyTokenTypes.VARIABLE_DEF : return " FOLDED='true'"; } } if (t.getType() == GroovyTokenTypes.IMPORT) { return " FOLDED='true'"; } return ""; }
private boolean isFieldDefinition() { GroovySourceAST parentNode = getParentNode(); return parentNode != null && parentNode.getType() == OBJBLOCK; }
private boolean insideAnonymousInnerClass() { GroovySourceAST grandParentNode = getGrandParentNode(); return grandParentNode != null && grandParentNode.getType() == LITERAL_new; }
public void visitDefault(GroovySourceAST t,int visit) { if (visit == OPENING_VISIT) { out.print("<code title=" + quote(tokenNames[t.getType()]) + "><font color='#" + colour(t) + "'>"); } else if (visit == CLOSING_VISIT) { out.print("</font></code>"); } }
private List<GroovySourceAST> findTypeNames(GroovySourceAST t) { List<GroovySourceAST> types = new ArrayList<GroovySourceAST>(); for (AST child = t.getFirstChild(); child != null; child = child.getNextSibling()) { GroovySourceAST groovySourceAST = (GroovySourceAST) child; if (groovySourceAST.getType() == TYPE) { types.add((GroovySourceAST) groovySourceAST.getFirstChild()); } else { types.add(groovySourceAST); } } return types; }
public void visitArrayDeclarator(GroovySourceAST t, int visit) { //<ARRAY_DECLARATOR>int</ARRAY_DECLARATOR> primes = new int(<ARRAY_DECLARATOR>5</ARRAY_DECLARATOR>) if (getParentNode().getType() == GroovyTokenTypes.TYPE || getParentNode().getType() == GroovyTokenTypes.TYPECAST) { // ugly hack // type definition, i.e. int[] x; print(t,visit,null,null,"[]"); } else { // usually in new, i.e. def y = new int[5]; print(t,visit,"[",null,"]"); } }
public void visitEnumConstantDef(GroovySourceAST t,int visit) { GroovySourceAST sibling = (GroovySourceAST)t.getNextSibling(); if (sibling != null && sibling.getType() == GroovyTokenTypes.ENUM_CONSTANT_DEF) { print(t,visit,null,null,", "); } }
private void getTypeParameters(GroovySourceAST child, StringBuilder result, String defaultText) { if (child != null && child.getType() == TYPE_PARAMETERS && child.getNumberOfChildren() > 0) { result.append("<"); GroovySourceAST typeParametersNext = (GroovySourceAST) child.getFirstChild(); List<String> typeParameterParts = new ArrayList<String>(); while (typeParametersNext != null) { if (typeParametersNext.getType() == TYPE_PARAMETER && typeParametersNext.getNumberOfChildren() > 0) { typeParameterParts.add(getTypeNodeAsText((GroovySourceAST) typeParametersNext.getFirstChild(), defaultText)); } typeParametersNext = (GroovySourceAST) typeParametersNext.getNextSibling(); } result.append(DefaultGroovyMethods.join(typeParameterParts, ", ")); result.append(">"); } }
public void visitDefault(GroovySourceAST t,int visit) { if (visit == OPENING_VISIT) { // only want to do this once per node... t.setType(typeMapping[t.getType()]); // ---- // need to remove double quotes in string literals // as groovy AST doesn't expect to have them if (t.getType() == GroovyTokenTypes.STRING_LITERAL) { String text = t.getText(); if (isSingleQuoted(text) || isDoubleQuoted(text)) { t.setText(text.substring(1, text.length() - 1)); // chop off the single quotes at start and end } } } }
private void getTypeArguments(GroovySourceAST child, StringBuilder result, String defaultText) { if (child != null && child.getType() == TYPE_ARGUMENTS && child.getNumberOfChildren() > 0) { result.append("<"); GroovySourceAST typeArgumentsNext = (GroovySourceAST) child.getFirstChild(); List<String> typeArgumentParts = new ArrayList<String>(); while (typeArgumentsNext != null) { if (typeArgumentsNext.getType() == TYPE_ARGUMENT && typeArgumentsNext.getNumberOfChildren() > 0) { typeArgumentParts.add(getTypeNodeAsText((GroovySourceAST) typeArgumentsNext.getFirstChild(), defaultText)); } typeArgumentsNext = (GroovySourceAST) typeArgumentsNext.getNextSibling(); } result.append(DefaultGroovyMethods.join(typeArgumentParts, ", ")); result.append(">"); } }
private String buildName(GroovySourceAST t) { if (t != null) { if (t.getType() == DOT) { GroovySourceAST firstChild = (GroovySourceAST) t.getFirstChild(); GroovySourceAST secondChild = (GroovySourceAST) firstChild.getNextSibling(); return (buildName(firstChild) + "/" + buildName(secondChild)); } if (t.getType() == IDENT) { return t.getText(); } } return ""; }
public void visitStringLiteral(GroovySourceAST t,int visit) { if (visit == OPENING_VISIT) { String theString = escape(t.getText()); if (getParentNode().getType() != GroovyTokenTypes.LABELED_ARG && getParentNode().getType() != GroovyTokenTypes.STRING_CONSTRUCTOR) { theString = "\"" + theString + "\""; } print(t,visit,theString); } }
public void visitElist(GroovySourceAST t,int visit) { if (getParentNode().getType() == GroovyTokenTypes.ENUM_CONSTANT_DEF) { print(t,visit,"(",", ",")"); } else { print(t,visit,null,", ",null); } }
public void visitParameters(GroovySourceAST t,int visit) { if (getParentNode().getType() == GroovyTokenTypes.CLOSABLE_BLOCK) { printUpdatingTabLevel(t,visit,null,","," "); } else { printUpdatingTabLevel(t,visit,"(",", ",") "); } }
private String getDefaultValue(GroovySourceAST t) { GroovySourceAST child = (GroovySourceAST) t.getFirstChild(); if (t.getNumberOfChildren() != 4) return null; for (int i = 1; i < t.getNumberOfChildren(); i++) { child = (GroovySourceAST) child.getNextSibling(); } GroovySourceAST nodeToProcess = child; if (child.getType() != ANNOTATION_ARRAY_INIT && child.getNumberOfChildren() > 0) { nodeToProcess = (GroovySourceAST) child.getFirstChild(); } return getChildTextFromSource(nodeToProcess, ";"); }