lex/yacc を使用して作成しているマイクロプロセッサ用のアセンブラを書いています。
アセンブラ コードにラベルを実装したいと考えています。そのための良い方法は、{name:line#} の形式でラベルの辞書を作成することです。次に、ラベルを挿入するときに、ラベルが既に定義されている場合はエラーであることを確認できます。
では、lex/yacc で辞書構造を使用するにはどうすればよいでしょうか?
lex/yacc を使用して作成しているマイクロプロセッサ用のアセンブラを書いています。
アセンブラ コードにラベルを実装したいと考えています。そのための良い方法は、{name:line#} の形式でラベルの辞書を作成することです。次に、ラベルを挿入するときに、ラベルが既に定義されている場合はエラーであることを確認できます。
では、lex/yacc で辞書構造を使用するにはどうすればよいでしょうか?
さまざまなハッシュ テーブルの実装を見て、気に入ったものを見つけてください。
ラベル用?ファイル ポインターを使用して構造体を作成し、見つかったラベルの位置に初期化します。そして、ラベル宣言に出くわしたら、そのポインターにアクセスし、その空白を locctr で埋めます。