ネームスペース toppers

ライブラリに共通のトップレベルの名前空間 [詳細]


構成

struct  c_expr_parser_base
 C言語の式を構文解析するための基本クラス [詳細]
class  c_expr_parser
 C言語の式の構文解析クラス [詳細]
class  c_const_expr_parser
 C言語の定数式の構文解析クラス [詳細]
class  c_pp_line
 line指令を処理させるためのファンクタクラス [詳細]
class  cmdline
 コマンドライン解析クラス [詳細]
class  factory
 各オブジェクトのファクトリクラス [詳細]
class  kernel_cfg
 "kernel_cfg.c"ファイル出力のための基底クラス [詳細]
class  cfg_base
 設定ファイル出力のための基底クラス [詳細]
class  kernel_id
 "kernel_id.h"ファイル出力のための基底クラス [詳細]
class  conversion_error
 変換エラー例外クラス [詳細]
class  nm_symbol
 "nm"コマンドで得られるシンボルテーブルを扱うためのクラス [詳細]
class  reporter
 処理経過の報告クラス [詳細]
class  s_record
 モトローラSレコードを扱うためのクラス [詳細]
class  basic_text
 テキストデータ管理テンプレートクラス [詳細]
struct  text_line
 ファイル名と行番号の保持クラス [詳細]
struct  basic_line_buf

ネームスペース

namespace  detail
namespace  itron
 TOPPERS/JSPカーネルを初めとするμITRON用の名前空間

型定義

typedef boost::spirit::functor_parser<
detail::c_strlit_parse_functor<> > 
c_strlit_parser_t
typedef boost::spirit::functor_parser<
detail::c_chlit_parse_functor<> > 
c_chlit_parser_t
typedef boost::spirit::functor_parser<
detail::c_identifier_parse_functor
c_ident_parser_t
typedef basic_text< std::vector,
char > 
text
typedef basic_line_buf< char > line_buf

列挙型

enum  codeset_t { ascii, shift_jis, euc_jp, utf8 }
 文字コード種別 [詳細]

関数

const boost::spirit::functor_parser<
detail::c_identifier_parse_functor
c99_ident_p (detail::c_identifier_parse_functor(true))
 C99形式の識別子パーサー
const boost::spirit::functor_parser<
detail::c_identifier_parse_functor
c_plus_plus_ident_p (detail::c_identifier_parse_functor(true, true))
 C++形式の識別子パーサー
template<typename T>
void trace (const char *str, const T &value)
template<typename CharT>
CharT widen (char ch)
 シングルバイト文字から CharT 型(多くは wchar_t 型)文字への変換
template<>
char widen< char > (char ch)
template<>
unsigned char widen< unsigned char > (char ch)
template<>
wchar_t widen< wchar_t > (char ch)
template<typename CharT>
const std::basic_string< CharT > widen (const std::string &str)
 シングルバイト文字列から CharT 型文字列への変換
char tolower (char ch)
 小文字への変換
const std::string tolower (std::string str)
 文字列を小文字に変換
template<class Traits, class Allocator>
const std::basic_string< wchar_t,
Traits, Allocator > 
tolower (std::basic_string< wchar_t, Traits, Allocator > str)
 ワイド文字列を小文字に変換
char toupper (char ch)
 大文字への変換
const std::string toupper (std::string str)
 文字列を大文字に変換
template<class Traits, class Allocator>
const std::basic_string< wchar_t,
Traits, Allocator > 
toupper (std::basic_string< wchar_t, Traits, Allocator > str)
 ワイド文字列を大文字に変換
template<class InputIterator, typename CharT, class Traits, class Pred>
void output_list (InputIterator first, InputIterator last, std::basic_ostream< CharT, Traits > &ostr, Pred pred, const CharT *delim=0)
 指定文字で区切られたリスト出力
template<typename T>
const boost::spirit::functor_parser<
detail::c_integer_parse_functor<
T > > 
c_int_parser ()
 C言語形式の整数定数パーサー
template<int CodeSet>
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<
CodeSet > > 
mbchar_parser ()
 マルチバイト文字パーサー
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<> > 
mbchar_parser (codeset_t codeset)
const boost::spirit::functor_parser<
detail::ucn_parse_functor
ucn_parser ()
 国際文字名パーサー
template<int CodeSet>
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<
CodeSet > > 
c_strlit_parser ()
 C言語形式の文字列定数パーサー
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<> > 
c_strlit_parser (codeset_t codeset)
 C言語形式の文字列定数パーサー
template<int CodeSet>
const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<
CodeSet > > 
c_chlit_parser ()
 C言語形式の文字定数パーサー
