Factorに入門する(15) Parser algorithm

[ Factor プログラミング言語 ]

今回からしばらく、Factorのドキュメントの中からLanguage referenceを地道にみていきます。地を這うような内容が、当分続くことになると思います。飽きたら3Dオブジェクトをまわしたりしてみるかもしれません。

Conventionsは以前とりあげたので、今回はdocumentのなかから、syntax(文法)の記事をみていきましょう。 Factorには2種類のsyntaxがあって、それがdefinition syntaxとliteral syntaxですが、ここではliteral syntaxについてとりげられています。本日はまずparser algorithだけとりあげます。

Parser algorithm

FactorはForthの末裔ですので、基本は、"空白でくぎられたトークン"の集まりです。そして大文字小文字は区別されます。 パーサはトークンを読んで、それが数値なのか、ふつうのwordなのか、parsing wordなのかをみていきます。 パース結果はparse treeに追加されていきます。

1文字目がダブルクオーテーション(")のときは、その後に空白があいていなくてもparsing word " が実行され、文字列が読み込まれます。なるほど、これだけ特別扱いなんですね。それ以外の場合、通常のwordであればparse treeに追加され、parsing wordであれば実行されます。

以前parsing wordに挑戦して、 意外に奥が深くて負けましたが、 コンセプトは単純ですね。通常のwordはすぐには実行されず、parsing wordsはその場で実行される。Forthでいうimmediate wordに似ています。

parsing wordはその性質上どんな文法のものでも扱えますが、デフォルトのものはsyntaxボキャブラリにあります。

トラックバック

このエントリーのトラックバックURL:
http://www.skoji.jp/mtbin/mt-tb.cgi/1239

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)