2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

yacc & lex

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

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

lexとyaccは、我々が既に書いてきた字句解析ルーチンと同一のメカニズムで、共同して働く。

2 :名無しさん@お腹いっぱい。:02/09/12 12:35
>>1
えっと・・・おめでとう?

3 :えんぢにあ:02/09/12 12:39
flex & bison ですが、何か?

4 :名無しさん@お腹いっぱい。:02/09/12 12:51
オライリー本を買ったのがそんなに嬉しかった、ってことかな

5 :名無しさん@お腹いっぱい。:02/09/12 12:56
>>4
引用としての体をなしてないので著作権に抵触してますな。>>1は。
通報してくる。

6 :SystemX:02/09/12 13:01
>>2
2get荒らしなのか、俺に対する励ましなのか分からんのだが、、、

とにかく、ココはyacc&lexに関するスレという事でヨロシク!!

7 :SystemX:02/09/12 13:04
>>5
なっ、何をもってそのような事が、、、

8 :名無しさん@お腹いっぱい。:02/09/12 13:05
ここは、自信のないスレ、なのか……?

9 :みゆりん祭り ◆MiYU.XlA :02/09/12 13:21
                    \
                      \  新スレおめでとうございまぁす☆
                       \
                         \            /|   。.
                       ,,-'―\       _,/ノ   . .
        ___,,-―――='' ̄ ̄    _,,-'―=''' ̄_,/|  o    *
