ASP⇒JSP変換

ふぇ~。しかもASP.NETでない初代のやつ。PGさんに書き直してもらうのが現実的というのは百も承知。しかしそれでは芸がない。変換ツールもあるみたいだけど、風変わりなライセンスなので手が出ない。それにサポートが望めそうにない。じゃぁ作る?方法は2つ。

  • (ASPの)文法規則にそってASPファイルを字句解析・構文解析してJSPへ変換する。
  • ASPに対応するJSPのコードを1:1のイメージで出力する。

前者は正統的かつ汎用的だけどハードルが高い。後者は変換対象のASPを分析して、使用されているコーディングパーンを洗い出せれば行けそうな感じ。たとえばASP

SUB hogehoge()

といったのが来たら

public void hogehoge()

を出力する、といった感じ。PGさんの考え(変換ルールを)をコンバータ化したもの。アドホック的なアプローチ。

しかしどちらにしても厄介なのがVBScriptの変数の扱い。

  • VBScriptでは変数の宣言は必須でない
  • VBScriptの変数はバリアント型だけ

ふつーのPGさんなら

Option Explicit

を宣言して、未定義変数は実行時エラーになるようにしてるだろうけど、そうしない奴もいる。だから

  • 知らない変数が出てきたら宣言を追加
  • 代入演算子が出てきたとき、右辺の型を宣言に追加する

必要がありそう。つーか、動的に型が変わる場合はどうするんだ?うーん、面倒だ!