diff options
Diffstat (limited to 'TAO/CIAO/CCF/CCF/IDL2/Parser.hpp')
-rw-r--r-- | TAO/CIAO/CCF/CCF/IDL2/Parser.hpp | 115 |
1 files changed, 47 insertions, 68 deletions
diff --git a/TAO/CIAO/CCF/CCF/IDL2/Parser.hpp b/TAO/CIAO/CCF/CCF/IDL2/Parser.hpp index 6cb5497ec9a..aa74109512b 100644 --- a/TAO/CIAO/CCF/CCF/IDL2/Parser.hpp +++ b/TAO/CIAO/CCF/CCF/IDL2/Parser.hpp @@ -311,7 +311,6 @@ namespace CCF KeywordParser OUT; KeywordParser SINCLUDE; KeywordParser SUPPORTS; - KeywordParser TYPEDEF; KeywordParser TYPEID; KeywordParser TYPEPREFIX; @@ -332,6 +331,7 @@ namespace CCF // // Language // + typedef Parsing::Rule Rule; @@ -344,6 +344,9 @@ namespace CCF Rule include_decl; Rule system_include_decl; + Rule type_id; + Rule type_prefix; + Rule module_decl; Rule abstract_type_decl; @@ -364,13 +367,6 @@ namespace CCF Rule operation_parameter_list; Rule operation_parameter; - Rule typedef_; - Rule typedef_type_spec; - Rule typedef_declarator_list; - - Rule type_id; - Rule type_prefix; - public: Parser (CompilerElements::Context& context, Diagnostic::Stream& dout, @@ -388,34 +384,62 @@ namespace CCF // // Semantic actions // + typedef NoArgAction<SemanticAction::Scope> ScopeAction; + // Include + // + // + OneArgAction<StringLiteralPtr, SemanticAction::Include> + act_include_begin; + + NoArgAction<SemanticAction::Include> + act_include_end; - // Attribute + // TypeId // // - OneArgAction<IdentifierPtr, SemanticAction::Attribute> - act_attribute_type; + TwoArgAction<IdentifierPtr, + StringLiteralPtr, + SemanticAction::TypeId> + act_type_id_begin; - OneArgAction<SimpleIdentifierPtr, SemanticAction::Attribute> - act_attribute_name; + NoArgAction<SemanticAction::TypeId> + act_type_id_end; + // TypePrefix + // + // + TwoArgAction<IdentifierPtr, + StringLiteralPtr, + SemanticAction::TypePrefix> + act_type_prefix_begin; - // Include + NoArgAction<SemanticAction::TypePrefix> + act_type_prefix_end; + + // Module // // - OneArgAction<StringLiteralPtr, SemanticAction::Include> - act_include_begin; - NoArgAction<SemanticAction::Include> - act_include_end; + OneArgAction<SimpleIdentifierPtr, SemanticAction::Module> + act_module_begin; + + ScopeAction + act_module_open_scope; + + ScopeAction + act_module_close_scope; + NoArgAction<SemanticAction::Module> + act_module_end; // Interface // // + OneArgAction<SimpleIdentifierPtr, SemanticAction::Interface> act_abstract_interface_begin; @@ -437,22 +461,14 @@ namespace CCF NoArgAction<SemanticAction::Interface> act_interface_end; - - // Module + // Attribute // // - OneArgAction<SimpleIdentifierPtr, SemanticAction::Module> - act_module_begin; - - ScopeAction - act_module_open_scope; - - ScopeAction - act_module_close_scope; - - NoArgAction<SemanticAction::Module> - act_module_end; + OneArgAction<IdentifierPtr, SemanticAction::Attribute> + act_attribute_type; + OneArgAction<SimpleIdentifierPtr, SemanticAction::Attribute> + act_attribute_name; // Operation // @@ -494,43 +510,6 @@ namespace CCF NoArgAction<SemanticAction::Operation> act_operation_end; - - - // Typedef - // - // - OneArgAction<IdentifierPtr, SemanticAction::Typedef> - act_typedef_begin; - - OneArgAction<SimpleIdentifierPtr, SemanticAction::Typedef> - act_typedef_declarator; - - NoArgAction<SemanticAction::Typedef> - act_typedef_end; - - - // TypeId - // - // - TwoArgAction<IdentifierPtr, - StringLiteralPtr, - SemanticAction::TypeId> - act_type_id_begin; - - NoArgAction<SemanticAction::TypeId> - act_type_id_end; - - - // TypePrefix - // - // - TwoArgAction<IdentifierPtr, - StringLiteralPtr, - SemanticAction::TypePrefix> - act_type_prefix_begin; - - NoArgAction<SemanticAction::TypePrefix> - act_type_prefix_end; }; } } |