|
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 行目に定義があります。