TNB Library
|
文法解析テンプレート [詳解]
#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 |
[取得] 列番号取得 [詳解] | |
CGrammarAnalyzerT & | operator= (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) |
[処理] ステップ. [詳解] | |
文法解析テンプレート
一つのポインタを管理し、文字列の解析をサポートします。 その際、改行も考慮するため、処理中の行番号を知ることが出来ます。
TYP | 通常、 char(ASCII/SJIS) か WCHAR(UNICODE) を指定します。 |
ITE | TYP型を扱うイテレータ型を指定します。省略すると const TYP* になります。 |
TnbGrammarAnalyzer.h の 44 行目に定義があります。
enum EPartsKind |
パーツ種類コード
列挙値 | |
---|---|
TOKEN | トークン |
CHARACTOR | 文字 |
STRING | 文字列 |
PERIOD_CHAR | トークン区切り文字 |
OPEN_CHAR | ブロック開始文字 |
CLOSE_CHAR | ブロック終端文字 |
FINAL | 終わり |
ERROR_STRING | 文字列エラー |
ERROR_DEPTH | 深さエラー |
TnbGrammarAnalyzer.h の 237 行目に定義があります。
CGrammarAnalyzerT | ( | ITE | is = ITE() , |
ITE | ie = ITE() , |
||
INT_PTR | line = 1 |
||
) |
CGrammarAnalyzerT | ( | const CGrammarAnalyzerT< TYP, ITE > & | other | ) |
TYP GetBlockChar | ( | void | ) | const |
INT_PTR GetDepth | ( | void | ) | const |
UINT_PTR GetLine | ( | void | ) | const |
CStr GetName | ( | void | ) | const |
CParts GetNextParts | ( | bool | boIsToken = true | ) |
[取得] 次のパーツ取得
boIsToken | ture か省略なら TOEKN で取り出します。false なら CHARACTOR で一文字だけ取り出します。 |
TnbGrammarAnalyzer.h の 540 行目に定義があります。
ITE GetPointer | ( | void | ) |
UINT_PTR GetPos | ( | void | ) | const |
UINT_PTR GetRaw | ( | void | ) | const |
CGrammarAnalyzerT & operator= | ( | const CGrammarAnalyzerT< TYP, ITE > & | other | ) |
CParts PeekNextParts | ( | bool | boIsToken = true | ) |
[確認] 次のパーツ確認
boIsToken | ture か省略なら TOEKN で取り出します。false なら CHARACTOR で一文字だけ取り出します。 |
TnbGrammarAnalyzer.h の 641 行目に定義があります。
void SetFormat | ( | const IFormat * | P | ) |
void SetName | ( | LPCTSTR | name | ) |
bool SkipoutBlock | ( | void | ) |
[処理] ブロックからステップアウト.
false | エラー。文字列ポインタは動きません。 |
true | 成功。文字列ポインタはブロック終端文字の次に移動します。 |
TnbGrammarAnalyzer.h の 618 行目に定義があります。
INT_PTR StepPointer | ( | INT_PTR | step | ) |
[処理] ステップ.
指定数、ポインタを進めます。ただし、指定数進めたところがトークンの途中なら、 トークンの終わりまで進めてしまいます。
step | ステップしたい数。 |
TnbGrammarAnalyzer.h の 656 行目に定義があります。