汎用的なパーサー(?)や決まった手順があるんじゃないかと思っているのですが、知識不足で調べきれませんでした。
具体的にはZoho Creatorというサービスで生成されるコードです。
http://www.zoho.jp/service/zoho-creator.html
コメント欄にソースの先頭付近を書いておきます。
言語の知識も不足していて、何にもっとも似ているのか判断できません。
ライブラリなりヒントなり教えていただけると助かります。
できれば.net、もしくはPerlで処理できるのが望ましいです。
抽象構文木(AST:abstruct syntax tree)を構築して、それを使って処理をするということになると思います。
抽象構文木というのはノードが演算子やリテラル、変数名になるようなツリー状のデータ構造です。
ASTを生成する為には以下の手順が必要になります。
ASTを生成して終わりってことはほとんど無いので、汎用的なものは無いようです。
通常はyaccなどの汎用のパーサジェネレータを使ってパーサを作ることになります。
ちなみにパーサジェネレータはレキサを生成してくれません。これは結構罠です。
.NETで使えるパーサジェネレータにはjoyというものがあるようです。
http://diary.lightnovels.net/mass/20030211.html#p06
PythonでよければSparkモジュールを使うのがGenericASTBuilderクラスがもあって色々楽そうです。
魅力的なPython: Sparkモジュールを使った構文解析
http://www.ibm.com/developerworks/jp/linux/library/l-spark/index...
いろいろ用語を書いていただいたので、調査が楽になりました。ありがとうございます。
クラスとしてすでに存在してプロパティをセットしていくことで構文解析できるほど汎用化するのは無理っぽいですね。
joyはすぐ使えそうなので、ヒマをみて触ってみることにします。
なるほどー。参考になります。
……が、これを使いこなして正しくパースするには1週間ぐらいかかるか。
ガリガリ書いたほうが早いかもなあ。
今後のために勉強するかもですが、もし他に簡単そうなネタをご存知の方がいましたら引き続き回答募集中です!