summaryrefslogtreecommitdiff
path: root/modules/CIAO/CCF/CCF/CIDL/Parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/CCF/CCF/CIDL/Parser.cpp')
-rw-r--r--modules/CIAO/CCF/CCF/CIDL/Parser.cpp165
1 files changed, 23 insertions, 142 deletions
diff --git a/modules/CIAO/CCF/CCF/CIDL/Parser.cpp b/modules/CIAO/CCF/CCF/CIDL/Parser.cpp
index 790410f3921..ae99e2428b0 100644
--- a/modules/CIAO/CCF/CCF/CIDL/Parser.cpp
+++ b/modules/CIAO/CCF/CCF/CIDL/Parser.cpp
@@ -13,9 +13,6 @@ namespace CCF
{
namespace CIDL
{
- using IDL2::Parsing::DiagnosticType;
- using IDL2::Parsing::RecoveryMethod;
-
Parser::
Parser (CompilerElements::Context& context,
Diagnostic::Stream& dout,
@@ -73,61 +70,16 @@ namespace CCF
// Composition
//
composition_decl =
+ composition_header
+ >> LCBRACE[act_composition_open_scope]
+ >> home_executor_decl
+ >> RCBRACE[act_composition_close_scope]
+ >> SEMI[act_composition_end]
+ ;
+
+ composition_header =
COMPOSITION
- >> guard
- (
- (
- assertion ("composition category expected",
- DiagnosticType::BEFORE)
- (
- composition_category
- )
- >> assertion ("composition name expected",
- DiagnosticType::BEFORE)
- (
- simple_identifier
- )
- )[act_composition_begin]
-
- >> assertion ("'{' expected",
- f.composition (),
- &SemanticAction::Composition::end)
- (
- LCBRACE[act_composition_open_scope]
- )
-
- >> assertion ("home executor declaration expected",
- f.composition (),
- &SemanticAction::Composition::close_scope,
- &SemanticAction::Composition::end,
- DiagnosticType::BEFORE)
- (
- hood (home_executor_decl)
- [
- handler (f.composition (),
- &SemanticAction::Composition::close_scope,
- &SemanticAction::Composition::end)
- ]
- )
-
- >> assertion ("'}' expected",
- f.composition (),
- &SemanticAction::Composition::close_scope,
- &SemanticAction::Composition::end,
- DiagnosticType::BEFORE)
- (
- RCBRACE[act_composition_close_scope]
- )
-
- >> assertion ("';' expected",
- f.composition (),
- &SemanticAction::Composition::end,
- RecoveryMethod::NONE)
- (
- SEMI[act_composition_end]
- )
-
- )[error_handler]
+ >> (composition_category >> simple_identifier)[act_composition_begin]
;
composition_category =
@@ -137,105 +89,34 @@ namespace CCF
| SESSION
;
-
//
// Home executor
//
home_executor_decl =
+ home_executor_header
+ >> LCBRACE
+ >> home_executor_home_impl_decl
+ >> home_executor_executor_decl
+ >> RCBRACE
+ >> SEMI[act_home_executor_end]
+ ;
+
+ home_executor_header =
HOME
>> EXECUTOR
- >> guard
- (
- assertion ("home executor name expected",
- DiagnosticType::BEFORE)
- (
- simple_identifier[act_home_executor_begin]
- )
-
- >> assertion ("'{' expected",
- f.home_executor (),
- &SemanticAction::HomeExecutor::end)
- (
- LCBRACE
- )
-
- >> assertion ("implements declaration expected",
- f.home_executor (),
- &SemanticAction::HomeExecutor::end,
- DiagnosticType::BEFORE)
- (
- hood (home_executor_home_impl_decl)
- [
- handler (f.home_executor (),
- &SemanticAction::HomeExecutor::end)
- ]
- )
-
- >> assertion ("manages declaration expected",
- f.home_executor (),
- &SemanticAction::HomeExecutor::end,
- DiagnosticType::BEFORE)
- (
- hood (home_executor_executor_decl)
- [
- handler (f.home_executor (),
- &SemanticAction::HomeExecutor::end)
- ]
- )
-
- >> assertion ("'}' expected",
- f.home_executor (),
- &SemanticAction::HomeExecutor::end,
- DiagnosticType::BEFORE)
- (
- RCBRACE
- )
-
- >> assertion ("';' expected",
- f.home_executor (),
- &SemanticAction::HomeExecutor::end,
- RecoveryMethod::NONE)
- (
- SEMI[act_home_executor_end]
- )
-
- )[error_handler]
+ >> simple_identifier[act_home_executor_begin]
;
-
home_executor_home_impl_decl =
IMPLEMENTS
- >> guard
- (
- assertion ("home name expected",
- DiagnosticType::BEFORE)
- (
- identifier[act_home_executor_implements]
- )
- >> assertion ("';' expected",
- RecoveryMethod::NONE)
- (
- SEMI
- )
- )[error_handler]
+ >> identifier[act_home_executor_implements]
+ >> SEMI
;
-
home_executor_executor_decl =
MANAGES
- >> guard
- (
- assertion ("executor name expected",
- DiagnosticType::BEFORE)
- (
- simple_identifier[act_home_executor_manages]
- )
- >> assertion ("';' expected",
- RecoveryMethod::NONE)
- (
- SEMI
- )
- )[error_handler]
+ >> simple_identifier[act_home_executor_manages]
+ >> SEMI
;
}
}