私はフレックスを学ぼうとしています& Bison。私は材料を読んだことがあり、理論的レベルでどのように機能するのか理解しています。しかし、私は精神的なブロックを打つことなく、最も基本的なものを実装するように見えることはできません。 (注:私はコンパイラコースなどを取っていません...これは私の最初のものです。私は、この基本的なものが実装されたことを見れば、ずっと簡単に移動して理解することができると思います。フレックス&ビソンを使用
基本的に、私がしようとしているのは、type my_type /// some text
を見ると、my_typeの "set_text"という関数を呼び出し、そのコメントの後ろにあるものにテキストを設定するプログラムを書くことだけです。むしろ私のBisonの文法は関数を呼び出すでしょうmy_type.set_text(some text);
私はFlexとBisonを使わなくても簡単にこれを行うことができたことを理解していますが、そのポイントは学ぶことです。
私はすでにファイルを正しく設定しています...私が実装する必要があるのは、(Flexからの)トークンとBisonから取られたアクションです。これまで
マイフレックストークンパッシング:
"\/"{3} { return COMMENT; }
私のバイソンは、これまで
%token COMMENT
つかむトークンとそれはすべて私が思い付くことができます真剣です。私は他に何が必要なのか知っている...私はそれを行う方法を理解することはできません。私は私が必要であることを知っている:
は、a)の機能の正しい機能
すべてのヘルプにこのようなものを処理し、呼び出すためにバイソンの「ルール」を思い付く何か
b)のようなタイプとmy_typeを渡すために?すでに私は離れていますか?
UPDATE(これを行う方法について、さらに思考): たぶん私のバイソンファイルはこのように私のFlexファイルはそれをこれらのトークンを渡す必要があるでしょう
commented_variable: {($2).set_text($4);}
IDENTIFIER NAME COMMENT COMMENT_TEXT
のようなルールを含める必要がありますか?正しい軌道にいるのですか?
これはでこれを投稿する間違ったフォーラムのように思える私はどのサイトがより適切な見つけることができなかった場合にも、私は謝罪。別のスタックエクスチェンジサイトがより良い選択だったと思うかどうか教えてください! –