トップページ > プログラム > 2015年04月22日 > eOWj6Ffd

書き込み順位&時間帯一覧

14 位/163 ID中時間01234567891011121314151617181920212223Total
書き込み数0010000000000000000001013



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
「コンパイラ・スクリプトエンジン」相談室16

書き込みレス一覧

「コンパイラ・スクリプトエンジン」相談室16
216 :デフォルトの名無しさん[sage]:2015/04/22(水) 02:22:50.19 ID:eOWj6Ffd
javaに近い構文の言語をつくろうとしてるんだけど、
ようやくchar配列に変換したソースから関数の外側を構文解析できた。

山括弧<>、文字列リテラル、コメントに気をつけつつ、
なんとか関数の中を無視してクラス・変数・関数の名前や型名を取得して
関数の中身にとりかかるところ。

関数の中身は丸括弧()が難関になりそう。
AAAA bbbb = ((HHHH)cccc.dddd.eeee(ffff.gggg(), jjjj)).iiii();
bbbb.kkkk = -10/(8-3)-9/-3
「コンパイラ・スクリプトエンジン」相談室16
218 :デフォルトの名無しさん[sage]:2015/04/22(水) 21:30:55.14 ID:eOWj6Ffd
>>217
最初はクラス名、メンバ変数、メンバ関数を全部調べてからじゃないと
関数の中身に取り掛かれないと思ってた。

でもクラス名・変数名・関数名に区別は不要で、記号をヒントに階層を分解して、
それから型名の存在の有無・整合性を調べるという風にフェーズを分けれそう。

でも()が演算の優先順位、型キャスト、メソッド...どれに使われているのか
区別できるかは不安。for文とかは最初に予約語が入るからやりやすそうだけど。

Person person = ((Factory)group.cache.getFactory(provider.getResource(), url)).create();
person.id = -10/(8-3)-9/-3;
「コンパイラ・スクリプトエンジン」相談室16
220 :デフォルトの名無しさん[sage]:2015/04/22(水) 23:28:51.38 ID:eOWj6Ffd
いけるか分からない。とりあえずやってみるってところ


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。