ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

Writing Compilers and Interpreters: その11

chap9は型システム。想像していたより難しい。一歩ずつ行かないと。

PROGRAM Test;
CONST
    epsilon = 1.0e-6;
TYPE
    rec = RECORD
            a : real;
	    x, y : integer;
	  END;

こういうコードに対して、シンボルテーブルをスタックにする。

Level 0がInteger等の組込型が定義されているglobal scope。Level 1がプログラムで使用する変数が定義されている Program Scope。
Lebal 2 がレコード型の変数が定義されているScope。レコード型が出てくる度にスコープを新しく作り、フィールドに他と同じ名前の変数を使えるようにする。