ParserCombinator.ms
- ParserCombinatorStruct
- andDef
- anyCharDef
- boundaryDef
- charDef
- choiceDef
- contextDef
- delayDef
- eosDef
- expectDef
- isNotDef
- lookaheadDef
- manyDef
- mapDef
- memoizeDef
- optionDef
- partialDef
- sequenceDef
- sosDef
- tokenDef
- Alphabet
- AndAlso
- AnyChar
- Boundary
- Char
- Choice
- Context
- Delay
- Diff
- Digit
- EOS
- Expect
- Flatten
- Install
- IsNot
- ItemAt
- Join
- List
- Lookahead
- LowerAlphabet
- Many
- Map
- Memo
- Option
- Partial
- Sequence
- Skip
- SOS
- Token
- Uninstall
- UpperAlphabet
- arrayItemAt
- asNotCollect
- cons
- flattenArray
- joinArray
- version
- StructName
- Dump
- Equals
- GetVersion
- 依存
struct ParserCombinatorStruct
再帰下降構文解析のためのパーサコンビネータ。
private andDef
- プロパティ
<StructDef:AndStruct>
private anyCharDef
- プロパティ
<StructDef:AnyCharStruct>
private boundaryDef
- プロパティ
<StructDef:BoundaryStruct>
private charDef
- プロパティ
<StructDef:CharStruct>
private choiceDef
- プロパティ
<StructDef:ChoiceStruct>
private contextDef
- プロパティ
<StructDef:ContextStruct>
private delayDef
- プロパティ
<StructDef:DelayStruct>
private eosDef
- プロパティ
<StructDef:EOSStruct>
private expectDef
- プロパティ
<StructDef:ExpectStruct>
private isNotDef
- プロパティ
<StructDef:IsNotStruct>
private lookaheadDef
- プロパティ
<StructDef:LookaheadStruct>
private manyDef
- プロパティ
<StructDef:ManyStruct>
private mapDef
- プロパティ
<StructDef:MapStruct>
private memoizeDef
- プロパティ
<StructDef:MemoizeStruct>
private optionDef
- プロパティ
<StructDef:OptionStruct>
private partialDef
- プロパティ
<StructDef:PartialStruct>
private sequenceDef
- プロパティ
<StructDef:SequenceStruct>
private sosDef
- プロパティ
<StructDef:SOSStruct>
private tokenDef
- プロパティ
<StructDef:TokenStruct>
public fn Alphabet
アルファベットに一致するパーサ。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:ChoiceStruct>
public fn AndAlso
与えられたパーサの内、最後のパーサの結果を返すパーサ。
- パラメータ
parsers<Array[<Struct>]>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:AndStruct>
- 補足
最後以外のパーサが成功している間は解析対象の文字列を消費しない。
もし最後以外のパーサが失敗するとその時点でパース失敗となる。
public fn AnyChar
どのような一文字にも一致するパーサ。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:AnyCharStruct>
public fn Boundary
ワード境界に一致するパーサ。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:BoundaryStruct>
- 補足
現在位置の前後において一方が正規表現の
\w([a-zA-Z_0-9])、もう一方が\Wに一致する場合をワード境界とみなす。
public fn Char
入力文字列に含まれる一文字に一致するパーサ。
- パラメータ
pattern<String>
- パラメータ
except:<BooleanClass>一致すると失敗にする場合は
true、成功にする場合はfalse。既定値はfalse。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:CharStruct>
- 補足
大文字と小文字を区別する。
public fn Choice
与えられたパーサを順に試して最初に成功した結果を返すパーサ。
- パラメータ
parsers<Array[<Struct>]>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:ChoiceStruct>
public fn Context
解析対象の文字列を操作するためのオブジェクトを生成する。
- パラメータ
input<String>解析対象の文字列。
- 戻り値
<Struct:ContextStruct>
public fn Delay
パーサを遅延評価するパーサ。
- パラメータ
callback<MAXScriptFunction>パーサインスタンスを返す関数値。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:DelayStruct>
public fn Diff
パーサAに一致するもののうちパーサBに一致するものを除外するパーサ。
- パラメータ
parserA<Struct>
- パラメータ
parserB<Struct>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:PartialStruct>
public fn Digit
数字に一致するパーサ。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:CharStruct>
public fn EOS
解析対象の文字列の終端に一致するパーサ。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:EOSStruct>
public fn Expect
成功を期待するパーサが失敗した場合にエラーを記録するパーサ。
- パラメータ
parser<Struct>
- パラメータ
expected:<String>期待する構文規則。既定値は
""。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:ExpectStruct>
- 補足
expectedに渡す文字列のエスケープシーケンスは予めエスケープすること。
public fn Flatten
与えられたパーサが返す配列を一次元配列にするパーサ。
- パラメータ
parser<Struct>
- パラメータ
depth:<Integer>統合する次元の深さ。
-1で全ての次元を統合する。既定値は-1。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:PartialStruct>
public fn Install
インストールする。
- 戻り値
<OkClass>
- 補足
静的メソッド。
public fn IsNot
入力したパーサが成功すれば失敗し、失敗すれば成功するパーサ。
- パラメータ
parser<Struct>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:IsNotStruct>
- 補足
解析対象の文字列を消費しない。
public fn ItemAt
与えられたパーサが配列を返す時、指定したインデックスの要素を返すパーサ。
- パラメータ
parser<Struct>
- パラメータ
index<Integer>-1を指定した場合は最後の要素を取得する。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:PartialStruct>
public fn Join
与えられたパーサが返す配列の要素を全て文字列として連結するパーサ。
- パラメータ
parser<Struct>
- パラメータ
separator:<String>区切り文字。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:PartialStruct>
public fn List
配列等の区切り文字で区切られた文字列を解析するパーサ。
- パラメータ
parser<Struct>
- パラメータ
separator<Struct>区切り文字のパーサ。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:MapStruct>
- 補足
separatorにSkipを使用すると失敗するので注意すること。
public fn Lookahead
先読みパーサ。
- パラメータ
parsers<Array[<Struct>]>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:LookaheadStruct>
- 補足
2番目以降のパーサが成功した時、1番目のパーサの結果を返す。
解析対象の文字列は1番目のパーサ分だけ消費する。
失敗した場合は解析対象の文字列を消費しない。
public fn LowerAlphabet
小文字のアルファベットに一致するパーサ。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:CharStruct>
public fn Many
与えられたパーサを失敗するまで繰り返し、結果を配列として返すパーサ。
- パラメータ
parser<Struct>
- パラメータ
minCount:<Integer>最小繰り返し回数。既定値は
0。
- パラメータ
maxCount:<Integer>最大繰り返し回数。既定値は
2147483647。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:ManyStruct>
public fn Map
与えられたパーサの結果を加工するパーサ。
- パラメータ
parser<Struct>
- パラメータ
callback<MAXScriptFunction>パーサの結果を引数に取る加工用の関数。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:MapStruct>
public fn Memo
パーサをメモ化する。
- パラメータ
parser<Struct>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:MemoizeStruct>
- 補足
And、Choice、Lookahead等のバックトラックが発生するパーサに使用すると効果が大きい。
public fn Option
与えられたパーサが失敗した場合でもNotCollectStructを返す(成功となる)パーサ。
- パラメータ
parser<Struct>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:OptionStruct>
public fn Partial
パース結果を加工する関数を部分適用するためのパーサ。
- パラメータ
callback<MAXScriptFunction>加工用関数。
- パラメータ
callbackParameter<Any>加工用関数の引数。
- パラメータ
parser<Struct>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:PartialStruct>
- 補足
加工用関数は第一引数に加工用のパラメータ、第二引数にパース結果を取ること。
public fn Sequence
与えられたパーサの結果を配列として返すパーサ。
- パラメータ
parsers<Array[<Struct>]>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:SequenceStruct>
- 補足
パーサが一つでも失敗した場合はこのパーサも失敗する。
public fn Skip
与えられたパーサが失敗した場合は失敗し、成功した場合はNotCollectStructを返すパーサ。
- パラメータ
parser<Struct>
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:MapStruct>
public fn SOS
解析対象の文字列の先端に一致するパーサ。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:SOSStruct>
public fn Token
入力文字列に一致するパーサ。
- パラメータ
pattern<String>
- パラメータ
ignoreCase:<BooleanClass>大文字と小文字を区別しない場合は
true、区別する場合はfalse。既定値はtrue。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:TokenStruct>
public fn Uninstall
アンインストールする。
- 戻り値
<OkClass>
- 補足
静的メソッド。
public fn UpperAlphabet
大文字のアルファベットに一致するパーサ。
- パラメータ
debug:<BooleanClass>
- 戻り値
<Struct:CharStruct>
private fn arrayItemAt
配列から指定したインデックスの要素を取得する。
- パラメータ
index<Integer>-1を指定した場合は最後の要素を取得する。
- パラメータ
result<Array[<Any>]|Struct:FailureStruct>
- 戻り値
<Any|Struct:FailureStruct>resultが空配列または配列以外の場合、およびindexが範囲外の場合はFailureStructを返す。
private fn asNotCollect
結果を常にNotCollectStructにする。
- パラメータ
result<Any>
- 戻り値
<Struct:NotCollectStruct>
private fn cons
配列の2番目の要素を展開する。
- パラメータ
result<Array[<Any>]|Struct:FailureStruct>
- 戻り値
<Array[<Any>]|Struct:FailureStruct>
private fn flattenArray
多次元配列を一次元配列にする。
- パラメータ
depth<Integer>統合する次元の深さ。
-1で全ての次元を統合する。
- パラメータ
result<Array[<Any>]>
- パラメータ
asString:<BooleanClass>要素を文字列化する場合は
true、そのままにする場合はfalse。既定値はfalse。
- パラメータ
d:<Integer>現在の深さ。
- 戻り値
<Array[<Any>]>
- 補足
resultが配列以外の場合は何もしない。
private fn joinArray
配列の要素を全て文字列として連結する。
- パラメータ
separator<String>区切り文字。
- パラメータ
result<Array[<Any>]>
- 戻り値
<String>
- 補足
resultが配列以外の場合は何もしない。
private version
- プロパティ
<Array[<Integer>]>バージョン番号。メジャー、マイナー、パッチの順。
public fn StructName
- 戻り値
<Name>
public fn Dump
- パラメータ
indent:<String>
- パラメータ
out:<FileStream|StringStream|WindowStream>出力先。既定値は
listener。
- 戻り値
<OkClass>
public fn Equals
- パラメータ
obj<Any>
- 戻り値
<BooleanClass>
- 補足
大文字と小文字を区別する。
public fn GetVersion
- 戻り値
<Array[<Integer>]>