0

有没有办法在解析静态范围嵌套语言(例如 Pascal(允许嵌套子例程))的源代码时维护绑定信息(在源代码中遇到的名称-值对列表)?困难在于,如果有一个包含两个嵌套子例程的外层例程,则第二个解析的子例程应该“继承”全局或在外层例程中建立的绑定,而不是第一个解析的绑定常规。因此,在我看来,你不能用一元解析器来处理这个问题,但这可能是因为我不知道如何足够好地使用它们。

procedure outer;
    var somevar : integer;
    procedure inner1;
        var in1 : char;
    begin
        something;
    end;
    procedure inner2;
        var in2 : Boolean;
    begin
        something_else;  (* in1 is not visible here of course *)
    end;
begin
    inner1;
    inner2;
end;

有任何想法吗 ?我希望我解释得足够清楚。

4

0 回答 0