yacc & lex

このエントリーをはてなブックマークに追加
1SystemX
yaccとは、"yet another compiler-compiler"(さらにもう一つのコンパイラ-コンパイラ)という意味で、
yaccの開発者である、スティーヴ・ジョンソン氏が当時(1972年頃)に存在していた同種のプログラムの多さを
皮肉った言葉に由来している。yaccはその中で生き残ったごく少数のうちの一つである。

lexはyaccがパーサーを作成するのと同様の方法で字句解析ルーチンを作る。即ち、自分の言語の字句規則の
仕様を正規表現と、その正規表現に一致する文字列が見つかった時に、実行すべきCプログラムにより記述すればよい。

lexとyaccは、我々が既に書いてきた字句解析ルーチンと同一のメカニズムで、共同して働く。
>>1
えっと・・・おめでとう?
3えんぢにあ:02/09/12 12:39
flex & bison ですが、何か?
オライリー本を買ったのがそんなに嬉しかった、ってことかな
>>4
引用としての体をなしてないので著作権に抵触してますな。>>1は。
通報してくる。
6SystemX:02/09/12 13:01
>>2
2get荒らしなのか、俺に対する励ましなのか分からんのだが、、、

とにかく、ココはyacc&lexに関するスレという事でヨロシク!!
7SystemX:02/09/12 13:04
>>5
なっ、何をもってそのような事が、、、
ここは、自信のないスレ、なのか……?
                    \
                      \  新スレおめでとうございまぁす☆
                       \
                         \            /|   。.
                       ,,-'―\       _,/ノ   . .
        ___,,-―――='' ̄ ̄    _,,-'―=''' ̄_,/|  o    *
