ugnagブログ

たいした内容はありません。思いつきで書いているだけ。
開発日記がメインかな。

<< 最近多い検索 | main | パースの方法(案) >>

パースで難しいところ

コードパーサーの解析エンジンで難しいのは2つある。
1つ目は、構造の解析。

コード行とコード名までは、それほど難しくない。
問題はタイトル部分とコメントとフォルダー名の関連だ。


フォルダー名と言ったのは次のようなもの。


1人目

HP最大
00000000 00000000
MP最大
00000000 00000000
力最大
00000000 00000000


これの「1人目」の部分をフォルダー名と呼んだ。
今度のバージョンでは、この部分はフォルダーにするつもりでいるためだ。


困るのは、この部分がタイトル名なのかフォルダー名なのか判断できないことだ。
今の例では「1人目」という言葉でフォルダーだと判断できる。
従って、プログラムでも「x人目」や「主人公」だったらフォルダーと解釈することも可能だ。

しかし、次のような場合が困る。

ほげほげ
HP最大
00000000 00000000
MP最大
00000000 00000000
力最大
00000000 00000000

これだったら絶対にわからない。


そこで、タイトル部分は人間に判断してもらおうと思う。


まだコメントとのからみがある。


3人目

HP最大
00000000 00000000
MP最大
00000000 00000000
力最大
00000000 00000000

ほにゃらか、ほげほげ

敵が出現しない
00000000 00000000
所持金最大
00000000 00000000


さて、この「ほにゃらか、ほげほげ」は「3人目」のコメントなのか、次以降のフォルダーなのか、どっちだろうか?

これはわからない。

「ほにゃらか、ほげほげ」ではなく、きちんとしたものなら文脈でわかるかもしれないが。
ということは、逆に言えば文脈でしか判断つかないということだ。

もし、

3人目

HP最大
00000000 00000000
MP最大
00000000 00000000
力最大
00000000 00000000
ほにゃらか、ほげほげ

敵が出現しない
00000000 00000000
所持金最大
00000000 00000000


だったら、コメントとして解釈できるが、先ほどのように前後共に空行だと難しい。

やはり、これも人間に判断してもらうしかないかもしれない。



2つ目の問題は、コード行に含まれる英小文字の扱いだ。
一般的には、コードは英大文字で記述し、変数は英小文字で記述するのが標準だ。
しかし最近、英大文字と英小文字が混在される記述が増えてきている。

現在のバージョンでは、変数を含まない1行内に英大文字と英小文字と混在して記述することはないであろうと判断し、
1文字でも英大文字があれば、その行の英小文字は変数だという解釈をしている。

ところが、とうとう見つけてしまった。
混在する記述を。。。


これも最終的には人間が判断するしかないかもしれない。

まあ、ほとんどの記述は、現行の解釈でうまくいくだろうが。。。
プログラム・開発(ParCodeEditor) | comments (0) | -

Comments

Comment Form

本文に書いて下さい
本文にh抜きで書いて下さい