_,,-―=''' ̄      ___,,-―――='' ̄ __,-―='' ̄   / .   . .
   _,,-―=''' ̄        _,,-―='' ̄ ヽ       /  +
 ̄ ̄        _,,-―=''' ̄          \    /  . . .  .
      ,,-='' ̄                   ヽ  /    .  。. ★  ☆
    ,,,-''        ノ              ノ   ヽ/     。.    .
-―'' ̄        (;;;)    |___,/  (;;;)   |   . ☆  +
.  |        ..::::::::::::...       |     /    ..:::::::... | + .   . .
   |                    |     /        |    . .   ☆
  ヽ    γ´~⌒ヽ.        |   /          /☆ . *  +.  .
――ヽ   /      ヽ      |  /         /⌒ヽ、.  .  . .
    \/       |       |_/          /    ヽ +★
      /         |             /     ノ *  ☆

10 :名無しさん@お腹いっぱい。:02/09/12 14:54

























11 :名無しさん@お腹いっぱい。:02/09/12 14:54



















 

12 :名無しさん@お腹いっぱい。:02/09/12 15:28
ヤッケ?

13 :名無しさん@お腹いっぱい。:02/09/12 15:33
>>12
ユッケ食いたいなぁ・・・。

14 :棄教者 ◆witdLTi2 :02/09/12 16:02
http://pc3.2ch.net/test/read.cgi/tech/1021136715/l50

15 :名無しさん@Emacs:02/09/12 21:29
lex どんな時に使ってる?

16 :名無しさん@お腹いっぱい。:02/09/12 23:25
みゆりんってだれ?

17 :えんぢにあ:02/09/13 10:27
>>15
使わない。
業務システムのコンサル SE だから。
# いまは、ぷー太郎だけど。

18 :名無しさん@お腹いっぱい。:02/09/13 22:25
率直な話、プログラマじゃなきゃ使い道ないとおもうなぁ。
ふつーの文字列処理で使えるものなのか?
一般人の使うような使い方があったらだれか教えて

19 :名無しさん@お腹いっぱい。:02/09/13 22:41
>>18
個人的なプチコンパイラつくって悦に浸るとき。

20 :名無しさん@Meadow:02/09/14 02:20
意外と便利だが、最近はXMLパーサを利用してしまう……

21 :名無しさん@お腹いっぱい。:02/09/14 05:14
>>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 が必要になったことは滅多にない。

24 :名無しさん@お腹いっぱい。:02/09/14 16:33
個人レベルでパーサ作る時はracc使うなあ…
正直、lex&yaccは面倒すぎ。

25 :名無しさん@お腹いっぱい。:02/09/14 17:01
俺、yacc は使うけど lex の部分は手で書いちゃう。
再帰降下型パーサーで、ちょちょいと書けるような
簡単な文法だと、yacc も使わずに、すべて手で書い
ちゃう。
これって、ひょっとして old type よりもさらに
older ってことですか? 欝だ死脳


26 :名無しさん@お腹いっぱい。:02/09/15 00:18
いや、yacc も lex も使わず手で書いてしまうってのはよくある。


27 :名無しさん@お腹いっぱい。:02/09/17 11:41
何でいまだにほとんどのUnixに標準添付なのかと。








いやツールのmakeんときに必要なんだろうけどさ

28 :名無しさん@お腹いっぱい。:02/09/19 18:02
まだだ!まだおわらんよ!
>>27
perlのコンパイルの時も使います

29 :名無しさん@Emacs:02/09/20 02:37
yacc & lex 本で良いのどれ? ってもう買っちゃったけど。
C のインタープリタ作りたい。>>0


30 :名無しさん@お腹いっぱい。:02/09/20 05:11
SymphonyXに見えた

31 :名無しさん@お腹いっぱい。:02/09/20 07:10
>>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 で訳さない?

35 :名無しさん@お腹いっぱい。:02/09/20 09:54
>>29
俺は「yaccによるCコンパイラプログラミング」って本が激しくよかったんですが
(lexは扱ってないけど)絶版になったと聞きました。

36 :名無しさん@Emacs:02/09/21 00:45
>>萌え萌え
あぁ! それ買ったんですよ。

>>35
そのものズバリなタイトルですね。読みたゐな♪

37 :仕様書無しさん:02/09/21 01:20
lex&yacc入門なら

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

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

でも、この本、まだ売ってんのかな?

38 :名無しさん@Emacs:02/09/21 03:51
>>37
それってカーニハンのですか? 本屋で見かけたような・・・。
見付けたらゲットしてみます。

39 :名無しさん@お腹いっぱい。:02/09/22 02:32
>>37
その章だけ学校の図書館でコピーしたよ、昔。

40 :35:02/09/22 14:20
>>36
本のほうは入手困難ぽ。俺もだいぶ苦労しますた。

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

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

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

本気で言語処理系学ぶならやっぱドラゴンブックに挑むのがいいんかねえ。

41 :名無しさん@お腹いっぱい。:02/09/22 15:36
読み方についてなのだが、以下の形でよいのだろうか?

lex ......... レックス
yacc .... ヤック
flex ....... フレックス
bison ... バイソン

42 :名無しさん@お腹いっぱい。:02/09/22 16:30
lex レフ
yacc ヤッシッシー
flex フレフ
bison ビソン

43 :名無しさん@お腹いっぱい。:02/09/22 16:37
れきしかるあならいざじぇねれーた
いぇっとあなざーこんぱいらこんぱいら
ふぁーすとれきしかるあならいざじぇねれーた
のうし

44 :名無しさん@お腹いっぱい。:02/09/22 19:24
炒飯
餃子
レバニラ炒め
天津飯


45 :名無しさん@お腹いっぱい。:02/09/23 02:22
>>41
いいんじゃネーノ?

46 :名無しさん@お腹いっぱい。:02/09/23 10:20
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
やっくすのせりかた

51 :名無しさん@お腹いっぱい。:03/02/16 21:19
http://pc2.2ch.net/test/read.cgi/tech/1045139908/

52 :山崎渉:03/03/13 17:54
(^^)

53 :山崎渉:03/04/17 12:21
(^^)

54 :山崎渉:03/04/20 06:09
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

55 :名無しさん@お腹いっぱい。:03/05/21 16:32
flex でルール部を C の変数で動的に生成することって出来ないですかね?

56 :クンクン(葬式):03/05/21 17:03
>>55
何にでも当てはまるようなオマンコガバガバのルールに対して、
切り出したトークンの値に応じて C の内部で場合分けをして逝くのはどうかしら。。。

クククのクーソ。。。

57 :山崎渉:03/05/22 01:46
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

58 :名無しさん@お腹いっぱい。:03/06/02 13:51
自己晒しage

>>55
flexの内部テーブルをいじればいけるんじゃないすか。
そこまでするなら自分で字句解析したほうが楽な気もします。

59 :名無しさん@お腹いっぱい。:03/06/08 09:39
yacc -d とか bison -y が通らないものは
"byacc"つかうとたいてい通る。

しかしナニをするものなのかとかは
全くシラン。


60 :山崎 渉:03/07/15 11:25

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

61 :名無しさん@お腹いっぱい。:03/07/20 01:27
盛り上がんないなあ

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

62 :名無しさん@XEmacs:03/07/21 23:16
>>55

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

flex を実行、 *.c を作成

コンパイル

yylex() を dlopen()

とか?

lex って状態機械作るんですよね。単にテーブルに要素追加すればオケという
ほど簡単でもないと思うんだけど? >>58


63 :名無しさん@お腹いっぱい。:03/08/12 01:11
58っす

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

しかしlex使うシチュエーションって少ねえなあ。

64 :あぼーん:あぼーん
あぼーん

65 :あぼーん:あぼーん
あぼーん

66 :名無しさん@お腹いっぱい。:03/09/29 23:15
設定ファイルの書式もなんだかんだでXMLになりつつあるしなあ。

67 :名無しさん@お腹いっぱい。:03/11/07 01:06
>>63
正規表現ライブラリの代わりとか

68 :名無しさん@お腹いっぱい。:04/02/17 23:33
補修

69 :名無しさん@お腹いっぱい。:04/05/03 13:18
raccのこととかも語ってちょ。

15 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)