const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<> > 
c_chlit_parser (codeset_t codeset)
 C言語形式の文字定数パーサー
const boost::spirit::functor_parser<
detail::c_identifier_parse_functor
c_ident_parser (bool ucn=false, bool c_plus_plus=false)
 C言語形式の識別子パーサー
void warning (const text_line &line, const boost::format &fmt)
void error (const text_line &line, const boost::format &fmt)
void fatal (const text_line &line, const boost::format &fmt)
void warning (const boost::format &fmt)
 警告
void warning (const std::string &file, int line, const boost::format &fmt)
 警告(行番号あり)
void error (const boost::format &fmt)
 エラー
void error (const std::string &file, int line, const boost::format &fmt)
 エラー(行番号あり)
void fatal (const boost::format &fmt)
 致命的エラー
void fatal (const std::string &file, int line, const boost::format &fmt)
 致命的エラー(行番号あり)
void stop (const boost::format &fmt)
 プログラムの停止
const text_lineget_text_line (text::const_iterator iter)
const text_lineget_text_line (text::iterator iter)
template<class Iterator>
const text_lineget_text_line (Iterator iter)
 イテレータが保持する行番号情報の取得

変数

const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<
ascii > > 
ascii_ch_p
 C言語形式の文字定数パーサー(ASCII)
const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<
shift_jis > > 
shift_jis_ch_p
 C言語形式の文字定数パーサー(Shift JIS)
const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<
euc_jp > > 
euc_jp_ch_p
 C言語形式の文字定数パーサー(EUC-JP)
const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<
utf8 > > 
utf8_ch_p
 C言語形式の文字定数パーサー(UTF-8)
const boost::spirit::functor_parser<
detail::c_identifier_parse_functor
c_ident_p
 C90形式の識別子パーサー
const boost::spirit::functor_parser<
detail::c_integer_parse_functor<
int > > 
c_int_p
 C言語形式のint型定数パーサ
const boost::spirit::functor_parser<
detail::c_integer_parse_functor<
unsigned > > 
c_uint_p
 C言語形式のunsigned int型定数パーサ
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<
ascii > > 
ascii_str_p
 C言語形式の文字列定数パーサー(ASCII)
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<
shift_jis > > 
shift_jis_str_p
 C言語形式の文字列定数パーサー(ShiftJIS)
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<
euc_jp > > 
euc_jp_str_p
 C言語形式の文字列定数パーサー(EUC-JP)
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<
utf8 > > 
utf8_str_p
 C言語形式の文字列定数パーサー(UTF-8)
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<
ascii > > 
ascii_p
 ASCII文字パーサー
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<
shift_jis > > 
shift_jis_p
 ShiftJIS文字パーサー
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<
euc_jp > > 
euc_jp_p
 EUC-JP文字パーサー
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<
utf8 > > 
utf8_p
 UTF-8文字パーサー
const boost::spirit::functor_parser<
detail::c_integer_parse_functor<
int > > 
c_int_p
 C言語形式のint型定数パーサ
const boost::spirit::functor_parser<
detail::c_integer_parse_functor<
unsigned > > 
c_uint_p
 C言語形式のunsigned int型定数パーサ
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<
ascii > > 
ascii_p
 ASCII文字パーサー
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<
shift_jis > > 
shift_jis_p
 ShiftJIS文字パーサー
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<
euc_jp > > 
euc_jp_p
 EUC-JP文字パーサー
const boost::spirit::functor_parser<
detail::mbchar_parse_functor<
utf8 > > 
utf8_p
 UTF-8文字パーサー
const boost::spirit::functor_parser<
detail::ucn_parse_functor
ucn_p
 国際文字名パーサー
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<
ascii > > 
ascii_str_p
 C言語形式の文字列定数パーサー(ASCII)
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<
shift_jis > > 
shift_jis_str_p
 C言語形式の文字列定数パーサー(ShiftJIS)
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<
euc_jp > > 
euc_jp_str_p
 C言語形式の文字列定数パーサー(EUC-JP)
const boost::spirit::functor_parser<
detail::c_strlit_parse_functor<
utf8 > > 
utf8_str_p
 C言語形式の文字列定数パーサー(UTF-8)
const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<
ascii > > 
ascii_ch_p
 C言語形式の文字定数パーサー(ASCII)
const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<
shift_jis > > 
shift_jis_ch_p
 C言語形式の文字定数パーサー(Shift JIS)
const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<
euc_jp > > 
euc_jp_ch_p
 C言語形式の文字定数パーサー(EUC-JP)
