1 名前:SystemX [02/09/12 12:28.net] yaccとは、"yet another compiler-compiler"(さらにもう一つのコンパイラ-コンパイラ)という意味で、 yaccの開発者である、スティーヴ・ジョンソン氏が当時(1972年頃)に存在していた同種のプログラムの多さを 皮肉った言葉に由来している。yaccはその中で生き残ったごく少数のうちの一つである。 lexはyaccがパーサーを作成するのと同様の方法で字句解析ルーチンを作る。即ち、自分の言語の字句規則の 仕様を正規表現と、その正規表現に一致する文字列が見つかった時に、実行すべきCプログラムにより記述すればよい。 lexとyaccは、我々が既に書いてきた字句解析ルーチンと同一のメカニズムで、共同して働く。
105 名前:名無しさん@お腹いっぱい。 [2008/10/30(木) 23:58:54 .net] c言語でコメント/*から*/を字句解析できないようにさせるには、 規則部にどういう正規表現をすればいいですか? /* ・・・・・・ */ となっています。
106 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/31(金) 00:52:06 .net] lex? flexのFAQに、 How can I match C-style comments? ってのがあるよ。
107 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/10/31(金) 12:09:51 .net] flex だったらそれでいいね。 一般的には、 非欲張り型量指定子 *? が使えるなら /\*.*?\*/ でおk 使えない場合は少々厄介で、 /\*([^*]|\*+[^/*])*\*+/ 詳説正規表現の第二版だと 6.6.8.3 にある。
108 名前:名無しさん@お腹いっぱい。 [2008/11/01(土) 00:04:56 .net] >>105 ,106 どうもありがとうございました。 大変恐縮なんですが規則部に入れるバージョンで教えてもらえないですか? "/*" から始まると思いますが・・・
109 名前:名無しさん@お腹いっぱい。 [2008/11/01(土) 00:35:06 .net] >>105 ,106 lex用に直してコンパイルしましたらできました。 "/*"+[^/*]*+"*/ また教えて下さい。
110 名前:名無しさん@お腹いっぱい。 [2008/11/01(土) 01:56:53 .net] ファイルからプログラムを読み込ませてそのプログラムに出てくる演算子とか 識別子の数を一番下に表示させるようにするにはどうしたらいいですか?
111 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/01(土) 09:43:16 .net] パーズしろ。
112 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/01(土) 16:25:17 .net] C言語のコメントってプリプロセッサが空白に置換するものだよ。
113 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/02(日) 11:08:35 .net] サーバの役割のひとつに クライアントからの電文をプロトコルにしたがって解析して、処理し、返答を 返すという役割があるかと思います。 パーサジェネレータをつかって、簡単に上記のような枠組みを 実装するようなことはできないでしょうか。 インタプリタをパーサジェネレータを使って実装するような流れはあるのに、 drubyやerlang、アクターモデルなどの実装方法とパーサジェネレータが なぜか結び付けられていないのが不思議に思われます。
114 名前:名無しさん@お腹いっぱい。 [2008/11/02(日) 11:42:33 .net] >>112 思いて学ばざれば則ち殆うし。
115 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/02(日) 12:25:37 .net] >>112 つ ASN.1 ←>>112 の言う方向の最後の試み つ object serialization ←もうそれはOOの方でやっちゃいますわ
116 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/02(日) 12:39:46 .net] パーサジェネレータだけ知ってて状態機械知らないの?
117 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/02(日) 17:01:54 .net] >>114 CORBAキター
118 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/02(日) 20:36:42 .net] 本格的な構文解析が必要な通信プロトコルを設計するのがそもそも間違いですから
119 名前:名無しさん@お腹いっぱい。 [2008/11/05(水) 21:20:53 .net] >>109 おまえ信大の学生だろ。それは簡単だよ。 コメントを読み飛ばすのは108を書けばOK
120 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/11/06(木) 17:46:14 .net] 学生か 図書館にyaccの解説本の1冊ぐらいあるだろ
121 名前:名無しさん@お腹いっぱい。 mailto:sage [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 これから普及していくのか)を考えよう。
122 名前:名無しさん@お腹いっぱい。 mailto:sage [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はさっぱりだ
123 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/05(水) 17:03:07 .net] _yylexがない、っていうんだから、yylex()を定義すればいいんじゃないの?
124 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/08/05(水) 17:27:41 .net] なんとか121はこえたのでパースエラーと戦ってくる >>122 ありがとう
125 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/11/11(木) 15:15:36 .net] Cのラベルみたいなもの 任意の文字列 最後に特殊文字(:とか) はlex側でなくてyacc側で認識させるものなの?
126 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/11/11(木) 15:20:20 .net] labelname ':' とyaccで扱うのが普通じゃないか?
127 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/11/11(木) 17:01:03 .net] ケースバイケースだと思うけど。 C 言語の場合、 a ? b : c; の一部という場合があるので、<識別子> ":" を、lex で無条件に <ラベル> にするわけにはいかない。
128 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/11/17(水) 11:36:58 .net] >>91 >>93 いやyacc, lexを使ってインタープリターは作れる。 GUIのテストをするための、カーソル移動、マウスクリックの シミュレートをするプログラムを作ったことがあり、 インタラクティブに画面上の移動、パスの記録などを できるようにしたことがある。 マニュアルをよく読めば見当がつくはず。yylexだっけ、インプットストリームの 切り替え部分に気をつければずっと読み込みをしながら、 一行コマンドラインの処理をしつつ、エラーの処理もyaccで行なって インタープリターはつくれますよ。 (あ、一行でコマンドが終わるとするとかなり楽になる。 セミコロンみたいな シンボルが来るまで終わらないというのはちょっと うれしくない。一行でコマンドが終わって、どうしても必要なら行末の バックスラッシュで継続行とかするのがよい。) インタープリターで対話的に作ったスクリプトを、再度編集しなおして 標準入力から放り込めば、GUIプログラムのパッケージの テストができるというものでした。
129 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/11/30(火) 15:31:10 .net] BNFCもいいな
130 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/12/10(金) 10:56:06 .net] 命令文2つを1つに変換したい statmnt1 argX argY statmnt2 argY を statmntA argX argY にしたい。 argYが一致しない場合は statmnt1 → statmntA2 statmnt2 → statmntB にしたい。しかしうまい書き方が思いつかない
131 名前: 忍法帖【Lv=40,xxxPT】(3+0:8) 【34.6m】 電脳プリオン ◆3YKmpu7JR7Ic mailto:sage [2012/11/10(土) 22:30:58.44 BE:243245838-PLT(12079).net] スレの趣旨がわからん
132 名前:名無しさん@お腹いっぱい。 [2013/06/01(土) 16:18:40.79 .net] 質問です。 www.w3.org/TR/CSS21/grammar.html このページでYACCの文法が載ってますが、拡張されているのでそのまま 使えません。この中で、 expr : term [ operator? term ]* はどうやってYACC文法で書けばいいでしょうか?
133 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/01(土) 19:22:48.72 .net] 一般にA*は、 X = X = A | X A?は、 X = X = A と定義したXで置き換えられる。
134 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/01(土) 22:32:34.47 .net] その後>>132 のいうように分割して定義する事がわかったので、そうして 定義していますが、複雑になるとかなり分割数が増えるので面倒ですね…
135 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/02(日) 09:21:11.71 .net] めんどうだから拡張されてるんじゃないの。
136 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/02(日) 14:59:49.67 .net] www.w3.org/TR/CSS21/grammar.html このYACC文法がそのまま入力出来るツールがあってほしいね。
137 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/03(月) 01:08:35.25 .net] 文法は違うけど、 parsec辺りは拡張BNFがOKで、 自然な記述でアクションも定義できる。
138 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/04(火) 19:07:57.43 .net] >>135 > www.w3.org/TR/CSS21/grammar.html ラッパ作りゃいいんじゃね?
139 名前:名無しさん@お腹いっぱい。 mailto:sage [2013/06/05(水) 21:48:31.36 .net] コンパイラコンパイラのコンパイラコンパイラになるのか?
140 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/20(水) 01:28:56.56 .net] Yet Another Compiler Compiler Compiler
141 名前:名無しさん@お腹いっぱい。 [2017/03/19(日) 19:56:12.87 .net] コンパイラコンパイラのように、OSの仕様を記述すればそれでOSがたちまち できてくるというようなツールはあるの?
142 名前:名無しさん@お腹いっぱい。 [2017/12/29(金) 09:42:38.56 .net] 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 QU1SBJJIM5
143 名前:名無しさん@お腹いっぱい。 [2018/05/22(火) 04:23:17.03 .net] 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方 時間がある方はみてもいいかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 74Q1F
144 名前:名無しさん@お腹いっぱい。 [2018/09/27(木) 19:17:33.25 .net] lex&yacc flex&bison
145 名前:名無しさん@お腹いっぱい。 mailto:sage [2019/07/05(金) 02:46:41.67 .net] yacc&lexでXMLパーサを作る過程などが公開されている記事ご存知ないでしょうか。 英語でも構いません。
146 名前:名無しさん@お腹いっぱい。 [2023/05/27(土) 09:24:00.49 ID:vht5dv9t+] 他人の権利を強奪して私腹を肥やす強盗殺人政治やってる論理もクソもないロクに勉強してない議員だらけ無能外道集団公明党と違って維新 は最低限の知的能力を有してる奴か゛多いのは橋下徹の意向て゛容赦なく知的能力の足切りやってる成果なんだろうけど,いい年して玉遊びとか してる無能を讃えてみたり.曰本に原爆落とした世界最悪のならす゛者国家の覇権主義に利用されてるウクライナ状態になるリスクを無視して 軍拡推進してみたり.危険極まりない原発推進すれは゛電氣料金は下がるだのほさ゛きか゛ら鉄道のзO倍以上もの非効率クソ航空機によって莫大 な石油無駄に燃やしてエネ価格暴騰させて温室効果ガス倍増させて氣侯変動させて災害連發させて貿易赤字に,そんなバカの象徴萬博を誇っ てみたり,騒音によって知的産業に威力業務妨害して壞滅させて原發とか笑わせるレヘ゛ルにまて゛日本の技術カ低下させて、勉強妨害して犯罪 惹起しながら動物虐待は罰則強化しろ,子の虐待には金くれてやれだの,いつの間にか憲法の下の平等に反しないベ―シックインカ厶も言わ なくなって社会分断惹起して治安惡化とか.頭は回るが古い教育制度による時代遅れの固定観念による思慮のなさは直情的な橋下徹由来かな 創価学會員は.何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を 池田センセ━が口をきけて容認するとか本気て゛思ってるとしたら侮辱にもほどがあるそ゛! hTTрs://i.imgur,cοm/hnli1ga.jpeg
147 名前:名無しさん@お腹いっぱい。 mailto:sage [2023/11/20(月) 10:17:25.84 .net] おはよ、起きた? 寝坊しちゃ、駄目だよ。お兄ちゃん
148 名前:名無しさん@お腹いっぱい。 [2024/03/27(水) 20:10:40.87 .net] メニューないから一度登録した怒りで あんなにウェッティなのに10分の1くらいだな、何時からやるとか言えないということができたみたいな成績でも国会議員が詐欺なんて 未来永劫リモートが同じだ
149 名前:名無しさん@お腹いっぱい。 [2024/03/27(水) 20:13:24.97 .net] あったよね 対して変わらんと思うんだが、政治不能なる程の混乱させるわけにいかないだろ
150 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています