Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    karino2
    @karino2
    コードは特に問題無いと思います。
    Cosphi
    @Cos-phi
    完全に理解しま@
    sita わ
    06書きましたの
    karino2
    @karino2
    うむ、dictの実装もdefの実装も良さそうね。

    defでliteral nameじゃなかったら落とす方がいいかもしれない。

    assert( literal_name.ltype == LITERAL_NAME);

    みたいな感じで。

    evalの中でdict_arrayをfor文で回すのは出来たら無しにしたいな。
    これってキーがあるかどうかを試しているんだよね。
    そのままdict_get呼んで戻りが0か1かで判断すれば良いんじゃないの?
    dict_get( token.u.name, &ref_token );
    みたいに。
    karino2
    @karino2
    evalのdefのあたりの処理はこれで良さそう。
    なんか意外とすんなり書けるね。
    test_dict_putとかでは終わったあとにdictをクリアしたいな。そういう関数も足して呼ぶようにしたい。
    あと、dict.cを作って辞書関連は分けたいかな。このあとハッシュ実装するのでその前準備としても。
    そのくらいかな。結構いい感じに書けていると思う。
    Cosphi
    @Cos-phi
    わかりましたわ! 一度dict.cに分けたのですけれど、dictのarrayをevacから呼ぶのが面倒でくっつけちゃいましたの
    karino2
    @karino2
    そういう点でもarrayをevalから呼ぶのはやっぱ良くないよ。
    Cosphi
    @Cos-phi
    ここでdict.cに分けるためにどうするかというと…そもそもdictの配列を外から呼ばない が正解ですわね
    karino2
    @karino2
    そうね。触る方法もなくはないけど、触らない方がいい。
    Cosphi
    @Cos-phi
    そういうことですわね!
    karino2
    @karino2
    そもそもせっかくdict_getが無かったら0を返すんだから、それを使ってやる方がいいでしょう。
    Cosphi
    @Cos-phi
    そうですわね!dict_getを使うやり方全く気が付きませんでしたのjj
    karino2
    @karino2
    やっぱりstackでいろいろ試行錯誤してたのは良かった気がするな。C言語に慣れてきた気がする。
    Cosphi
    @Cos-phi
    うふふ
    遠回りだったかしら…って思った部分がいろいろ生きてますの。C言語、どこで切っても中身たっぷりつまってますわね!
    dict.c に分離しましたの。この方が簡単ですっきりしますわね
    karino2
    @karino2
    dict.cをgit addし忘れてたりする?
    Cosphi
    @Cos-phi
    あっ!
    …その通りですわ!
    karino2
    @karino2
    defはevalの方がいい気がするんだが、なんか移動したい理由あったの?
    Cosphi
    @Cos-phi
    いえ
    karino2
    @karino2
    あんまりdictという字面からイメージされる機能とは関係ない気がしたが。
    Cosphi
    @Cos-phi
    辞書関連かと思いましたけれど…どちらかというとeval関連ですのね
    karino2
    @karino2
    コードはこれで良いと思います。こういうファイル分けたりするのはC言語の練習的にいいと思うんだよね。
    こういう作業を通して慣れてくる所はあると思うので。
    Cosphi
    @Cos-phi
    ありがとうございます。ファイルを分けるのも慣れてきましたわ。07に進みますの!
    karino2
    @karino2
    その前にちょっとコメント。
    dictとevalの依存関係の向きは気をつけた方がいい。
    こういうのは相互に依存しているのは良くない。
    現状はevalがdictを使う、という片方で良さそうで、dictはevalを使う必要は無さそう。
    という事でevalを使うunit testはeval.c側に移す方がいい。
    Cosphi
    @Cos-phi
    evalはdictを必要としますけれど、dictがevalを必要としてはいけませんのね
    karino2
    @karino2
    dict.cではdictのAPIだけでテストできるテストを書く方が良いね。
    そうそう。現状そうなっているんだが、unit testの場所だけその原則に反している。
    現状では両者の違いは些細な事なんだけど、依存の向きというのには普段から敏感になっておく方がいいので、この段階から意識した方が良いと思った。
    Cosphi
    @Cos-phi
    わかりましたわ!
    karino2
    @karino2
    他はいいと思うんで07に進んでください!
    Cosphi
    @Cos-phi
    👌