const boost::spirit::functor_parser<
detail::c_chlit_parse_functor<
utf8 > > 
utf8_ch_p
 C言語形式の文字定数パーサー(UTF-8)
const boost::spirit::functor_parser<
detail::c_identifier_parse_functor
c_ident_p
 C90形式の識別子パーサー
const boost::spirit::functor_parser<
detail::c_identifier_parse_functor
c99_ident_p
const boost::spirit::functor_parser<
detail::c_identifier_parse_functor
c_plus_plus_ident_p
const boost::spirit::functor_parser<
detail::ucn_parse_functor
ucn_p
 国際文字名パーサー


説明

ライブラリに共通のトップレベルの名前空間

列挙型

enum toppers::codeset_t
 

文字コード種別

現状では日本語のみを考慮しています。

codeset.hpp55 行で定義されています。

00056   {
00057     ascii,
00058     shift_jis,
00059     euc_jp,
00060     utf8
00061   };


関数

const boost::spirit::functor_parser<detail::c_chlit_parse_functor<> > toppers::c_chlit_parser codeset_t  codeset  )  [inline]
 

C言語形式の文字定数パーサー

引数:
codeset 文字コード
単引用符で囲まれたC言語形式の文字定数を解析します。

parser.hpp519 行で定義されています。

00520   {
00521     return boost::spirit::functor_parser<detail::c_chlit_parse_functor<> >( detail::c_chlit_parse_functor<>( codeset ) );
00522   }

template<int CodeSet>
const boost::spirit::functor_parser<detail::c_chlit_parse_functor<CodeSet> > toppers::c_chlit_parser  )  [inline]
 

C言語形式の文字定数パーサー

単引用符で囲まれたC言語形式の文字定数を解析します。 文字コードは CodeSet で指定したものになります。

parser.hpp506 行で定義されています。

00507   {
00508     return boost::spirit::functor_parser<detail::c_chlit_parse_functor<CodeSet> >();
00509   }

const boost::spirit::functor_parser<detail::c_identifier_parse_functor> toppers::c_ident_parser bool  ucn = false,
bool  c_plus_plus = false
[inline]
 

C言語形式の識別子パーサー

引数:
ucn 国際文字を許容する場合は true を指定
c_plus_plus C++の予約語を禁止する場合は true を指定
C言語の識別子として使用できる文字列の解析を行います。 識別子は下線または英文字で始まり、下線または英数字が続くのが原則ですが、 C99以降では国際文字名も使用できるため、引数 ucn に true を指定することで、 国際文字名対応が可能になります。

覚え書き:
翻訳限界および予約識別子の判別は行っていません。

parser.hpp543 行で定義されています。

00544   {
00545     return boost::spirit::functor_parser<detail::c_identifier_parse_functor>( detail::c_identifier_parse_functor( ucn, c_plus_plus ) );
00546   }

template<typename T>
const boost::spirit::functor_parser<detail::c_integer_parse_functor<T> > toppers::c_int_parser  )  [inline]
 

C言語形式の整数定数パーサー

boost::spirit::int_parserとの違いは、接頭辞に応じて8進数や16進数として解釈 する点です。また型を特定するための接尾辞も受け入れます。

parser.hpp425 行で定義されています。

00426   {
00427     return boost::spirit::functor_parser<detail::c_integer_parse_functor<T> >();
00428   }

const boost::spirit::functor_parser<detail::c_strlit_parse_functor<> > toppers::c_strlit_parser codeset_t  codeset  )  [inline]
 

C言語形式の文字列定数パーサー

引数:
codeset 文字列に使用されている文字コード
二重引用符で囲まれたC言語形式の文字列を解析します。

parser.hpp489 行で定義されています。

00490   {
00491     return boost::spirit::functor_parser<detail::c_strlit_parse_functor<> >( detail::c_strlit_parse_functor<>( codeset ) );
00492   }

template<int CodeSet>
const boost::spirit::functor_parser<detail::c_strlit_parse_functor<CodeSet> > toppers::c_strlit_parser  )  [inline]
 

C言語形式の文字列定数パーサー

二重引用符で囲まれたC言語形式の文字列を解析します。 文字列の文字コードは CodeSet で指定したものになります。

parser.hpp476 行で定義されています。

参照元 toppers::detail::c_pp_line_parser::definition< Scanner >::definition().

00477   {
00478     return boost::spirit::functor_parser<detail::c_strlit_parse_functor<CodeSet> >();
00479   }

void toppers::error const std::string &  file,
int  line,
const boost::format &  fmt
[inline]
 

エラー(行番号あり)

