現在、ParserScriptは非推奨です。
ParserScript最初のバージョン1.0を公開しました。
(非推奨)
この記事は開発中に投稿した記事の後、ParserScriptに追加した機能を紹介するので、開発中の時の記事をみていないときは
で、基本情報を見てください。
Ver-1.0で追加された機能
これから、ParserScriptの紹介されていない機能(予約語)を紹介していきます。
面倒くさいので一気に予約語を書いてその後に、それがどのような機能なのかを書きます。
・escape
・noescape
・vrecord
・varmatch
・varmatch?
・varnomatch?
・varbreak
・vpush
・varpush
・varvpush
・downpush
・memo
・pop
・change
・clear
・parseresult
・let
・varset
とまあ、こんな感じでたくさん追加されました。
次に、それぞれの予約語にどのような機能があるのかを書きます。
.prs
escape ' '
# 空白や、改行など長いコードを書かなくても特定の文字を先頭から消す
noescape ' '
# escapeで指定した文字を無効にする
vrecord ""
# recordとは違い、任意の値から使うことができる
varmatch s
# varmatchの後に変数を指定することで、変数の値を使ってマッチングを行う
varmatch? b
# varmatch?の後に変数を指定し、その変数の値が偽なら対応するendへとぶ
varnomatch? b
# varmatch?の逆
varbreak s s
# varbreakの後に型、変数の名前でその変数を削除できる
vpush 2 "a"
# recordやvrecordで作られたリストの上から任意の番地に値を挿入できる
varpush s
# varpushの後の変数の値を使ってreordとvrecordのリストの最後の要素に挿入する
varvpush 2 s
# varvpushの後のrecordとvrecordのリストの上から任意の番地に変数の値を挿入できる
downpush
# recordとvrecordのリストの一番最後の値を最後から二番目の値に挿入する
memo push "a"
# memoの後のコードを実行せずにスタックに積む
pop
# memoでスタックに積んだコードを取り出して実行する
change 1 true
# recordとvrecordのリストの上から任意の番地の文法がマッチしているかを記録するところを任意の値に変える
clear
# recordとvrecordのリストを空にする
parseresult
# recordとvrecordのリストの最後をparseresultが来た時点からマッチングする
let s str
# letの後に、型、名前を指定してその型の変数を作成する
varset s str "abc"
# varsetの後に、型、名前、値を指定してその型の変数に値を代入する
以上が、Ver-1.0が公開された時に追加された機能です。
終わりに
この記事を書いている途中で、vletとvarvsetを思いついたので、Ver-1.1に実装しようと思います。