忍者ブログ
  • 2025.01
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 2025.03
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2025/02/09 05:14 】 |
ただいま構文解析中。
構文解析中。
前回の構文解析で、わからなかったところが解決したので、開発ノートから転載。
どうやらbisonで作った実行ファイルにファイルを読み込ませるにはFILE *yyinにファイルポインタを読み込ませれ
ばいいらしい。

うん。意外と簡単だった。

まあ、それはさておき、現在はエラー回避のコードをガリガリいじる。
でも、syntax errorが出る。うぜぇ。
調べてみると、gccのオプションに-DYYERROR_VERBOSEを指定すればいいらしい。
verbose 多弁な、くどい
どうやら、これで少しだけ細かなエラーをはき出すらしい。

試してみたところ、以下のようにエラーが出た。
syntax error, unexpected NL, expecting $end
NLは自分で作った改行コードなので気にしないが、$endって何よ?
終端文字が無いってことかね?

よくわからん。なんか他の部分にもエラーが波及している感じがするのでまた対策しようかな。

・・・カテゴリは日記でも良かった気がする。うん。

PR
【2011/06/20 09:45 】 | 構文解析 | コメント(0) | トラックバック()
近況報告。bisonはどう使えばいいんだ?
アプリケーションの開発で、クラス間関係をまとめる必要を感じたので、現在は簡易doxygenに挑戦中。

といっても暗中模索状態。
ツリー状にクラスダイアグラムを作成するというCUIプログラムを構築したが、現在は
ソースファイルから自動でクラスダイアグラムを作成できないか研究中。

しかし、flex and bisonで構文解析をしてもソースファイルに読み込むことが出来ない!
どうやるんだろ、これ。やっぱり本買わないと駄目かな?

まあ、パイプライン処理でこうすることもできるけど
./myprog < (sorce)
ただ、プログラムにパイプライン処理をさせるのは反則な感じがするんだよなー。
無駄にOS依存にしたくないし。

いっそ凍結して別のプログラム作ろうかな。面倒くさい。
でも、構文解析のツールが使えるっていうのはプログラマとしては大きなスキルになるんだよな。

誰かbison(yacc)のファイル.yに何をすればファイルを読み込めるのか教えて欲しいなー。

ちなみに、boostは本を買ってきたが糞の訳にも立たなかったわ。
あの糞ライブラリが・・・使えねぇ・・・。

【2011/06/19 12:49 】 | 構文解析 | コメント(0) | トラックバック()
char -> std::stringの変換2
寝ぼけから覚めたよ。ああ。

std::string tmp(1,p);
これでいいんだ。ああ。
さて、寝よ。

ああ、そうそう。
この方法だとp==\0だとtmp.length()で1を返すから気をつけてくれ。
あえて\0を警戒するようならこうすればいい。
std::string tmp(1,p);
tmp = tmp.c_str();
一応私がテストしたところこれでゴミはとれる。

しかし、c++のchar->std::string変換は嘘が多いな。
ほかのサイトでいくつもコンパイルできなくて癪に障ったよ。
せめてテストぐらいしろっての。イラッ☆
眠気で語調が乱れてるがもう寝る。おやすm
【2011/01/09 07:21 】 | C++ | コメント(0) | トラックバック()
char -> std::stringの変換
ああ、面倒くさいから俺はやっちまったぜ。
c++の迷問 charとstd::stringの変換をよぉ……

std::string ctos(char c){
    char a[2];
    a[0] = c;
    a[1] = '\n';
    return a;
}

うん。なんかいい方法があるかもしれんが、もういい。
俺は寝る。

【2011/01/09 06:56 】 | C++ | コメント(0) | トラックバック()
なんとか生きてる件。
 ソースが消滅したのでC++に本格的に移行している。
うーん、なんとかなるもんだ。

今はパチスロを製作中。
リールに使用する連環Intを作成しているが、これが少し難しい。
0-20までの値を使用しているのだが、その差をとるのに以下の式になる。
    //int Minus(int cr_n){
    //    int ret;
    //    IF(ABS(A-B)>10){
    //        IF(A-B>10){
    //            A-B-21
    //        }else{
    //            A-B+21
    //        }
    //    }else{
    //        A-B   
    //    }
    //    return
    //}
まあ、エクセルの式をこれから直すんだが、なーんか不愉快な数式だなぁって思っている。
もっとスマートな数式はないかね?

連環intの数式なんてググっても連環の計しか出てこないし。
うん、やってらんねぇーyo!

【2011/01/06 22:40 】 | 日記 | コメント(0) | トラックバック()
<<前ページ | ホーム | 次ページ>>