用Happy解析并添加语义/绑定

时间:2014-01-03 21:53:02

标签: parsing haskell data-binding happy

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

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;

有什么想法吗?我希望我能够清楚地解释它。

0 个答案:

没有答案