TNB Library
クラス | 公開型 | 公開メンバ関数 | 全メンバ一覧
CGrammarAnalyzerT< TYP, ITE > クラステンプレート

文法解析テンプレート [詳解]

#include <TnbGrammarAnalyzer.h>

クラス

class  CParts
 文法解析用パーツ管理クラス [詳解]
 
struct  IFormat
 文法解析用フォーマットインターフェース [詳解]
 

公開型

enum  EPartsKind {
  TOKEN , CHARACTOR , STRING , PERIOD_CHAR ,
  OPEN_CHAR , CLOSE_CHAR , FINAL , ERROR_STRING ,
  ERROR_DEPTH
}
 パーツ種類コード [詳解]
 

公開メンバ関数

 CGrammarAnalyzerT (const CGrammarAnalyzerT &other)
 コピーコンストラクタ [詳解]
 
 CGrammarAnalyzerT (ITE is=ITE(), ITE ie=ITE(), INT_PTR line=1)
 コンストラクタ [詳解]
 
TYP GetBlockChar (void) const
 [取得] ブロック文字 [詳解]
 
INT_PTR GetDepth (void) const
 [取得] 深さ取得 [詳解]
 
UINT_PTR GetLine (void) const
 [取得] 行番号取得 [詳解]
 
CStr GetName (void) const
 [取得] 名前取得 [詳解]
 
CParts GetNextParts (bool boIsToken=true)
 [取得] 次のパーツ取得 [詳解]
 
ITE GetPointer (void)
 [取得] 現在のイテレータ [詳解]
 
UINT_PTR GetPos (void) const
 [取得] ポジション取得 [詳解]
 
UINT_PTR GetRaw (void) const
 [取得] 列番号取得 [詳解]
 
CGrammarAnalyzerToperator= (const CGrammarAnalyzerT &other)
 コピーオペレータ [詳解]
 
CParts PeekNextParts (bool boIsToken=true)
 [確認] 次のパーツ確認 [詳解]
 
void SetFormat (const IFormat *P)
 [設定] フォーマッタ設定. [詳解]
 
void SetName (LPCTSTR name)
 [設定] 名前設定 [詳解]
 
bool SkipoutBlock (void)
 [処理] ブロックからステップアウト. [詳解]
 
INT_PTR StepPointer (INT_PTR step)
 [処理] ステップ. [詳解]
 

詳解

template<typename TYP = TCHAR, typename ITE = const TYP*>
class TNB::CGrammarAnalyzerT< TYP, ITE >

文法解析テンプレート

一つのポインタを管理し、文字列の解析をサポートします。
その際、改行も考慮するため、処理中の行番号を知ることが出来ます。
引数
TYP通常、 char(ASCII/SJIS) か WCHAR(UNICODE) を指定します。
ITETYP型を扱うイテレータ型を指定します。省略すると const TYP* になります。
必要ファイル
TnbGrammarAnalyzer.h
日付
07/07/07 新規作成
07/07/13 入力はイテレータにした。

TnbGrammarAnalyzer.h44 行目に定義があります。

列挙型メンバ詳解

◆ EPartsKind

enum EPartsKind

パーツ種類コード

列挙値
TOKEN 

トークン

CHARACTOR 

文字

STRING 

文字列

PERIOD_CHAR 

トークン区切り文字

OPEN_CHAR 

ブロック開始文字

CLOSE_CHAR 

ブロック終端文字

FINAL 

終わり

ERROR_STRING 

文字列エラー

ERROR_DEPTH 

深さエラー

TnbGrammarAnalyzer.h237 行目に定義があります。

構築子と解体子

◆ CGrammarAnalyzerT() [1/2]

CGrammarAnalyzerT ( ITE  is = ITE(),
ITE  ie = ITE(),
INT_PTR  line = 1 
)

コンストラクタ

引数
is開始イテレータ。省略可能。
ie番兵イテレータ。省略可能。
line行番号。省略可能。

TnbGrammarAnalyzer.h411 行目に定義があります。

◆ CGrammarAnalyzerT() [2/2]

