構造体 テンプレート toppers::itron::static_api_parser::definition< Scanner >

静的APIの構文解析における文法定義 [詳細]

#include "toppers/itron/static_api_parser.hpp"

すべてのメンバ一覧

Public 型

typedef boost::spirit::rule<
Scanner, boost::spirit::dynamic_parser_tag > 
rule_t
typedef boost::spirit::guard<
expected_t
guard_t
typedef boost::spirit::assertion<
expected_t
assertion_t

Public メソッド

 definition (const static_api_parser &self)
 コンストラクタ
void set_id ()
const rule_tstart () const

Public 変数

const c_strlit_parser_t c_strlit_p
const c_ident_parser_t c_ident_p
rule_t top
rule_t api_name
rule_t parameter_list
rule_t parameter
rule_t packet
rule_t cexpr
guard_t guard_api
guard_t guard_packet
assertion_t expect_open_paren
assertion_t expect_close_paren
assertion_t expect_close_brace
assertion_t expect_comma
assertion_t expect_semicolon


説明

template<class Scanner>
struct toppers::itron::static_api_parser::definition< Scanner >

静的APIの構文解析における文法定義

static_api_parser.hpp118 行で定義されています。


コンストラクタとデストラクタ

template<class Scanner>
toppers::itron::static_api_parser::definition< Scanner >::definition const static_api_parser self  )  [inline]
 

コンストラクタ

引数:
self 構文解析クラス(文法クラス)への参照

static_api_parser.hpp138 行で定義されています。

参照先 toppers::itron::static_api_parser::definition< Scanner >::api_nametoppers::itron::static_api_parser::definition< Scanner >::c_ident_ptoppers::itron::static_api_parser::definition< Scanner >::cexprtoppers::itron::static_api_parser::definition< Scanner >::expect_close_bracetoppers::itron::static_api_parser::definition< Scanner >::expect_close_parentoppers::itron::static_api_parser::definition< Scanner >::expect_semicolontoppers::itron::static_api_parser::definition< Scanner >::guard_apitoppers::itron::static_api_parser::definition< Scanner >::guard_packettoppers::itron::static_api_parser::definition< Scanner >::packettoppers::itron::static_api_parser::definition< Scanner >::parametertoppers::itron::static_api_parser::definition< Scanner >::parameter_listtoppers::itron::static_api_parser::definition< Scanner >::set_id()toppers::itron::static_api_parser::tokens_toppers::itron::static_api_parser::definition< Scanner >::top.

00139           : c_strlit_p( c_strlit_parser( self.cexpr_p_.codeset_ ) ),
00140             c_ident_p( c_ident_parser( self.cexpr_p_.ucn_, self.cexpr_p_.codeset_ ) ),
00141             expect_open_paren( open_paren_expected ),
00142             expect_close_paren( close_paren_expected ),
00143             expect_close_brace( close_brace_expected ),
00144             expect_comma( comma_expected ),
00145             expect_semicolon( semicolon_expected )
00146         {
00147           using namespace boost::spirit;
00148           set_id();
00149           top =
00150               guard_api
00151               (
00152                 api_name >> 
00153 //                  expect_open_paren( str_p( "(" ) ) >>  // local_class指定子でエラーになるので判定を除去
00154                   str_p( "(" ) >>
00155                   parameter_list >>
00156                   expect_close_paren( str_p( ")" ) ) >>
00157                   expect_semicolon( ch_p( ';' ) )
00158               )
00159               [
00160                 error_handler()
00161               ];
00162           api_name =
00163               c_ident_p[ push_back_a( self.tokens_ ) ];
00164           parameter_list =
00165               parameter % ',';
00166           parameter =
00167               packet | cexpr;
00168           packet =
00169               guard_packet
00170               (
00171                 str_p( "{" )[ push_back_a( self.tokens_ ) ] >>
00172                 parameter_list >>
00173                 expect_close_brace( str_p( "}" )[ push_back_a( self.tokens_ ) ] ) 
00174               )
00175               [
00176                 error_handler()
00177               ];
00178           cexpr =
00179               self.cexpr_p_[ push_back_a( self.tokens_ ) ];
00180         }

関数の呼び出しグラフ:


この構造体の説明は次のファイルから生成されました:
Copyright © 2006 by TAKAGI Nobuhisa.
このページは Wed Apr 12 16:32:06 2006 に Doxygen によって生成されました。