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_CMD_RUN_HXX
25 #define ADC_CMD_RUN_HXX
26 
27 
28 
29 // USED SERVICES
30 	// BASE CLASSES
31 #include <cosv/comdline.hxx>
32 	// COMPONENTS
33 	// PARAMETERS
34 
35 namespace ary
36 {
37  	class Repository;
38 }
39 
40 namespace autodoc
41 {
42     class FileCollector_Ifc;
43     class ParseToolsFactory_Ifc;
44     class CodeParser_Ifc;
45     class DocumentationParser_Ifc;
46     class IdlParser;
47 
48 
49 namespace command
50 {
51     class Parse;
52  	class S_ProjectData;
53  	struct S_LanguageInfo;
54 
55 namespace run
56 {
57 
58 /** Performs an ::autodoc::command::Parse .
59 */
60 class Parser
61 {
62   public:
63 						Parser(
64 						    const Parse &       i_command );
65 						~Parser();
66 
67     bool                Perform();
68 
69   private:
70     // Locals
71     CodeParser_Ifc &    Get_CppParser();
72     IdlParser &         Get_IdlParser();
73     void                Create_CppParser();
74     void                Create_IdlParser();
75     const ParseToolsFactory_Ifc &
76                         ParseToolsFactory();
77     uintt               GatherFiles(
78                             FileCollector_Ifc & o_rFiles,
79                             const S_ProjectData &
80                                                 i_rProject );
81 	// DATA
82     const Parse &       rCommand;
83 
84     Dyn<CodeParser_Ifc> pCppParser;
85     Dyn<DocumentationParser_Ifc>
86                         pCppDocuInterpreter;
87     Dyn<IdlParser>      pIdlParser;
88 };
89 
90 
91 
92 
93 // IMPLEMENTATION
94 
95 
96 }   // namespace run
97 }   // namespace command
98 }   // namespace autodoc
99 
100 #endif
101