VB6ソースコードの字句解析するCOMコンポーネント作ってgithubにアップした
以下のようなコードで字句解析結果を取得していろいろできる。
set vblex = CreateObject("VBLex.Tokenizer") vblex.SourceText = WScript.StdIn.ReadAll for each token in vblex.Tokens WScript.Echo token.Type & "::" & token.Text next
ためしに、このコード自身を字句解析してみた。
C:\cygwin\home\snaka\work\lang\wsh\vblex>cscript linecount.vbs < linecount.vbs Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 6::set 9::vblex 3::= 9::CreateObject 4::( 5::VBLex.Tokenizer 4::) 2:: 9::vblex 4::. 9::SourceText 3::= 9::WScript 4::. 9::StdIn 4::. 9::ReadAll 2:: 6::for 6::each 9::token 6::in 9::vblex 4::. 9::Tokens 2:: 9::WScript 4::. 9::Echo 9::token 4::. 6::Type 3::& 5:::: 3::& 9::token 4::. 9::Text 2:: 6::next 2:: 2::
TokenのTypeが数字じゃわかりづらいので、もうちょっとブラッシュアップが必要かな。