Delphi用コンポーネントです。さくらスクリプト仕様にのっとって書いたパーサーです。マルチバイト文字や、エスケープなどに厳密に対応しています。
(C)2001 naruto/CANO-Lab
ドキュメントはオンラインのみで提供しています。必要があればあわせて保存して置いてください。
たぶん、あなたが思っているよりも面倒くさいものです。
例えば、「\e」がスクリプトの途中にあったら最後に寄せる、という、一見単純そうな処理をやりたい場合、どんなコードが必要になるでしょう?
単純にVCLのStringReplaceを使っただけの置換では、「スクリプトの最後には\\eをつけましょう」というような、エスケープに対応できません。かといって「\\\e」とか「\\\\e」とか書いてくる人がいるかもしれませんので、正規表現ライブラリなどで頑張ってもできません。SJISのこと考慮せずに書いていると、「能e」というようなコードで間違えます。(能の2バイト目は円記号と同じコード)「能\e」とかあるかもしれません。また、「\_c[こんにちは\e]」など、スクウェアブラケットの内部ではタグを無視しないといけません。
まったく同様に「%selfname」を「さくら」に置換したい、という、これだけの作業をやりたい場合、単純な置換は間に合いません。
このパーサーコンポーネントでは、
これらの無茶苦茶なマークアップにもちゃんと正しく対応する、さくらスクリプトパーサーです。
将来のタグ拡張にも非常に柔軟な構造をしており、スクリプトのタグが増えたりするたびに新バージョンに入れ替える必要はありません。
さくらスクリプトを処理したいソフトウェアすべて。SSTPクライアント・SSTPサーバ・スクリプトエディタ・その他もろもろ。