mxsdoc

ParserCombinator.ms

依存

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>
補足

separatorSkipを使用すると失敗するので注意すること。

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>
補足

AndChoiceLookahead等のバックトラックが発生するパーサに使用すると効果が大きい。

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>]>