構造体 テンプレート 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_t & start () 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.hpp の 118 行で定義されています。


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

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

コンストラクタ

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

static_api_parser.hpp の 138 行で定義されています。

参照先 toppers::itron::static_api_parser::definition< Scanner >::api_name・toppers::itron::static_api_parser::definition< Scanner >::c_ident_p・toppers::itron::static_api_parser::definition< Scanner >::cexpr・toppers::itron::static_api_parser::definition< Scanner >::expect_close_brace・toppers::itron::static_api_parser::definition< Scanner >::expect_close_paren・toppers::itron::static_api_parser::definition< Scanner >::expect_semicolon・toppers::itron::static_api_parser::definition< Scanner >::guard_api・toppers::itron::static_api_parser::definition< Scanner >::guard_packet・toppers::itron::static_api_parser::definition< Scanner >::packet・toppers::itron::static_api_parser::definition< Scanner >::parameter・toppers::itron::static_api_parser::definition< Scanner >::parameter_list・toppers::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 によって生成されました。