引数:
file エラーが発生したファイル名
line エラーが発生した行番号
fmt 出力メッセージ
例外:
toppers::reporter::terminator 

reporter.hpp144 行で定義されています。

参照先 toppers::reporter::error().

00145   {
00146     reporter r;
00147     r.error( file, line, fmt );
00148   }

関数の呼び出しグラフ:

void toppers::error const boost::format &  fmt  )  [inline]
 

エラー

引数:
fmt 出力メッセージ
例外:
toppers::reporter::terminator 

reporter.hpp132 行で定義されています。

参照先 toppers::reporter::error().

00133   {
00134     reporter r;
00135     r.error( fmt );
00136   }

関数の呼び出しグラフ:

void toppers::fatal const std::string &  file,
int  line,
const boost::format &  fmt
[inline]
 

致命的エラー(行番号あり)

引数:
file 致命的エラーが発生したファイル名
line 致命的エラーが発生した行番号
fmt 出力メッセージ
例外:
toppers::reporter::terminator 

reporter.hpp168 行で定義されています。

参照先 toppers::reporter::fatal().

00169   {
00170     reporter r;
00171     r.fatal( file, line, fmt );
00172   }

関数の呼び出しグラフ:

void toppers::fatal const boost::format &  fmt  )  [inline]
 

致命的エラー

引数:
fmt 出力メッセージ
例外:
toppers::reporter::terminator 

reporter.hpp156 行で定義されています。

参照先 toppers::reporter::fatal().

00157   {
00158     reporter r;
00159     r.fatal( fmt );
00160   }

関数の呼び出しグラフ:

template<class Iterator>
const text_line& toppers::get_text_line Iterator  iter  )  [inline]
 

イテレータが保持する行番号情報の取得

引数:
iter イテレータ
戻り値:
行番号情報への参照を返す
iter で指定したイテレータが行番号情報を保持しているなら、その行番号情報を返します。 行番号情報を保持していない場合はダミーオブジェクトへの参照を返します。

text_line.hpp167 行で定義されています。

00168   {
00169     static text_line dummy;
00170     return dummy;
00171   }

template<int CodeSet>
const boost::spirit::functor_parser<detail::mbchar_parse_functor<CodeSet> > toppers::mbchar_parser  )  [inline]
 

マルチバイト文字パーサー

テンプレート引数 CodeSet で指定した文字コードを解析します。 ascii 以外を指定した場合でも、ASCIIの範囲(0x7f以下)にも合致します。 0x00 は文字列の終端と区別できないため、合致対象にはなりません。

parser.hpp441 行で定義されています。

00442   {
00443     return boost::spirit::functor_parser<detail::mbchar_parse_functor<CodeSet> >();
00444   }

template<class InputIterator, typename CharT, class Traits, class Pred>
void toppers::output_list InputIterator  first,
InputIterator  last,
std::basic_ostream< CharT, Traits > &  ostr,
Pred  pred,
const CharT *  delim = 0
 

指定文字で区切られたリスト出力

引数:
first 出力する先頭要素位置
last 出力する終端要素位置+1
ostr 出力ストリーム
pred 各要素を受け取り出力値を返す述語
delim 区切文字
この関数は区間 [first, last) の各要素を pred に渡して得られる値を delim で区切って ostr に出力します。
終端の要素の後には delim は出力されず、要素と要素の間にのみ delim が 出力されます。

misc.hpp221 行で定義されています。

参照元 toppers::itron::jsp::task_policy::generate_constants().

00222   {
00223     if ( delim == 0 )
00224     {
00225       static const CharT null_delim[] = { 0 };
00226       delim = null_delim;
00227     }
00228 
00229     for ( bool f = false; first != last; ++first )
00230     {
00231       if ( f )
00232       {
00233         ostr << delim;
00234       }
00235       ostr << pred( *first );
00236       f = true;
00237     }
00238   }

void toppers::stop const boost::format &  fmt  )  [inline]
 

プログラムの停止

引数:
fmt 出力メッセージ
例外:
toppers::reporter::terminator 

reporter.hpp180 行で定義されています。

参照先 toppers::reporter::stop().

00181   {
00182     reporter r;
00183     r.stop( fmt );
00184   }

関数の呼び出しグラフ:

template<class Traits, class Allocator>
const std::basic_string<wchar_t, Traits, Allocator> toppers::tolower std::basic_string< wchar_t, Traits, Allocator >  str  ) 
 

ワイド文字列を小文字に変換

引数:
str 変換対象の文字
戻り値:
str に含まれる大文字を小文字に変換したワイド文字列を返す

misc.hpp165 行で定義されています。

