0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ParserScript-Ver-1.0公開!

Last updated at Posted at 2024-10-15

現在、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に実装しようと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?