Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

ASTreeGrammar::definition< ScannerT > Struct Template Reference

List of all members.

Public Member Functions

 definition (ASTreeGrammar const &self)
rule< ScannerT > const & start () const

Public Attributes

rule< ScannerT > node
rule< ScannerT > name_node
rule< ScannerT > attributePair
rule< ScannerT > name_attribute
rule< ScannerT > attributeValue
rule< ScannerT > value_node
rule< ScannerT > value_list
rule< ScannerT > value_string
rule< ScannerT > value_id
rule< ScannerT > value_const
rule< ScannerT > str

template<typename ScannerT>
struct ASTreeGrammar::definition< ScannerT >


Constructor & Destructor Documentation

template<typename ScannerT>
ASTreeGrammar::definition< ScannerT >::definition ASTreeGrammar const &  self  )  [inline]
 

< child attribute is another node wrapper in { }

< child attribute is a list of wrapped nodes

< child attribute is a id shortcut

< child attribute is a const shortcut

Definition at line 147 of file ast_fromastfile.cc.

References ASTreeGrammar::definition< ScannerT >::attributePair, ASTreeGrammar::definition< ScannerT >::attributeValue, do_const_type(), do_const_value(), do_list_node(), do_value_const(), do_value_id(), do_value_string(), do_wrapped_node(), end_attribute(), end_list(), end_node(), ASTreeGrammar::definition< ScannerT >::name_attribute, ASTreeGrammar::definition< ScannerT >::name_node, ASTreeGrammar::definition< ScannerT >::node, start_attribute(), start_list(), start_node(), ASTreeGrammar::definition< ScannerT >::str, ASTreeGrammar::definition< ScannerT >::value_const, ASTreeGrammar::definition< ScannerT >::value_id, ASTreeGrammar::definition< ScannerT >::value_list, ASTreeGrammar::definition< ScannerT >::value_node, and ASTreeGrammar::definition< ScannerT >::value_string.

00148         {
00149             node =
00150                 (str[&start_node] >> +(attributePair))[&end_node]
00151                 ;
00152 
00153             attributePair =
00154                 str[&start_attribute] >> attributeValue[&end_attribute]
00155                 ;
00156 
00157             attributeValue = 
00158                   value_node
00159                 | value_id
00160                 | value_const
00161                 | value_list 
00162                 | value_string
00163                 ;
00164 
00165             value_node = 
00166                 ("{" >> node >> "}")[&do_wrapped_node]                                                         
00167                 ;
00168 
00169             value_list = 
00170                 str_p("[")[&start_list] >> *(value_node[&do_list_node]) >> str_p("]")[&end_list]               
00171                 ;
00172 
00173             value_string = 
00174                 lexeme_d[(+(~space_p))][&do_value_string]
00175                 ;
00176 
00177             value_id = 
00178                 str_p("id") >> ':' >> str[&do_value_id]                                                        
00179                 ;
00180 
00181             value_const = 
00182                 (str_p("const") >> ':' >> str[&do_const_type] >> ':' >> str[&do_const_value])[&do_value_const] 
00183                 ;
00184 
00185             str = 
00186                 (lexeme_d[(+(alnum_p | ch_p('_')))])
00187                 ;
00188 
00189             BOOST_SPIRIT_DEBUG_NODE(node);
00190             BOOST_SPIRIT_DEBUG_NODE(name_node);
00191             BOOST_SPIRIT_DEBUG_NODE(attributePair);
00192             BOOST_SPIRIT_DEBUG_NODE(name_attribute);
00193             BOOST_SPIRIT_DEBUG_NODE(attributeValue);
00194             BOOST_SPIRIT_DEBUG_NODE(value_node);
00195             BOOST_SPIRIT_DEBUG_NODE(value_list);
00196             BOOST_SPIRIT_DEBUG_NODE(value_string);
00197             BOOST_SPIRIT_DEBUG_NODE(value_id);
00198             BOOST_SPIRIT_DEBUG_NODE(value_const);
00199         }


Member Function Documentation

template<typename ScannerT>
rule<ScannerT> const& ASTreeGrammar::definition< ScannerT >::start  )  const [inline]
 

Definition at line 202 of file ast_fromastfile.cc.

References ASTreeGrammar::definition< ScannerT >::node.

00202 { return node; }


Member Data Documentation

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::attributePair
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::attributeValue
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::name_attribute
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::name_node
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::node
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition(), and ASTreeGrammar::definition< ScannerT >::start().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::str
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::value_const
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::value_id
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::value_list
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::value_node
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().

template<typename ScannerT>
rule<ScannerT> ASTreeGrammar::definition< ScannerT >::value_string
 

Definition at line 201 of file ast_fromastfile.cc.

Referenced by ASTreeGrammar::definition< ScannerT >::definition().


The documentation for this struct was generated from the following file:
Generated on Thu Oct 20 12:00:04 2005 for ASTree by  doxygen 1.4.2-20050421