「コンパイラ・スクリプトエンジン」相談室13
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
50:デフォルトの名無しさん 09/04/28 23:31:19 そういえばこんなのが出るとか Flex & Bison - by J Levine (2009/8/31) http://www.amazon.co.jp/dp/0596155972 51:デフォルトの名無しさん 09/04/29 08:10:34 > 内容は>>46の一番下と同じなのだけど、絶版で値段が高騰しているのが問題かな。 うわわわ。絶版してたのか。 52:46=49 09/04/29 10:37:05 >>47 > yaccやbisonのサンプルを探してみても、 > 文書を解析するところまでで、 > その先を実際にどうやっているかの例がなかなか・・・。 > > 日本語の文書!! 日本語で書かれていて意味解析以降も 全部載っているドキュメントを探してきた。 http://ecs.kuis.kyoto-u.ac.jp/isle/le3b/siryo.ps Flexの解説 (GNU公式ドキュメントの日本語訳) もあった。 Flex入門 http://ascii.asciimw.jp/pb/bookmart/pdf/47561/4756130976.pdf 53:52の続き 09/04/29 10:41:59 読みやすいように、要点だけ説明しておこう。 まずは字句解析から。 まずはソースファイルを読み込み、字句解析にかける。 字句解析では文字列を切って、種類を表すタグを付ける。 (タグはenumなどの定数) 例えば、 int main(void) {return 0;} ならば、字句解析の結果は elem(INT, "int"); elem(ID, "main"); elem(PAREN_L, "("); elem(VOID, "void"); elem(PAREN_R, ")"); elem(BRACE_L, "{"); elem(RETURN, "return"); elem(INTLITERAL, "0"); elem(SEMICOLON, ";"); elem(BRACE_R, "}"); のようになる。 (elemはC++のクラスのつもり) 引数は左がenum定数で右は文字列ね。 一行を1つの構造体 (またはクラスやタプル) に入れると便利。 (Flexだと種類と文字列を別々に取得するんだったかな?)
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4867日前に更新/260 KB
担当:undef