xref: /AOO41X/main/autodoc/source/parser/cpp/tokintpr.hxx (revision 1c78a5d6c0093dece4c096ba53051800fbad6e33)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef ADC_CPP_TOKINTPR_HXX
25 #define ADC_CPP_TOKINTPR_HXX
26 
27 
28 
29 // USED SERVICES
30     // BASE CLASSES
31 #include <all_toks.hxx>
32     // COMPONENTS
33     // PARAMETERS
34 
35 namespace cpp {
36 
37 
38 
39 #define DECL_TOK_HANDLER(token) \
40     void                Hdl_##token( \
41                             const Tok_##token & i_rTok ) { Call_Handler(i_rTok); }
42 
43 class TokenInterpreter
44 {
45   public:
~TokenInterpreter()46     virtual             ~TokenInterpreter() {}
47 
48                         DECL_TOK_HANDLER(Identifier)
49                         DECL_TOK_HANDLER(Operator)
50                         DECL_TOK_HANDLER(operator)
51                         DECL_TOK_HANDLER(class)
52                         DECL_TOK_HANDLER(struct)
53                         DECL_TOK_HANDLER(union)
54                         DECL_TOK_HANDLER(enum)
55                         DECL_TOK_HANDLER(typedef)
56                         DECL_TOK_HANDLER(public)
57                         DECL_TOK_HANDLER(protected)
58                         DECL_TOK_HANDLER(private)
59                         DECL_TOK_HANDLER(template)
60                         DECL_TOK_HANDLER(virtual)
61                         DECL_TOK_HANDLER(friend)
62                         DECL_TOK_HANDLER(Tilde)
63                         DECL_TOK_HANDLER(const)
64                         DECL_TOK_HANDLER(volatile)
65                         DECL_TOK_HANDLER(extern)
66                         DECL_TOK_HANDLER(static)
67                         DECL_TOK_HANDLER(mutable)
68                         DECL_TOK_HANDLER(register)
69                         DECL_TOK_HANDLER(inline)
70                         DECL_TOK_HANDLER(explicit)
71                         DECL_TOK_HANDLER(namespace)
72                         DECL_TOK_HANDLER(using)
73                         DECL_TOK_HANDLER(throw)
74                         DECL_TOK_HANDLER(SwBracket_Left)
75                         DECL_TOK_HANDLER(SwBracket_Right)
76                         DECL_TOK_HANDLER(ArrayBracket_Left)
77                         DECL_TOK_HANDLER(ArrayBracket_Right)
78                         DECL_TOK_HANDLER(Bracket_Left)
79                         DECL_TOK_HANDLER(Bracket_Right)
80                         DECL_TOK_HANDLER(DoubleColon)
81                         DECL_TOK_HANDLER(Semicolon)
82                         DECL_TOK_HANDLER(Comma)
83                         DECL_TOK_HANDLER(Colon)
84                         DECL_TOK_HANDLER(Assign)
85                         DECL_TOK_HANDLER(Less)
86                         DECL_TOK_HANDLER(Greater)
87                         DECL_TOK_HANDLER(Asterix)
88                         DECL_TOK_HANDLER(AmpersAnd)
89                         DECL_TOK_HANDLER(Ellipse)
90                         DECL_TOK_HANDLER(typename)
91                         DECL_TOK_HANDLER(DefineName)
92                         DECL_TOK_HANDLER(MacroName)
93                         DECL_TOK_HANDLER(MacroParameter)
94                         DECL_TOK_HANDLER(PreProDefinition)
95                         DECL_TOK_HANDLER(BuiltInType)
96                         DECL_TOK_HANDLER(TypeSpecializer)
97                         DECL_TOK_HANDLER(Constant)
98 
99   protected:
100     virtual void        Call_Handler(
101                             const cpp::Token &  i_rTok ) = 0;
102 };
103 
104 #undef DECL_TOK_HANDLER
105 
106 
107 // IMPLEMENTATION
108 
109 
110 }   // namespace cpp
111 
112 
113 #endif
114