mxsdoc

Context.ms

依存

struct ContextStruct

解析対象の文字列を操作する。

補足

改行コードは全てLFに変換される。

public _CP1_

プロパティ
<String>

作成パラメータ1。解析対象の文字列。

private cache

プロパティ
<Struct:CacheStruct>

private lastError

プロパティ
<Struct:ErrorStruct>

private lineRanges

プロパティ
<Array[<DataPair Start:<Integer> End:<Integer>>]>

行頭と行末の位置の配列。

private ss

プロパティ
<StringStream>

public fn EOS

現在の位置がストリームの終端にあるかどうか。

戻り値
<BooleanClass>

public fn GetLastError

最後に記録されたエラーを取得する。

戻り値
<Struct:ErrorStruct>

public fn GetLineNumber

任意の位置の行数を取得する。

パラメータ
offset
<Integer>
戻り値
<Integer>

位置が範囲外の場合は0を返す。

public fn GetOffset

現在の位置を取得する。

戻り値
<Integer>

public fn LogError

エラーを記録する。

パラメータ
errorOffset
<Integer>

エラーが発生した位置。

パラメータ
expected
<String>

期待する文字列。

戻り値
<OkClass>

public fn PrintDebugInfo

デバッグ情報をリスナーに出力する。

パラメータ
parserName
<String>
戻り値
<OkClass>

public fn PrintError

エラー情報をリスナーに出力する。

パラメータ
result
<Any>
戻り値
<OkClass>
補足

結果が失敗以外の場合は警告として出力する。

public fn Read

現在の位置から指定の数の文字を文字列として取得する。

戻り値
<String>
補足

ストリームの終端を超えてしまう場合は現在の位置から終端までの文字列を返す。
現在の位置がストリームの終端に達している場合は空文字列を返す。

public fn ReadCache

パース結果をキャッシュから読み取る。

パラメータ
parser
<Struct>

メモ化対象のパーサのインスタンス。

戻り値
<DataPair Hit:<BooleanClass> Cache:<DataPair End:<Integer> Value:<Any>|UndefinedClass>>

キャッシュが存在した場合はHittrueになる。

public fn Seek

位置を設定する。

戻り値
<Integer>

設定後の位置。

補足

ストリームの終端を超えてしまう場合は終端に設定される。

public fn SetStream

解析対象の文字列を設定する。

パラメータ
input
<String>
戻り値
<OkClass>
補足

内部状態が初期化される。

public fn SOS

現在の位置がストリームの先端にあるかどうか。

戻り値
<BooleanClass>

public fn WriteCache

パース結果をキャッシュに書き込む。

パラメータ
parser
<Struct>

メモ化対象のパーサのインスタンス。

パラメータ
start
<Integer>

開始位置。

パラメータ
end
<Integer>

終了位置。

パラメータ
result
<Any>

メモ化対象のパーサのパース結果。

戻り値
<OkClass>

private fn getLineText

指定した行の文字列を取得する。

パラメータ
lineNumber
<Integer>
戻り値
<String>

行が範囲外の場合は空文字列を返す。

補足

エスケープシーケンスのエスケープ処理は行わない。

private fn initialize

内部状態を初期化する。

戻り値
<OkClass>

private fn setLineRanges

行の範囲を設定する。

戻り値
<OkClass>

public fn StructName

戻り値
<Name>

public fn Dump

パラメータ
indent:
<String>
パラメータ
out:
<FileStream|StringStream|WindowStream>

出力先。既定値はlistener

戻り値
<OkClass>

public fn Equals

パラメータ
obj
<Any>
戻り値
<BooleanClass>
補足

大文字と小文字を区別する。