01: package org.jacorb.idl;
02:
03: /*
04: * JacORB - a free Java ORB
05: *
06: * Copyright (C) 1997-2004 Gerald Brose.
07: *
08: * This library is free software; you can redistribute it and/or
09: * modify it under the terms of the GNU Library General Public
10: * License as published by the Free Software Foundation; either
11: * version 2 of the License, or (at your option) any later version.
12: *
13: * This library is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16: * Library General Public License for more details.
17: *
18: * You should have received a copy of the GNU Library General Public
19: * License along with this library; if not, write to the Free
20: * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21: */
22:
23: /**
24: * Generic API used by the IDL compiler to call backend code
25: * generators. Extend this interface for your own code
26: * generator backends. To plug into the compiler, use the
27: * IDL compiler option "-backend <classname>"
28: *
29: * @author Gerald Brose, XTRADYNE Technologies.
30: * @version $Id: IDLTreeVisitor.java,v 1.7 2007/02/06 22:50:35 andre.spiegel Exp $
31: */
32:
33: public interface IDLTreeVisitor {
34: /**
35: * Visit an IDL specification. This method is the top-level entry point
36: * called by the IDL compiler for a single compiler run.
37: *
38: * @param spec The spec node from the compiler's AST
39: */
40:
41: void visitSpec(Spec spec);
42:
43: /**
44: * Visit a module
45: *
46: * @param mod The module node from the compiler's AST
47: */
48: void visitModule(Module mod);
49:
50: void visitInterface(Interface intf);
51:
52: void visitInterfaceBody(InterfaceBody body);
53:
54: void visitDefinitions(Definitions defs);
55:
56: void visitDefinition(Definition def);
57:
58: void visitDeclaration(Declaration decl);
59:
60: void visitOpDecl(OpDecl decl);
61:
62: void visitMethod(Method m);
63:
64: void visitParamDecl(ParamDecl param);
65:
66: void visitStruct(StructType struct);
67:
68: void visitUnion(UnionType union);
69:
70: void visitEnum(EnumType enumType);
71:
72: void visitNative(NativeType _native);
73:
74: void visitTypeDef(TypeDef typedef);
75:
76: void visitAlias(AliasTypeSpec alias);
77:
78: void visitValue(Value value);
79:
80: void visitTypeDeclaration(TypeDeclaration typeDecl);
81:
82: void visitConstrTypeSpec(ConstrTypeSpec typeDecl);
83:
84: void visitSimpleTypeSpec(SimpleTypeSpec typeDecl);
85:
86: void visitVectorType(VectorType typeDecl);
87:
88: }
|