私は、C に似た言語用のコンパイラを構築している最中です。レクサーとパーサーの使用はある程度完了しました。現在、セマンティック分析を行おうとしており、シンボル テーブルを構築しようとしています。現在、仕様によれば、同じレキシカル レベルでの重複宣言は許可されていません。これには、レキシカル レベルごとに異なるシンボル テーブルを作成する必要がありますね。どうすればこれを行うことができますか?現在、私が持っている 1 つのシンボル テーブルは、各ノードが次のように見えるバイナリ ツリーの形式になっています。
struct tree_el
{
char *identifier;
char *type;
struct tree_el *right, *left;
}
特定のノードを別のツリーの「ルート」ノードにポイントするにはどうすればよいですか?
どんな助けでも素晴らしいでしょう!どうもありがとう。