CGrammarAnalyzerT ( const CGrammarAnalyzerT< TYP, ITE > &  other)

コピーコンストラクタ

引数
otherコピー元

TnbGrammarAnalyzer.h420 行目に定義があります。

関数詳解

◆ GetBlockChar()

TYP GetBlockChar ( void  ) const

[取得] ブロック文字

戻り値
0ブロックなし
0以外ブロック開始文字

TnbGrammarAnalyzer.h527 行目に定義があります。

◆ GetDepth()

INT_PTR GetDepth ( void  ) const

[取得] 深さ取得

戻り値
深さ

TnbGrammarAnalyzer.h517 行目に定義があります。

◆ GetLine()

UINT_PTR GetLine ( void  ) const

[取得] 行番号取得

戻り値
行番号

TnbGrammarAnalyzer.h479 行目に定義があります。

◆ GetName()

CStr GetName ( void  ) const

[取得] 名前取得

覚え書き
SetGrammarName で設定した名前を取得できます。
戻り値
名前。

TnbGrammarAnalyzer.h470 行目に定義があります。

◆ GetNextParts()

CParts GetNextParts ( bool  boIsToken = true)

[取得] 次のパーツ取得

覚え書き
文字列ポインタは、パーツの後をさしています。 ただし、FINALの場合文字列ポインタは動きません。
引数
boIsTokenture か省略なら TOEKN で取り出します。false なら CHARACTOR で一文字だけ取り出します。
戻り値
パーツ。

TnbGrammarAnalyzer.h540 行目に定義があります。

◆ GetPointer()

ITE GetPointer ( void  )

[取得] 現在のイテレータ

覚え書き
現在のイテレータを得ることが出来ます。
戻り値
イテレータ

TnbGrammarAnalyzer.h507 行目に定義があります。

◆ GetPos()

UINT_PTR GetPos ( void  ) const

[取得] ポジション取得

戻り値
ポジション番号

TnbGrammarAnalyzer.h497 行目に定義があります。

◆ GetRaw()

UINT_PTR GetRaw ( void  ) const

[取得] 列番号取得

戻り値
列番号

TnbGrammarAnalyzer.h488 行目に定義があります。

◆ operator=()

CGrammarAnalyzerT & operator= ( const CGrammarAnalyzerT< TYP, ITE > &  other)

コピーオペレータ

引数
otherコピー元
戻り値
自分の参照

TnbGrammarAnalyzer.h434 行目に定義があります。

◆ PeekNextParts()

CParts PeekNextParts ( bool  boIsToken = true)

[確認] 次のパーツ確認

覚え書き
文字列ポインタは動きません。
引数
boIsTokenture か省略なら TOEKN で取り出します。false なら CHARACTOR で一文字だけ取り出します。
戻り値
パーツ。

TnbGrammarAnalyzer.h641 行目に定義があります。

◆ SetFormat()

void SetFormat ( const IFormat P)

[設定] フォーマッタ設定.

引数
Pフォーマッタ。NULLを指定すると、デフォルトに戻ります。

TnbGrammarAnalyzer.h450 行目に定義があります。

◆ SetName()

void SetName ( LPCTSTR  name)

[設定] 名前設定

覚え書き
任意の名前を一つ記憶させることが出来ます。
引数
name名前。

TnbGrammarAnalyzer.h460 行目に定義があります。

◆ SkipoutBlock()

bool SkipoutBlock ( void  )

[処理] ブロックからステップアウト.

戻り値
falseエラー。文字列ポインタは動きません。
true成功。文字列ポインタはブロック終端文字の次に移動します。

TnbGrammarAnalyzer.h618 行目に定義があります。

◆ StepPointer()

INT_PTR StepPointer ( INT_PTR  step)

[処理] ステップ.

指定数、ポインタを進めます。ただし、指定数進めたところがトークンの途中なら、 トークンの終わりまで進めてしまいます。

引数
stepステップしたい数。
戻り値
ステップした数。

TnbGrammarAnalyzer.h656 行目に定義があります。