public final java_cup.runtime.Symbol do_action( int CUP$parser$act_num, java_cup.runtime.lr_parser CUP$parser$parser, java.util.Stack CUP$parser$stack, int CUP$parser$top, parser parser) throws java.lang.Exception { java_cup.runtime.Symbol CUP$parser$result; // c_enum_specifier ::= K_ENUM c_all_identifier n_attributes c_curly_open error c_curly_close { TypeSpecifier RESULT = null; Token rl = (Token) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 5)).value; Identifier i = (Identifier) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 4)).value; AttributeList a = (AttributeList) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 3)).value; Token rr = (Token) ((java_cup.runtime.Symbol) CUP$parser$stack.peek()).value; EnumDeclaration declaration = new EnumDeclaration(i, a, parser.errorNode("enum declaration", "enum constant list")); RESULT = declaration; declaration.setRanges(rl, rr); CUP$parser$result = parser .getSymbolFactory() .newSymbol( "c_enum_specifier", 95, ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 5)), ((java_cup.runtime.Symbol) CUP$parser$stack.peek()), RESULT); } return CUP$parser$result; }
/* * @see ASTVisitor#visit(EnumDeclaration) * @since 3.0 */ @Override public boolean visit(EnumDeclaration node) { if (node.getJavadoc() != null) { node.getJavadoc().accept(this); } printModifiers(node.modifiers()); this.fBuffer.append("enum "); // $NON-NLS-1$ node.getName().accept(this); this.fBuffer.append(" "); // $NON-NLS-1$ if (!node.superInterfaceTypes().isEmpty()) { this.fBuffer.append("implements "); // $NON-NLS-1$ for (Iterator<Type> it = node.superInterfaceTypes().iterator(); it.hasNext(); ) { Type t = it.next(); t.accept(this); if (it.hasNext()) { this.fBuffer.append(", "); // $NON-NLS-1$ } } this.fBuffer.append(" "); // $NON-NLS-1$ } this.fBuffer.append("{"); // $NON-NLS-1$ for (Iterator<EnumConstantDeclaration> it = node.enumConstants().iterator(); it.hasNext(); ) { EnumConstantDeclaration d = it.next(); d.accept(this); // enum constant declarations do not include punctuation if (it.hasNext()) { // enum constant declarations are separated by commas this.fBuffer.append(", "); // $NON-NLS-1$ } } if (!node.bodyDeclarations().isEmpty()) { this.fBuffer.append("; "); // $NON-NLS-1$ for (Iterator<BodyDeclaration> it = node.bodyDeclarations().iterator(); it.hasNext(); ) { BodyDeclaration d = it.next(); d.accept(this); // other body declarations include trailing punctuation } } this.fBuffer.append("}"); // $NON-NLS-1$ return false; }
public void visit(EnumDeclaration n, Object arg) { if (n.getJavaDoc() != null) { n.getJavaDoc().accept(this, arg); } printMemberAnnotations(n.getAnnotations(), arg); printModifiers(n.getModifiers()); if (n.getImplements() != null) { for (Iterator<ClassOrInterfaceType> i = n.getImplements().iterator(); i.hasNext(); ) { ClassOrInterfaceType c = i.next(); c.accept(this, arg); if (i.hasNext()) {} } } if (n.getEntries() != null) { for (Iterator<EnumConstantDeclaration> i = n.getEntries().iterator(); i.hasNext(); ) { EnumConstantDeclaration e = i.next(); e.accept(this, arg); if (i.hasNext()) {} } } if (n.getMembers() != null) { printMembers(n.getMembers(), arg); } else { if (n.getEntries() != null) {} } }
public void enum_use(STEntry ste, int fromContext) { if (ste != null && ste.getType() instanceof EnumType) EnumDeclaration.generate((EnumType) (ste.getType())); }