■ このスレッドは過去ログ倉庫に格納されています
yacc & lex
- 1 :SystemX:02/09/12 12:28.net
- yaccとは、"yet another compiler-compiler"(さらにもう一つのコンパイラ-コンパイラ)という意味で、
yaccの開発者である、スティーヴ・ジョンソン氏が当時(1972年頃)に存在していた同種のプログラムの多さを
皮肉った言葉に由来している。yaccはその中で生き残ったごく少数のうちの一つである。
lexはyaccがパーサーを作成するのと同様の方法で字句解析ルーチンを作る。即ち、自分の言語の字句規則の
仕様を正規表現と、その正規表現に一致する文字列が見つかった時に、実行すべきCプログラムにより記述すればよい。
lexとyaccは、我々が既に書いてきた字句解析ルーチンと同一のメカニズムで、共同して働く。
- 2 :名無しさん@お腹いっぱい。:02/09/12 12:35.net
- >>1
えっと・・・おめでとう?
- 3 :えんぢにあ:02/09/12 12:39.net
- flex & bison ですが、何か?
- 4 :名無しさん@お腹いっぱい。:02/09/12 12:51.net
- オライリー本を買ったのがそんなに嬉しかった、ってことかな
- 5 :名無しさん@お腹いっぱい。:02/09/12 12:56.net
- >>4
引用としての体をなしてないので著作権に抵触してますな。>>1は。
通報してくる。
- 6 :SystemX:02/09/12 13:01.net
- >>2
2get荒らしなのか、俺に対する励ましなのか分からんのだが、、、
とにかく、ココはyacc&lexに関するスレという事でヨロシク!!
- 7 :SystemX:02/09/12 13:04.net
- >>5
なっ、何をもってそのような事が、、、
- 8 :名無しさん@お腹いっぱい。:02/09/12 13:05.net
- ここは、自信のないスレ、なのか……?
- 9 :みゆりん祭り ◆MiYU.XlA :02/09/12 13:21.net
- \
\ 新スレおめでとうございまぁす☆
\
\ /| 。.
,,-'―\ _,/ノ . .
___,,-―――='' ̄ ̄ _,,-'―=''' ̄_,/| o *
_,,-―=''' ̄ ___,,-―――='' ̄ __,-―='' ̄ / . . .
_,,-―=''' ̄ _,,-―='' ̄ ヽ / +
 ̄ ̄ _,,-―=''' ̄ \ / . . . .
,,-='' ̄ ヽ / . 。. ★ ☆
,,,-'' ノ ノ ヽ/ 。. .
-―'' ̄ (;;;) |___,/ (;;;) | . ☆ +
. | ..::::::::::::... | / ..:::::::... | + . . .
| | / | . . ☆
ヽ γ´~⌒ヽ. | / /☆ . * +. .
――ヽ / ヽ | / /⌒ヽ、. . . .
\/ | |_/ / ヽ +★
/ | / ノ * ☆
- 10 :名無しさん@お腹いっぱい。:02/09/12 14:54.net
-
- 11 :名無しさん@お腹いっぱい。:02/09/12 14:54.net
-
- 12 :名無しさん@お腹いっぱい。:02/09/12 15:28.net
- ヤッケ?
- 13 :名無しさん@お腹いっぱい。:02/09/12 15:33.net
- >>12
ユッケ食いたいなぁ・・・。
- 14 :棄教者 ◆witdLTi2 :02/09/12 16:02.net
- http://pc3.2ch.net/test/read.cgi/tech/1021136715/l50
- 15 :名無しさん@Emacs:02/09/12 21:29.net
- lex どんな時に使ってる?
- 16 :名無しさん@お腹いっぱい。:02/09/12 23:25.net
- みゆりんってだれ?
- 17 :えんぢにあ:02/09/13 10:27.net
- >>15
使わない。
業務システムのコンサル SE だから。
# いまは、ぷー太郎だけど。
- 18 :名無しさん@お腹いっぱい。:02/09/13 22:25.net
- 率直な話、プログラマじゃなきゃ使い道ないとおもうなぁ。
ふつーの文字列処理で使えるものなのか?
一般人の使うような使い方があったらだれか教えて
- 19 :名無しさん@お腹いっぱい。:02/09/13 22:41.net
- >>18
個人的なプチコンパイラつくって悦に浸るとき。
- 20 :名無しさん@Meadow:02/09/14 02:20.net
- 意外と便利だが、最近はXMLパーサを利用してしまう……
- 21 :名無しさん@お腹いっぱい。:02/09/14 05:14.net
- >>18
lex は、正規表現の複雑なことをするには、sed より便利だよ。
覚えとくと非常に便利。
- 22 :えんぢにあ:02/09/14 07:42.net
- >>21
lex が必要になることがあまりないな。
たいていは sed で済んじゃうし。
そういえば SJIS to EBIDIK 変換の前処理を
C で書いたけど lex 使えば楽だったかも。
- 23 :棄教者 ◆witdLTi2 :02/09/14 16:05.net
- >>21
でも Perl でも十分。
lex が必要になったことは滅多にない。
- 24 :名無しさん@お腹いっぱい。:02/09/14 16:33.net
- 個人レベルでパーサ作る時はracc使うなあ…
正直、lex&yaccは面倒すぎ。
- 25 :名無しさん@お腹いっぱい。:02/09/14 17:01.net
- 俺、yacc は使うけど lex の部分は手で書いちゃう。
再帰降下型パーサーで、ちょちょいと書けるような
簡単な文法だと、yacc も使わずに、すべて手で書い
ちゃう。
これって、ひょっとして old type よりもさらに
older ってことですか? 欝だ死脳
- 26 :名無しさん@お腹いっぱい。:02/09/15 00:18.net
- いや、yacc も lex も使わず手で書いてしまうってのはよくある。
- 27 :名無しさん@お腹いっぱい。:02/09/17 11:41.net
- 何でいまだにほとんどのUnixに標準添付なのかと。
いやツールのmakeんときに必要なんだろうけどさ
- 28 :名無しさん@お腹いっぱい。:02/09/19 18:02.net
- まだだ!まだおわらんよ!
>>27
perlのコンパイルの時も使います
- 29 :名無しさん@Emacs:02/09/20 02:37.net
- yacc & lex 本で良いのどれ? ってもう買っちゃったけど。
C のインタープリタ作りたい。>>0
- 30 :名無しさん@お腹いっぱい。:02/09/20 05:11.net
- SymphonyXに見えた
- 31 :名無しさん@お腹いっぱい。:02/09/20 07:10.net
- >>30
あのウソコバソドか
- 32 :萌え萌え ◆MOE73MOE :02/09/20 08:42.net
- プログラム板にも何冊か推薦図書がありましたが、ぼくが参考にしたのは
yacc/lex プログラムジェネレータ on UNIX 五月女健治 テクノプレス
コンパイラ構成法 原田賢一 共立出版
他にも「コンパイラ」に関する本は何冊かありましたが、むしろ
yacc/lex の使い方よりもコンパイラの理論が中心になっているので、
初心者には取っつきにくいかもしれません。
- 33 :棄教者 ◆KIKYO7cg :02/09/20 08:43.net
- >>32ハンドル間違えた。
- 34 :棄教者 ◆KIKYO7cg :02/09/20 09:54.net
- http://www.linux.or.jp/JF/workshop/JF-in-Progress.html
の翻訳進捗状況一覧眺めていたら
Lex-YACC-HOWTO 未訳だってさ。
2CHer で訳さない?
- 35 :名無しさん@お腹いっぱい。:02/09/20 09:54.net
- >>29
俺は「yaccによるCコンパイラプログラミング」って本が激しくよかったんですが
(lexは扱ってないけど)絶版になったと聞きました。
- 36 :名無しさん@Emacs:02/09/21 00:45.net
- >>萌え萌え
あぁ! それ買ったんですよ。
>>35
そのものズバリなタイトルですね。読みたゐな♪
- 37 :仕様書無しさん:02/09/21 01:20.net
- lex&yacc入門なら
「UNIXプログラミング環境」 アスキー
に、素晴らしい章がある。本気でやってみたいんなら、
この章を読むためだけに買ってもいいんじゃないかと思う。
これを読んだ後で、ほかの本を買えばいいんじゃないかな。
でも、この本、まだ売ってんのかな?
- 38 :名無しさん@Emacs:02/09/21 03:51.net
- >>37
それってカーニハンのですか? 本屋で見かけたような・・・。
見付けたらゲットしてみます。
- 39 :名無しさん@お腹いっぱい。:02/09/22 02:32.net
- >>37
その章だけ学校の図書館でコピーしたよ、昔。
- 40 :35:02/09/22 14:20.net
- >>36
本のほうは入手困難ぽ。俺もだいぶ苦労しますた。
Cマガの99年10月号についてるCDにキモの部分が入ってるそうなんで
(http://www.context.co.jp/~cond/books/ ご参照)
これをなんとか入手するのが早いかもです。
x86向けコードを吐き出す (最適化はあんまりやってないけど)
実物のCコンパイラを題材として分かりやすく説明してくれてるいい本でした。
>>37
残念ながらそっちも絶版ぽ
本気で言語処理系学ぶならやっぱドラゴンブックに挑むのがいいんかねえ。
- 41 :名無しさん@お腹いっぱい。:02/09/22 15:36.net
- 読み方についてなのだが、以下の形でよいのだろうか?
lex ......... レックス
yacc .... ヤック
flex ....... フレックス
bison ... バイソン
- 42 :名無しさん@お腹いっぱい。:02/09/22 16:30.net
- lex レフ
yacc ヤッシッシー
flex フレフ
bison ビソン
- 43 :名無しさん@お腹いっぱい。:02/09/22 16:37.net
- れきしかるあならいざじぇねれーた
いぇっとあなざーこんぱいらこんぱいら
ふぁーすとれきしかるあならいざじぇねれーた
のうし
- 44 :名無しさん@お腹いっぱい。:02/09/22 19:24.net
- 炒飯
餃子
レバニラ炒め
天津飯
- 45 :名無しさん@お腹いっぱい。:02/09/23 02:22.net
- >>41
いいんじゃネーノ?
- 46 :名無しさん@お腹いっぱい。:02/09/23 10:20.net
- UNIXに関する言葉のカタカナ読みスレッド
http://pc.2ch.net/test/read.cgi/unix/979465046/
- 47 :名無しさん@お腹いっぱい。:02/11/15 17:13.net
- 誰か、%type に複数の項目をカンマで区切って並べる書き方の載っている
マニュアルか何かを知りませんか?
bison-1.75 がタコで、ルールの末尾のセミコロンが絶対必要になったのと
複数項目をカンマで区切って並べる書き方を認めなくなったおかげで、
世間に存在する大量の yacc コードがコンパイルできなくなった模様。
作者は「こりゃ仕様だセミコロンつけないヤシが悪いんだゴルァ」と
MLでおっしゃってます。
直してもらおうと思って Single Unix Specification ではどうなって
いるか調べてみたんだけど、ダメらしい。yaccによるyaccの文法定義は
PSD:15の孫引きなんで、世間のマニュアルはみんな右に倣えの予感。
V7のyaccをコンパイルして試してみたらカンマでもちゃんと通ります。
- 48 :名無しさん@お腹いっぱい。:02/11/15 18:29.net
- >>41
覚えたてのころは、ごっちゃになって
レック
ヤックス
とか言ってた
- 49 :山崎渉:03/01/15 13:21.net
- (^^)
- 50 :ファンキー大山:03/02/15 19:26.net
- やっくすのせりかた
- 51 :名無しさん@お腹いっぱい。:03/02/16 21:19.net
- http://pc2.2ch.net/test/read.cgi/tech/1045139908/
- 52 :山崎渉:03/03/13 17:54.net
- (^^)
- 53 :山崎渉:03/04/17 12:21.net
- (^^)
- 54 :あぼーん:あぼーん.net
- あぼーん
- 55 :名無しさん@お腹いっぱい。:03/05/21 16:32.net
- flex でルール部を C の変数で動的に生成することって出来ないですかね?
- 56 :クンクン(葬式):03/05/21 17:03.net
- >>55
何にでも当てはまるようなオマンコガバガバのルールに対して、
切り出したトークンの値に応じて C の内部で場合分けをして逝くのはどうかしら。。。
クククのクーソ。。。
- 57 :あぼーん:あぼーん.net
- あぼーん
- 58 :名無しさん@お腹いっぱい。:03/06/02 13:51.net
- 自己晒しage
>>55
flexの内部テーブルをいじればいけるんじゃないすか。
そこまでするなら自分で字句解析したほうが楽な気もします。
- 59 :名無しさん@お腹いっぱい。:03/06/08 09:39.net
- yacc -d とか bison -y が通らないものは
"byacc"つかうとたいてい通る。
しかしナニをするものなのかとかは
全くシラン。
- 60 :あぼーん:あぼーん.net
- あぼーん
- 61 :名無しさん@お腹いっぱい。:03/07/20 01:27.net
- 盛り上がんないなあ
>>34
ほらよ
http://www.linux.or.jp/JF/JFdocs/Lex-YACC-HOWTO.txt
- 62 :名無しさん@XEmacs:03/07/21 23:16.net
- >>55
ルールを出力、 *.l を作成
↓
flex を実行、 *.c を作成
↓
コンパイル
↓
yylex() を dlopen()
とか?
lex って状態機械作るんですよね。単にテーブルに要素追加すればオケという
ほど簡単でもないと思うんだけど? >>58
- 63 :名無しさん@お腹いっぱい。:03/08/12 01:11.net
- 58っす
>>62
そっか、そうだな。
しかしlex使うシチュエーションって少ねえなあ。
- 64 :あぼーん:あぼーん.net
- あぼーん
- 65 :あぼーん:あぼーん.net
- あぼーん
- 66 :名無しさん@お腹いっぱい。:03/09/29 23:15.net
- 設定ファイルの書式もなんだかんだでXMLになりつつあるしなあ。
- 67 :名無しさん@お腹いっぱい。:03/11/07 01:06.net
- >>63
正規表現ライブラリの代わりとか
- 68 :名無しさん@お腹いっぱい。:04/02/17 23:33.net
- 補修
- 69 :名無しさん@お腹いっぱい。:04/05/03 13:18.net
- raccのこととかも語ってちょ。
- 70 :名無しさん@お腹いっぱい。:04/05/11 01:13.net
- アドベンチャーゲームなど用にスクリプトプログラムを作成したいのですが、
そのような目的にyaccやlexって向いていますか?
yaccやlexについて調べようとおもったのですが、見つけることができませんでした。
開発環境はWindowsですので、bisonとflexというのを入れてみました。
- 71 :名無しさん@お腹いっぱい。:04/05/29 06:47.net
- >>70
スクリプトプログラムを作成するインタプリタプログラムを作るには
むいてるかもしれない。日本語周りは要注意ね。
Unix板的には
「既存のものを使え」
「既存のもので満足できなければ改造しろ」
と思う。車輪の再発明はもっとも愚かだ
- 72 :名無しさん@お腹いっぱい。:04/06/22 22:14.net
- Lexで標準入力以外(例えば文字列)を取得したい場合、下記のような定義をすると思うんですが、
#undef YY_INPUT
#define YY_INPUT(buf, result, max_size) (result = my_yyinput(buf, max_size))
この場合、my_yyinput()はどういうタイミングで呼ばれるのでしょうか?
また、bufの値はどこで設定すればよいのでしょうか?
- 73 :名無しさん@お腹いっぱい。:04/06/23 23:39.net
- >>71
私は車輪を再発明して理解しろ。という方が好きです
- 74 :名無しさん@お腹いっぱい。:04/06/24 14:24.net
- 学生やアマチュアはそれで良いんじゃないの
- 75 :名無しさん@Vim%Chalice:05/01/30 03:09:21 .net
-
- 76 :名無しさん@お腹いっぱい。:05/01/30 09:05:18 .net
- >>71
お前は愚かだ
- 77 :名無しさん@お腹いっぱい。:05/02/01 12:45:38 .net
- 車輪の再発明は勉強にはなるけど学生のうちに済ませとけ
- 78 :名無しさん@お腹いっぱい。:05/02/01 17:58:32 .net
- 自分らは普段なにやってるの?車輪磨き?
- 79 :名無しさん@お腹いっぱい。:05/03/05 23:39:09 .net
- UNIXプログラミング環境
在庫があるところにはあるらしい
www.boople.com/servlet/AFsearch?&isc=&idn=321429&iqm=2
- 80 :名無しさん@お腹いっぱい。:05/03/07 20:57:01 .net
- >>79
普通に買えるみたい。
http://www.junkudo.co.jp/detail2.jsp?ID=0185262822
http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-NIPS=9850359668
家の近所の本屋でも売ってました。
- 81 :名無しさん@お腹いっぱい。:2006/01/18(水) 02:07:16 .net
- からあげ うまうま だよもん
- 82 :名無しさん@お腹いっぱい。:2006/04/03(月) 12:15:00 .net
- flex のyy_push_state() って、FlexLexer ではprotected なのですが
ってことは、.y 側のルールでyy_push_state() を使うのはunsupported でつか?
- 83 :名無しさん@お腹いっぱい。:2006/07/05(水) 02:03:44 .net
- 初めて lex を使ってみました。なんか面白いのねん。
- 84 :「なぜ敢えて yyなの?」:2006/07/10(月) 19:35:15 .net
- lex は yy.lex.c吐くわ、yyナンチャラいう変数/関数をもってるわ
なぜそこで yy? あんた lexさんでしょう?と思ってしまうのですが
yyがつくものは yaccへの引渡しを想定していますよという暗示なのん?
なんつ−か、
歴史的な経緯とかyacc/lex開発時のエピソ−ドがあるようなら教えて下しい
もしかして lex is Yet another Yacc だからとかいう話しなのかしらん?
という質問はくだ質逝ったほうが吉?
- 85 :84:2006/07/11(火) 13:01:49 .net
- << yy.lex.c
>> lex.yy.c 誤記ですた
- 86 :名無しさん@お腹いっぱい。:2006/07/27(木) 18:31:21 .net
- bisonでコンパイルするときに使う記号テーブルって何で必要なんだ?
誰か教えてくれorz
ぐぐっても見つかんない・・・
- 87 :名無しさん@お腹いっぱい。:2006/07/27(木) 18:50:10 .net
- >>84
sourceの行番号の受け渡しとか、
協調しないといけないものがあるから。
--stdoutで切り替えられるから問題ないでしょ。
yyin, yyoutとか。
>>86
えーと、'+'とか'-'とかですめばいいけど、
"if"とか"then"とかをtokenとして扱いたいから。
- 88 :名無しさん@お腹いっぱい。:2006/07/27(木) 23:20:24 .net
- >>86
そんなレベルで bison 使うの?
- 89 :86:2006/07/28(金) 00:59:27 .net
- 使わないといけないらしいです。
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 .net
- なんじゃそりゃ
- 91 :名無しさん@お腹いっぱい。:2007/06/28(木) 02:50:14 .net
- yyac 使って,define に相当するようなコマンドをもつ
コンパイラ or インタプリタを作るには
どうしたらいいのでしょうか.
参考文献を教えて下さると有難いです.
それとも不可能ですか?
- 92 :名無しさん@お腹いっぱい。:2007/06/28(木) 02:59:57 .net
- BNFで書けるなら(つまり文脈自由文法なら)yaccで記述出来るし
BNFで書けないならyaccで記述出来ない
そのdefineをBNFで書いて見る事をお奨めする
- 93 :名無しさん@お腹いっぱい。:2007/06/30(土) 14:03:07 .net
- ああ、ひょっとして91が作りたかったのは
defineじゃなくてインタプリタの事じゃないだろうか?
もしそうならyaccでは不可能。
だって、yaccはCompiler Compilerだから。
- 94 :名無しさん@お腹いっぱい。:2007/06/30(土) 15:08:19 .net
- (´・ω・`)
- 95 :名無しさん@お腹いっぱい。:2007/06/30(土) 20:15:09 .net
- >>93
- 96 :名無しさん@お腹いっぱい。:2007/07/01(日) 02:27:18 .net
- >>55
- 97 :名無しさん@お腹いっぱい。:2007/07/01(日) 22:01:53 .net
- >>93
マクロ定義ができるコンパイラが作りたかったんじゃね?
- 98 :名無しさん@お腹いっぱい。:2007/07/02(月) 00:15:22 .net
- (´・ω・`)
- 99 :名無しさん@お腹いっぱい。:2007/07/07(土) 17:12:42 .net
- 関数定義ができるコンパイラを yacc で記述するにはどうしたらいいですか?
- 100 :名無しさん@お腹いっぱい。:2007/07/08(日) 10:09:07 .net
- 100ゲト!
普通が一番だよ
- 101 :WNSyrttCnfyxM:2007/07/19(木) 15:40:27 .net
- rAwIsK name is Kostya.My nick is Zold . I want to find friends .ICQ 324600825
- 102 :名無しさん@お腹いっぱい。:2007/07/26(木) 17:55:32 .net
- antlr
- 103 :名無しさん@お腹いっぱい。:2008/08/30(土) 23:01:26 .net
- BS1にチョムスキー出てた
- 104 :名無しさん@お腹いっぱい。:2008/10/30(木) 23:58:54 .net
- c言語でコメント/*から*/を字句解析できないようにさせるには、
規則部にどういう正規表現をすればいいですか?
/*
・・・・・・
*/
となっています。
- 105 :名無しさん@お腹いっぱい。:2008/10/31(金) 00:52:06 .net
- lex?
flexのFAQに、
How can I match C-style comments?
ってのがあるよ。
- 106 :名無しさん@お腹いっぱい。:2008/10/31(金) 12:09:51 .net
- flex だったらそれでいいね。
一般的には、
非欲張り型量指定子 *? が使えるなら /\*.*?\*/ でおk
使えない場合は少々厄介で、
/\*([^*]|\*+[^/*])*\*+/
詳説正規表現の第二版だと 6.6.8.3 にある。
- 107 :名無しさん@お腹いっぱい。:2008/11/01(土) 00:04:56 .net
- >>105,106
どうもありがとうございました。
大変恐縮なんですが規則部に入れるバージョンで教えてもらえないですか?
"/*"
から始まると思いますが・・・
- 108 :名無しさん@お腹いっぱい。:2008/11/01(土) 00:35:06 .net
- >>105,106
lex用に直してコンパイルしましたらできました。
"/*"+[^/*]*+"*/
また教えて下さい。
- 109 :名無しさん@お腹いっぱい。:2008/11/01(土) 01:56:53 .net
- ファイルからプログラムを読み込ませてそのプログラムに出てくる演算子とか
識別子の数を一番下に表示させるようにするにはどうしたらいいですか?
- 110 :名無しさん@お腹いっぱい。:2008/11/01(土) 09:43:16 .net
- パーズしろ。
- 111 :名無しさん@お腹いっぱい。:2008/11/01(土) 16:25:17 .net
- C言語のコメントってプリプロセッサが空白に置換するものだよ。
- 112 :名無しさん@お腹いっぱい。:2008/11/02(日) 11:08:35 .net
- サーバの役割のひとつに
クライアントからの電文をプロトコルにしたがって解析して、処理し、返答を
返すという役割があるかと思います。
パーサジェネレータをつかって、簡単に上記のような枠組みを
実装するようなことはできないでしょうか。
インタプリタをパーサジェネレータを使って実装するような流れはあるのに、
drubyやerlang、アクターモデルなどの実装方法とパーサジェネレータが
なぜか結び付けられていないのが不思議に思われます。
- 113 :名無しさん@お腹いっぱい。:2008/11/02(日) 11:42:33 .net
- >>112
思いて学ばざれば則ち殆うし。
- 114 :名無しさん@お腹いっぱい。:2008/11/02(日) 12:25:37 .net
- >>112
つ ASN.1 ←>>112の言う方向の最後の試み
つ object serialization ←もうそれはOOの方でやっちゃいますわ
- 115 :名無しさん@お腹いっぱい。:2008/11/02(日) 12:39:46 .net
- パーサジェネレータだけ知ってて状態機械知らないの?
- 116 :名無しさん@お腹いっぱい。:2008/11/02(日) 17:01:54 .net
- >>114
CORBAキター
- 117 :名無しさん@お腹いっぱい。:2008/11/02(日) 20:36:42 .net
- 本格的な構文解析が必要な通信プロトコルを設計するのがそもそも間違いですから
- 118 :名無しさん@お腹いっぱい。:2008/11/05(水) 21:20:53 .net
- >>109
おまえ信大の学生だろ。それは簡単だよ。
コメントを読み飛ばすのは108を書けばOK
- 119 :名無しさん@お腹いっぱい。:2008/11/06(木) 17:46:14 .net
- 学生か
図書館にyaccの解説本の1冊ぐらいあるだろ
- 120 :名無しさん@お腹いっぱい。:2008/11/07(金) 22:30:33 .net
- >>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 .net
- 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 .net
- _yylexがない、っていうんだから、yylex()を定義すればいいんじゃないの?
- 123 :名無しさん@お腹いっぱい。:2009/08/05(水) 17:27:41 .net
- なんとか121はこえたのでパースエラーと戦ってくる
>>122ありがとう
- 124 :名無しさん@お腹いっぱい。:2010/11/11(木) 15:15:36 .net
- Cのラベルみたいなもの
任意の文字列 最後に特殊文字(:とか)
はlex側でなくてyacc側で認識させるものなの?
- 125 :名無しさん@お腹いっぱい。:2010/11/11(木) 15:20:20 .net
- labelname ':'
とyaccで扱うのが普通じゃないか?
- 126 :名無しさん@お腹いっぱい。:2010/11/11(木) 17:01:03 .net
- ケースバイケースだと思うけど。
C 言語の場合、
a ? b : c;
の一部という場合があるので、<識別子> ":" を、lex で無条件に <ラベル> にするわけにはいかない。
- 127 :名無しさん@お腹いっぱい。:2010/11/17(水) 11:36:58 .net
- >>91
>>93
いやyacc, lexを使ってインタープリターは作れる。
GUIのテストをするための、カーソル移動、マウスクリックの
シミュレートをするプログラムを作ったことがあり、
インタラクティブに画面上の移動、パスの記録などを
できるようにしたことがある。
マニュアルをよく読めば見当がつくはず。yylexだっけ、インプットストリームの
切り替え部分に気をつければずっと読み込みをしながら、
一行コマンドラインの処理をしつつ、エラーの処理もyaccで行なって
インタープリターはつくれますよ。
(あ、一行でコマンドが終わるとするとかなり楽になる。
セミコロンみたいな シンボルが来るまで終わらないというのはちょっと
うれしくない。一行でコマンドが終わって、どうしても必要なら行末の
バックスラッシュで継続行とかするのがよい。)
インタープリターで対話的に作ったスクリプトを、再度編集しなおして
標準入力から放り込めば、GUIプログラムのパッケージの
テストができるというものでした。
- 128 :名無しさん@お腹いっぱい。:2010/11/30(火) 15:31:10 .net
- BNFCもいいな
- 129 :名無しさん@お腹いっぱい。:2010/12/10(金) 10:56:06 .net
- 命令文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 ?PLT(12079).net
- スレの趣旨がわからん
- 131 :名無しさん@お腹いっぱい。:2013/06/01(土) 16:18:40.79 .net
- 質問です。
http://www.w3.org/TR/CSS21/grammar.html
このページでYACCの文法が載ってますが、拡張されているのでそのまま
使えません。この中で、
expr
: term [ operator? term ]*
はどうやってYACC文法で書けばいいでしょうか?
- 132 :名無しさん@お腹いっぱい。:2013/06/01(土) 19:22:48.72 .net
- 一般にA*は、
X =
X = A | X
A?は、
X =
X = A
と定義したXで置き換えられる。
- 133 :名無しさん@お腹いっぱい。:2013/06/01(土) 22:32:34.47 .net
- その後>>132のいうように分割して定義する事がわかったので、そうして
定義していますが、複雑になるとかなり分割数が増えるので面倒ですね…
- 134 :名無しさん@お腹いっぱい。:2013/06/02(日) 09:21:11.71 .net
- めんどうだから拡張されてるんじゃないの。
- 135 :名無しさん@お腹いっぱい。:2013/06/02(日) 14:59:49.67 .net
- http://www.w3.org/TR/CSS21/grammar.html
このYACC文法がそのまま入力出来るツールがあってほしいね。
- 136 :名無しさん@お腹いっぱい。:2013/06/03(月) 01:08:35.25 .net
- 文法は違うけど、
parsec辺りは拡張BNFがOKで、
自然な記述でアクションも定義できる。
- 137 :名無しさん@お腹いっぱい。:2013/06/04(火) 19:07:57.43 .net
- >>135
> http://www.w3.org/TR/CSS21/grammar.html
ラッパ作りゃいいんじゃね?
- 138 :名無しさん@お腹いっぱい。:2013/06/05(水) 21:48:31.36 .net
- コンパイラコンパイラのコンパイラコンパイラになるのか?
- 139 :名無しさん@お腹いっぱい。:2016/01/20(水) 01:28:56.56 .net
- Yet Another Compiler Compiler Compiler
- 140 :名無しさん@お腹いっぱい。:2017/03/19(日) 19:56:12.87 .net
- コンパイラコンパイラのように、OSの仕様を記述すればそれでOSがたちまち
できてくるというようなツールはあるの?
- 141 :名無しさん@お腹いっぱい。:2017/12/29(金) 09:42:38.56 .net
- 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
QU1SBJJIM5
- 142 :名無しさん@お腹いっぱい。:2018/05/22(火) 04:23:17.03 .net
- 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
74Q1F
- 143 :名無しさん@お腹いっぱい。:2018/09/27(木) 19:17:33.25 .net
- lex&yacc
flex&bison
- 144 :名無しさん@お腹いっぱい。:2019/07/05(金) 02:46:41.67 .net
- yacc&lexでXMLパーサを作る過程などが公開されている記事ご存知ないでしょうか。
英語でも構いません。
- 145 :名無しさん@お腹いっぱい。:2023/05/27(土) 09:24:00.49 ID:vht5dv9t+
- 他人の権利を強奪して私腹を肥やす強盗殺人政治やってる論理もクソもないロクに勉強してない議員だらけ無能外道集団公明党と違って維新
は最低限の知的能力を有してる奴か゛多いのは橋下徹の意向て゛容赦なく知的能力の足切りやってる成果なんだろうけど,いい年して玉遊びとか
してる無能を讃えてみたり.曰本に原爆落とした世界最悪のならす゛者国家の覇権主義に利用されてるウクライナ状態になるリスクを無視して
軍拡推進してみたり.危険極まりない原発推進すれは゛電氣料金は下がるだのほさ゛きか゛ら鉄道のзO倍以上もの非効率クソ航空機によって莫大
な石油無駄に燃やしてエネ価格暴騰させて温室効果ガス倍増させて氣侯変動させて災害連發させて貿易赤字に,そんなバカの象徴萬博を誇っ
てみたり,騒音によって知的産業に威力業務妨害して壞滅させて原發とか笑わせるレヘ゛ルにまて゛日本の技術カ低下させて、勉強妨害して犯罪
惹起しながら動物虐待は罰則強化しろ,子の虐待には金くれてやれだの,いつの間にか憲法の下の平等に反しないベ―シックインカ厶も言わ
なくなって社会分断惹起して治安惡化とか.頭は回るが古い教育制度による時代遅れの固定観念による思慮のなさは直情的な橋下徹由来かな
創価学會員は.何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ━が口をきけて容認するとか本気て゛思ってるとしたら侮辱にもほどがあるそ゛!
hTTрs://i.imgur,cοm/hnli1ga.jpeg
- 146 :名無しさん@お腹いっぱい。:2023/11/20(月) 10:17:25.84 .net
- おはよ、起きた? 寝坊しちゃ、駄目だよ。お兄ちゃん
- 147 :名無しさん@お腹いっぱい。:2024/03/27(水) 20:10:40.87 .net
- メニューないから一度登録した怒りで
あんなにウェッティなのに10分の1くらいだな、何時からやるとか言えないということができたみたいな成績でも国会議員が詐欺なんて
未来永劫リモートが同じだ
- 148 :名無しさん@お腹いっぱい。:2024/03/27(水) 20:13:24.97 .net
- あったよね
対して変わらんと思うんだが、政治不能なる程の混乱させるわけにいかないだろ
総レス数 148
33 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★