00166   {
00167     std::transform( str.begin(), str.end(), str.begin(), &std::towlower );
00168     return str;
00169   }

const std::string toppers::tolower std::string  str  )  [inline]
 

文字列を小文字に変換

引数:
str 変換対象の文字
戻り値:
str に含まれる大文字を小文字に変換した文字列を返す

misc.hpp152 行で定義されています。

参照先 tolower().

00153   {
00154     char ( *f )( char ch ) = &tolower;
00155     std::transform( str.begin(), str.end(), str.begin(), f );
00156     return str;
00157   }

関数の呼び出しグラフ:

char toppers::tolower char  ch  )  [inline]
 

小文字への変換

引数:
ch 変換対象の文字
戻り値:
ch が大文字であれば対応する小文字を、それ以外は ch を返す

misc.hpp142 行で定義されています。

参照元 tolower()toppers::s_record::xdigit_to_int().

00143   {
00144     return static_cast<char>( std::tolower( static_cast<unsigned char>( ch ) ) );
00145   }

template<class Traits, class Allocator>
const std::basic_string<wchar_t, Traits, Allocator> toppers::toupper std::basic_string< wchar_t, Traits, Allocator >  str  ) 
 

ワイド文字列を大文字に変換

引数:
str 変換対象の文字
戻り値:
str に含まれる小文字を大文字に変換したワイド文字列を返す

misc.hpp201 行で定義されています。

00202   {
00203     std::transform( str.begin(), str.end(), str.begin(), &std::towupper );
00204     return str;
00205   }

const std::string toppers::toupper std::string  str  )  [inline]
 

文字列を大文字に変換

引数:
str 変換対象の文字
戻り値:
str に含まれる小文字を大文字に変換した文字列を返す

misc.hpp188 行で定義されています。

参照先 toupper().

00189   {
00190     char ( *f )( char ) = &toupper;
00191     std::transform( str.begin(), str.end(), str.begin(), f );
00192     return str;
00193   }

関数の呼び出しグラフ:

char toppers::toupper char  ch  )  [inline]
 

大文字への変換

引数:
ch 変換対象の文字
戻り値:
ch が小文字であれば対応する大文字を、それ以外は ch を返す

misc.hpp178 行で定義されています。

参照元 toppers::itron::jsp::file_generator< task_policy >::generate_kernel_cfg()toppers::kernel_id::include_guard_macro()toupper().

00179   {
00180     return static_cast<char>( std::toupper( static_cast<unsigned char>( ch ) ) );
00181   }

const boost::spirit::functor_parser<detail::ucn_parse_functor> toppers::ucn_parser  )  [inline]
 

国際文字名パーサー

\uまたは\Uで始まる国際文字名(Universal Character Name)を解析します。 \uhhhhまたは\Uhhhhhhhh(hは16進数字)に合致します。なお、これらの形式に 合致している場合でも、一部の値は国際文字名として使用できません。

parser.hpp462 行で定義されています。

00463   {
00464     return boost::spirit::functor_parser<detail::ucn_parse_functor>();
00465   }

void toppers::warning const std::string &  file,
int  line,
const boost::format &  fmt
[inline]
 

警告(行番号あり)

引数:
file 警告が発生したファイル名
line 警告が発生した行番号
fmt 出力メッセージ

reporter.hpp120 行で定義されています。

参照先 toppers::reporter::warning().

00121   {
00122     reporter r;
00123     r.warning( file, line, fmt );
00124   }

関数の呼び出しグラフ:

void toppers::warning const boost::format &  fmt  )  [inline]
 

警告

引数:
fmt 出力メッセージ

reporter.hpp109 行で定義されています。

参照先 toppers::reporter::warning().

00110   {
00111     reporter r;
00112     r.warning( fmt );
00113   }

関数の呼び出しグラフ:

template<typename CharT>
const std::basic_string< wchar_t > toppers::widen const std::string &  str  )  [inline]
 

シングルバイト文字列から CharT 型文字列への変換

引数:
str シングルバイト文字列
戻り値:
CharT 型文字列を返す

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

00119   {
00120     return str;
00121   }

template<typename CharT>
CharT toppers::widen char  ch  )  [inline]
 

シングルバイト文字から CharT 型(多くは wchar_t 型)文字への変換

引数:
ch シングルバイト文字
戻り値:
CharT 型文字を返す

misc.hpp78 行で定義されています。

00079   {
00080     return std::use_facet<std::ctype<CharT> >( std::locale() ).widen( ch );
00081   }


Copyright © 2006 by TAKAGI Nobuhisa.
このページは Wed Apr 12 16:32:02 2006 に Doxygen によって生成されました。