_,,-―=''' ̄      ___,,-―――='' ̄ __,-―='' ̄   / .   . .
   _,,-―=''' ̄        _,,-―='' ̄ ヽ       /  +
 ̄ ̄        _,,-―=''' ̄          \    /  . . .  .
      ,,-='' ̄                   ヽ  /    .  。. ★  ☆
    ,,,-''        ノ              ノ   ヽ/     。.    .
-―'' ̄        (;;;)    |___,/  (;;;)   |   . ☆  +
.  |        ..::::::::::::...       |     /    ..:::::::... | + .   . .
   |                    |     /        |    . .   ☆
  ヽ    γ´~⌒ヽ.        |   /          /☆ . *  +.  .
――ヽ   /      ヽ      |  /         /⌒ヽ、.  .  . .
    \/       |       |_/          /    ヽ +★
      /         |             /     ノ *  ☆










































 
12名無しさん@お腹いっぱい。:02/09/12 15:28
ヤッケ?
>>12
ユッケ食いたいなぁ・・・。
14棄教者 ◆witdLTi2 :02/09/12 16:02
lex どんな時に使ってる?
みゆりんってだれ?
17えんぢにあ:02/09/13 10:27
>>15
使わない。
業務システムのコンサル SE だから。
# いまは、ぷー太郎だけど。
18名無しさん@お腹いっぱい。:02/09/13 22:25
率直な話、プログラマじゃなきゃ使い道ないとおもうなぁ。
ふつーの文字列処理で使えるものなのか?
一般人の使うような使い方があったらだれか教えて
>>18
個人的なプチコンパイラつくって悦に浸るとき。
意外と便利だが、最近はXMLパーサを利用してしまう……
>>18
lex は、正規表現の複雑なことをするには、sed より便利だよ。
覚えとくと非常に便利。
22えんぢにあ:02/09/14 07:42
>>21
lex が必要になることがあまりないな。
たいていは sed で済んじゃうし。

そういえば SJIS to EBIDIK 変換の前処理を
C で書いたけど lex 使えば楽だったかも。
23棄教者 ◆witdLTi2 :02/09/14 16:05
>>21
でも Perl でも十分。
lex が必要になったことは滅多にない。
個人レベルでパーサ作る時はracc使うなあ…
正直、lex&yaccは面倒すぎ。
俺、yacc は使うけど lex の部分は手で書いちゃう。
再帰降下型パーサーで、ちょちょいと書けるような
簡単な文法だと、yacc も使わずに、すべて手で書い
ちゃう。
これって、ひょっとして old type よりもさらに
older ってことですか? 欝だ死脳
いや、yacc も lex も使わず手で書いてしまうってのはよくある。
何でいまだにほとんどのUnixに標準添付なのかと。








いやツールのmakeんときに必要なんだろうけどさ
28名無しさん@お腹いっぱい。:02/09/19 18:02
まだだ!まだおわらんよ!
>>27
perlのコンパイルの時も使います
29名無しさん@Emacs:02/09/20 02:37
yacc & lex 本で良いのどれ? ってもう買っちゃったけど。
C のインタープリタ作りたい。>>0
SymphonyXに見えた
>>30
あのウソコバソドか
32萌え萌え ◆MOE73MOE :02/09/20 08:42
プログラム板にも何冊か推薦図書がありましたが、ぼくが参考にしたのは
yacc/lex プログラムジェネレータ on UNIX 五月女健治 テクノプレス
コンパイラ構成法 原田賢一 共立出版

他にも「コンパイラ」に関する本は何冊かありましたが、むしろ
yacc/lex の使い方よりもコンパイラの理論が中心になっているので、
初心者には取っつきにくいかもしれません。
33棄教者 ◆KIKYO7cg :02/09/20 08:43
>>32ハンドル間違えた。
34棄教者 ◆KIKYO7cg :02/09/20 09:54
http://www.linux.or.jp/JF/workshop/JF-in-Progress.html
の翻訳進捗状況一覧眺めていたら
Lex-YACC-HOWTO 未訳だってさ。
2CHer で訳さない?
>>29
俺は「yaccによるCコンパイラプログラミング」って本が激しくよかったんですが
(lexは扱ってないけど)絶版になったと聞きました。
>>萌え萌え
あぁ! それ買ったんですよ。

>>35
そのものズバリなタイトルですね。読みたゐな♪
37仕様書無しさん:02/09/21 01:20
lex&yacc入門なら

「UNIXプログラミング環境」 アスキー

に、素晴らしい章がある。本気でやってみたいんなら、
この章を読むためだけに買ってもいいんじゃないかと思う。
これを読んだ後で、ほかの本を買えばいいんじゃないかな。

でも、この本、まだ売ってんのかな?
>>37
それってカーニハンのですか? 本屋で見かけたような・・・。
見付けたらゲットしてみます。
>>37
その章だけ学校の図書館でコピーしたよ、昔。
4035:02/09/22 14:20
>>36
本のほうは入手困難ぽ。俺もだいぶ苦労しますた。

Cマガの99年10月号についてるCDにキモの部分が入ってるそうなんで
(http://www.context.co.jp/~cond/books/ ご参照)
これをなんとか入手するのが早いかもです。

x86向けコードを吐き出す (最適化はあんまりやってないけど)
実物のCコンパイラを題材として分かりやすく説明してくれてるいい本でした。

>>37
残念ながらそっちも絶版ぽ

本気で言語処理系学ぶならやっぱドラゴンブックに挑むのがいいんかねえ。
読み方についてなのだが、以下の形でよいのだろうか?

lex ......... レックス
yacc .... ヤック
flex ....... フレックス
bison ... バイソン
lex レフ
yacc ヤッシッシー
flex フレフ
bison ビソン
れきしかるあならいざじぇねれーた
いぇっとあなざーこんぱいらこんぱいら
ふぁーすとれきしかるあならいざじぇねれーた
のうし
炒飯
餃子
レバニラ炒め
天津飯
>>41
いいんじゃネーノ?
UNIXに関する言葉のカタカナ読みスレッド
http://pc.2ch.net/test/read.cgi/unix/979465046/
47名無しさん@お腹いっぱい。:02/11/15 17:13
誰か、%type に複数の項目をカンマで区切って並べる書き方の載っている
マニュアルか何かを知りませんか?

bison-1.75 がタコで、ルールの末尾のセミコロンが絶対必要になったのと
複数項目をカンマで区切って並べる書き方を認めなくなったおかげで、
世間に存在する大量の yacc コードがコンパイルできなくなった模様。
作者は「こりゃ仕様だセミコロンつけないヤシが悪いんだゴルァ」と
MLでおっしゃってます。

直してもらおうと思って Single Unix Specification ではどうなって
いるか調べてみたんだけど、ダメらしい。yaccによるyaccの文法定義は
PSD:15の孫引きなんで、世間のマニュアルはみんな右に倣えの予感。

V7のyaccをコンパイルして試してみたらカンマでもちゃんと通ります。
48名無しさん@お腹いっぱい。:02/11/15 18:29
>>41
覚えたてのころは、ごっちゃになって
レック
ヤックス
とか言ってた
49山崎渉:03/01/15 13:21
(^^)
50ファンキー大山:03/02/15 19:26
やっくすのせりかた
52山崎渉:03/03/13 17:54
(^^)
53山崎渉:03/04/17 12:21
(^^)
54あぼーん:あぼーん
あぼーん
55名無しさん@お腹いっぱい。:03/05/21 16:32
flex でルール部を C の変数で動的に生成することって出来ないですかね?
56クンクン(葬式):03/05/21 17:03
>>55
何にでも当てはまるようなオマンコガバガバのルールに対して、
切り出したトークンの値に応じて C の内部で場合分けをして逝くのはどうかしら。。。

クククのクーソ。。。
57あぼーん:あぼーん
あぼーん
58名無しさん@お腹いっぱい。:03/06/02 13:51
自己晒しage

>>55
flexの内部テーブルをいじればいけるんじゃないすか。
そこまでするなら自分で字句解析したほうが楽な気もします。
59名無しさん@お腹いっぱい。:03/06/08 09:39
yacc -d とか bison -y が通らないものは
"byacc"つかうとたいてい通る。

しかしナニをするものなのかとかは
全くシラン。
60あぼーん:あぼーん
あぼーん
61名無しさん@お腹いっぱい。:03/07/20 01:27
盛り上がんないなあ

>>34
ほらよ
http://www.linux.or.jp/JF/JFdocs/Lex-YACC-HOWTO.txt
>>55

ルールを出力、 *.l を作成

flex を実行、 *.c を作成

コンパイル

yylex() を dlopen()

とか?

lex って状態機械作るんですよね。単にテーブルに要素追加すればオケという
ほど簡単でもないと思うんだけど? >>58
63名無しさん@お腹いっぱい。:03/08/12 01:11
58っす

>>62
そっか、そうだな。

しかしlex使うシチュエーションって少ねえなあ。
64あぼーん:あぼーん
あぼーん
65あぼーん:あぼーん
あぼーん
設定ファイルの書式もなんだかんだでXMLになりつつあるしなあ。
>>63
正規表現ライブラリの代わりとか
補修
69名無しさん@お腹いっぱい。:04/05/03 13:18
raccのこととかも語ってちょ。
70名無しさん@お腹いっぱい。:04/05/11 01:13
アドベンチャーゲームなど用にスクリプトプログラムを作成したいのですが、
そのような目的にyaccやlexって向いていますか?

yaccやlexについて調べようとおもったのですが、見つけることができませんでした。

開発環境はWindowsですので、bisonとflexというのを入れてみました。

>>70
スクリプトプログラムを作成するインタプリタプログラムを作るには
むいてるかもしれない。日本語周りは要注意ね。

Unix板的には
「既存のものを使え」
「既存のもので満足できなければ改造しろ」
と思う。車輪の再発明はもっとも愚かだ
72名無しさん@お腹いっぱい。:04/06/22 22:14
Lexで標準入力以外(例えば文字列)を取得したい場合、下記のような定義をすると思うんですが、

#undef YY_INPUT
#define YY_INPUT(buf, result, max_size) (result = my_yyinput(buf, max_size))

この場合、my_yyinput()はどういうタイミングで呼ばれるのでしょうか?
また、bufの値はどこで設定すればよいのでしょうか?
>>71
私は車輪を再発明して理解しろ。という方が好きです
学生やアマチュアはそれで良いんじゃないの
75名無しさん@Vim%Chalice:05/01/30 03:09:21
 
>>71
お前は愚かだ
車輪の再発明は勉強にはなるけど学生のうちに済ませとけ
自分らは普段なにやってるの?車輪磨き?
UNIXプログラミング環境

在庫があるところにはあるらしい
www.boople.com/servlet/AFsearch?&isc=&idn=321429&iqm=2
81名無しさん@お腹いっぱい。:2006/01/18(水) 02:07:16
からあげ うまうま だよもん
82名無しさん@お腹いっぱい。:2006/04/03(月) 12:15:00
flex のyy_push_state() って、FlexLexer ではprotected なのですが
ってことは、.y 側のルールでyy_push_state() を使うのはunsupported でつか?
83名無しさん@お腹いっぱい。:2006/07/05(水) 02:03:44
初めて lex を使ってみました。なんか面白いのねん。
84「なぜ敢えて yyなの?」:2006/07/10(月) 19:35:15
lex は yy.lex.c吐くわ、yyナンチャラいう変数/関数をもってるわ
なぜそこで yy? あんた lexさんでしょう?と思ってしまうのですが

yyがつくものは yaccへの引渡しを想定していますよという暗示なのん?
なんつ−か、
歴史的な経緯とかyacc/lex開発時のエピソ−ドがあるようなら教えて下しい
もしかして lex is Yet another Yacc だからとかいう話しなのかしらん?

という質問はくだ質逝ったほうが吉?
8584:2006/07/11(火) 13:01:49
<< yy.lex.c
>> lex.yy.c 誤記ですた
86名無しさん@お腹いっぱい。:2006/07/27(木) 18:31:21
bisonでコンパイルするときに使う記号テーブルって何で必要なんだ?
誰か教えてくれorz

ぐぐっても見つかんない・・・
87名無しさん@お腹いっぱい。:2006/07/27(木) 18:50:10
>>84
sourceの行番号の受け渡しとか、
協調しないといけないものがあるから。
--stdoutで切り替えられるから問題ないでしょ。
yyin, yyoutとか。

>>86
えーと、'+'とか'-'とかですめばいいけど、
"if"とか"then"とかをtokenとして扱いたいから。
88名無しさん@お腹いっぱい。:2006/07/27(木) 23:20:24
>>86
そんなレベルで bison 使うの?
8986:2006/07/28(金) 00:59:27
使わないといけないらしいです。
http://www.kuzbass.ru/docs/unixprogenv/src/hoc4/
これでy=1+5*yを計算したときにどうなるかって言う課題が出て
プリントを復習中ですけど、明日までに間に合いそうに無いので
困り果ててますorz

constpush:1
constpush:5
varpush:x
eval
mul
add
varpush:y
assign
pop
STOP
って感じでいいのかなぁ・・・。
90名無しさん@お腹いっぱい。:2006/07/28(金) 22:52:12
なんじゃそりゃ
91名無しさん@お腹いっぱい。:2007/06/28(木) 02:50:14
yyac 使って,define に相当するようなコマンドをもつ
コンパイラ or インタプリタを作るには
どうしたらいいのでしょうか.

参考文献を教えて下さると有難いです.

それとも不可能ですか?
92名無しさん@お腹いっぱい。:2007/06/28(木) 02:59:57
BNFで書けるなら(つまり文脈自由文法なら)yaccで記述出来るし
BNFで書けないならyaccで記述出来ない

そのdefineをBNFで書いて見る事をお奨めする
93名無しさん@お腹いっぱい。:2007/06/30(土) 14:03:07
ああ、ひょっとして91が作りたかったのは
defineじゃなくてインタプリタの事じゃないだろうか?
もしそうならyaccでは不可能。
だって、yaccはCompiler Compilerだから。
94名無しさん@お腹いっぱい。:2007/06/30(土) 15:08:19
(´・ω・`)
95名無しさん@お腹いっぱい。:2007/06/30(土) 20:15:09
96名無しさん@お腹いっぱい。:2007/07/01(日) 02:27:18
97名無しさん@お腹いっぱい。:2007/07/01(日) 22:01:53
>>93
マクロ定義ができるコンパイラが作りたかったんじゃね?
98名無しさん@お腹いっぱい。:2007/07/02(月) 00:15:22
(´・ω・`)
99名無しさん@お腹いっぱい。:2007/07/07(土) 17:12:42
関数定義ができるコンパイラを yacc で記述するにはどうしたらいいですか?
100名無しさん@お腹いっぱい。:2007/07/08(日) 10:09:07
100ゲト!
普通が一番だよ
101WNSyrttCnfyxM:2007/07/19(木) 15:40:27
rAwIsK name is Kostya.My nick is Zold . I want to find friends .ICQ 324600825
102名無しさん@お腹いっぱい。:2007/07/26(木) 17:55:32
antlr
103名無しさん@お腹いっぱい。:2008/08/30(土) 23:01:26
BS1にチョムスキー出てた
104名無しさん@お腹いっぱい。:2008/10/30(木) 23:58:54
c言語でコメント/*から*/を字句解析できないようにさせるには、
規則部にどういう正規表現をすればいいですか?

/*
・・・・・・
*/
となっています。
105名無しさん@お腹いっぱい。:2008/10/31(金) 00:52:06
lex?

flexのFAQに、
How can I match C-style comments?
ってのがあるよ。
106名無しさん@お腹いっぱい。:2008/10/31(金) 12:09:51
flex だったらそれでいいね。

一般的には、
非欲張り型量指定子 *? が使えるなら /\*.*?\*/ でおk

使えない場合は少々厄介で、
/\*([^*]|\*+[^/*])*\*+/

詳説正規表現の第二版だと 6.6.8.3 にある。
107名無しさん@お腹いっぱい。:2008/11/01(土) 00:04:56
>>105,106
どうもありがとうございました。
大変恐縮なんですが規則部に入れるバージョンで教えてもらえないですか?
"/*"
から始まると思いますが・・・
108名無しさん@お腹いっぱい。:2008/11/01(土) 00:35:06
>>105,106
lex用に直してコンパイルしましたらできました。
"/*"+[^/*]*+"*/
また教えて下さい。
109名無しさん@お腹いっぱい。:2008/11/01(土) 01:56:53
ファイルからプログラムを読み込ませてそのプログラムに出てくる演算子とか
識別子の数を一番下に表示させるようにするにはどうしたらいいですか?
110名無しさん@お腹いっぱい。:2008/11/01(土) 09:43:16
パーズしろ。
111名無しさん@お腹いっぱい。:2008/11/01(土) 16:25:17
C言語のコメントってプリプロセッサが空白に置換するものだよ。
112名無しさん@お腹いっぱい。:2008/11/02(日) 11:08:35
サーバの役割のひとつに
クライアントからの電文をプロトコルにしたがって解析して、処理し、返答を
返すという役割があるかと思います。

パーサジェネレータをつかって、簡単に上記のような枠組みを
実装するようなことはできないでしょうか。

インタプリタをパーサジェネレータを使って実装するような流れはあるのに、
drubyやerlang、アクターモデルなどの実装方法とパーサジェネレータが
なぜか結び付けられていないのが不思議に思われます。
113名無しさん@お腹いっぱい。:2008/11/02(日) 11:42:33
>>112
思いて学ばざれば則ち殆うし。
114名無しさん@お腹いっぱい。:2008/11/02(日) 12:25:37
>>112
つ ASN.1 ←>>112の言う方向の最後の試み
つ object serialization ←もうそれはOOの方でやっちゃいますわ
115名無しさん@お腹いっぱい。:2008/11/02(日) 12:39:46
パーサジェネレータだけ知ってて状態機械知らないの?
116名無しさん@お腹いっぱい。:2008/11/02(日) 17:01:54
>>114
CORBAキター
117名無しさん@お腹いっぱい。:2008/11/02(日) 20:36:42
本格的な構文解析が必要な通信プロトコルを設計するのがそもそも間違いですから
118名無しさん@お腹いっぱい。:2008/11/05(水) 21:20:53
>>109
おまえ信大の学生だろ。それは簡単だよ。 
コメントを読み飛ばすのは108を書けばOK
119名無しさん@お腹いっぱい。:2008/11/06(木) 17:46:14
学生か
図書館にyaccの解説本の1冊ぐらいあるだろ
120名無しさん@お腹いっぱい。:2008/11/07(金) 22:30:33
>>112
昔 Webアプリのプロトタイプを開発していた時に
画面遷移処理を yacc で直接的に実装した事があるよ。
入力トークンをクライアントからの要求電文に、
状態を画面(HTML)に対応させた。
Mosaic と CERN httpd の時代。

  状態1: <要求a> { 要求処理と<応答x>の返信 } 状態2
     | <要求b> { 要求処理と<応答y>の返信 } 状態3
     ;

できないのか?とか不思議?と思うのなら、自分で試すのが一番。
できれば Estelle あたりを参考に専用の言語を設計し、
Stateパターンのコードを生成する処理系を実装してみてもいい。

  from 状態1
   when <要求a> to 状態2 action 要求処理と<応答x>の返信 end;
   when <要求b> to 状態3 action 要求処理と<応答x>の返信 end;

そして、これらパーサジェネレータ志向アプローチの利点と欠点は何か、
今、なぜ普及していないのか(or これから普及していくのか)を考えよう。
121名無しさん@お腹いっぱい。:2009/08/05(水) 16:46:56
cc y.tab.c -ll -o abc
Undefined symbols:
"_yylex", referenced from:
_yyparse in ccMGRLwg.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

エラーが取れない…
lexはなんとかいけたのにyaccはさっぱりだ
122名無しさん@お腹いっぱい。:2009/08/05(水) 17:03:07
_yylexがない、っていうんだから、yylex()を定義すればいいんじゃないの?
123名無しさん@お腹いっぱい。:2009/08/05(水) 17:27:41
なんとか121はこえたのでパースエラーと戦ってくる
>>122ありがとう
124名無しさん@お腹いっぱい。:2010/11/11(木) 15:15:36
Cのラベルみたいなもの

任意の文字列 最後に特殊文字(:とか)

はlex側でなくてyacc側で認識させるものなの?
125名無しさん@お腹いっぱい。:2010/11/11(木) 15:20:20
labelname ':'

とyaccで扱うのが普通じゃないか?
126名無しさん@お腹いっぱい。:2010/11/11(木) 17:01:03
ケースバイケースだと思うけど。

C 言語の場合、
a ? b : c;
の一部という場合があるので、<識別子> ":" を、lex で無条件に <ラベル> にするわけにはいかない。
127名無しさん@お腹いっぱい。:2010/11/17(水) 11:36:58
>>91
>>93

いやyacc, lexを使ってインタープリターは作れる。

GUIのテストをするための、カーソル移動、マウスクリックの
シミュレートをするプログラムを作ったことがあり、
インタラクティブに画面上の移動、パスの記録などを
できるようにしたことがある。

マニュアルをよく読めば見当がつくはず。yylexだっけ、インプットストリームの
切り替え部分に気をつければずっと読み込みをしながら、
一行コマンドラインの処理をしつつ、エラーの処理もyaccで行なって
インタープリターはつくれますよ。
(あ、一行でコマンドが終わるとするとかなり楽になる。
セミコロンみたいな シンボルが来るまで終わらないというのはちょっと
うれしくない。一行でコマンドが終わって、どうしても必要なら行末の
バックスラッシュで継続行とかするのがよい。)

インタープリターで対話的に作ったスクリプトを、再度編集しなおして
標準入力から放り込めば、GUIプログラムのパッケージの
テストができるというものでした。
128名無しさん@お腹いっぱい。:2010/11/30(火) 15:31:10
BNFCもいいな
129名無しさん@お腹いっぱい。:2010/12/10(金) 10:56:06
命令文2つを1つに変換したい

statmnt1 argX argY
statmnt2 argY



statmntA argX argY

にしたい。
argYが一致しない場合は
statmnt1  → statmntA2
statmnt2 → statmntB

にしたい。しかしうまい書き方が思いつかない
130 忍法帖【Lv=40,xxxPT】(3+0:8) 【34.6m】 電脳プリオン ◆3YKmpu7JR7Ic :2012/11/10(土) 22:30:58.44 BE:243245838-PLT(12079)
スレの趣旨がわからん
131名無しさん@お腹いっぱい。:2013/06/01(土) 16:18:40.79
質問です。
http://www.w3.org/TR/CSS21/grammar.html
このページでYACCの文法が載ってますが、拡張されているのでそのまま
使えません。この中で、

expr
: term [ operator? term ]*

はどうやってYACC文法で書けばいいでしょうか?
132名無しさん@お腹いっぱい。:2013/06/01(土) 19:22:48.72
一般にA*は、
X =
X = A | X
A?は、
X =
X = A
と定義したXで置き換えられる。
133名無しさん@お腹いっぱい。:2013/06/01(土) 22:32:34.47
その後>>132のいうように分割して定義する事がわかったので、そうして
定義していますが、複雑になるとかなり分割数が増えるので面倒ですね…
134名無しさん@お腹いっぱい。:2013/06/02(日) 09:21:11.71
めんどうだから拡張されてるんじゃないの。
135名無しさん@お腹いっぱい。:2013/06/02(日) 14:59:49.67
http://www.w3.org/TR/CSS21/grammar.html
このYACC文法がそのまま入力出来るツールがあってほしいね。
136名無しさん@お腹いっぱい。:2013/06/03(月) 01:08:35.25
文法は違うけど、
parsec辺りは拡張BNFがOKで、
自然な記述でアクションも定義できる。
137名無しさん@お腹いっぱい。:2013/06/04(火) 19:07:57.43
>>135
> http://www.w3.org/TR/CSS21/grammar.html
ラッパ作りゃいいんじゃね?
138名無しさん@お腹いっぱい。
コンパイラコンパイラのコンパイラコンパイラになるのか?