まあ...私はtintin-scriptを含むファイルを持っています。今では、すべてのアクションと置換を取得して、Ruby を使用して Web サイトで適切に並べ替えられていることを示すことができました。これにより、概要を把握するのに役立ちます。
TINTINスクリプトの例
#substitution {You tell {([a-zA-Z,\-\ ]*)}, %*$}
{<279>[<269> $sysdate[1]<279>, <269>$systime<279> |<219> Tell <279>] <269>to <219>%2<279> : <219>%3}
{4}
#substitution {{([a-zA-Z,\-\ ]*)} tells you, %*$}
{<279>[<269> $sysdate[1]<279>, <269>$systime<279> |<119> Tell <279>] <269>from <119>%2<279> : <119>%3}
{2}
#action {Your muscles suddenly relax, and your nimbleness is gone.}
{
#if {$sw_keepaon}
{
aon;
};
} {5}
#action {xxxxx}
{
#if {$sw_keepfamiliar}
{
familiar $familiar;
};
} {5}
私のRubyアプリでそれらを取得するには、スクリプトファイルを変数の「入力」に読み込み、次のパターンを使用して「入力」をスキャンします
pattern = /(?<braces>{([^{}]|\g<braces>)*}){0}^#(?<type>action|substitution)\s*(?<b1>\g<braces>)\s*(?<b2>\g<braces>)\s*(?<b3>\g<braces>)/im
input = ""
File.open("/home/igambin/lmud/lmud.tt") { |file| input = file.read }
input.scan(pattern) { |prio, type, pattern, code|
## here i usually create objects, but for simplicity only output now
puts "Type : #{type}"
puts "Pattern : #{pattern}"
puts "Priority: #{prio}"
puts "Code :\n#{code}"
puts
}
ここで、私の考えは、netbeans プラットフォームを使用してモジュールを作成し、概要を維持するだけでなく、tintin スクリプト ファイルの編集を支援することでした。そのため、エディタ ウィンドウでファイルを開くには、tintin ファイルを解析し、ファイルからすべての「アクション」と「置換」を取得して eTable に表示する必要があります。修正ウィンドウ。
私はモジュールをセットアップし、これまでのところすべての準備ができています. 名前付きグループのキャプチャのようで、特にこれらのグループの再帰的なアプリケーションは Java ではサポートされていません。それがなければ、実用的な解決策を見つけることができないようです...
ルビーの模様がまた…
pattern = /(?<braces>{([^{}]|\g<braces>)*}){0}^#(?<type>action|substitution)\s*(?<b1>\g<braces>)\s*(?<b2>\g<braces>)\s*(?<b3>\g<braces>)/im
同じに一致するJavaパターンを作成するのを手伝ってくれる人はいますか?
ヒント/ヒント/アイデア、特に解決策または (解決策に近いコメント) について、事前に感謝します!