gpt4 book ai didi

delphi - ANTLR4 的 Delphi 语法问题

转载 作者:行者123 更新时间:2023-12-02 06:53:48 25 4
gpt4 key购买 nike

我找到了ANTLR3 Delphi Grammar对于 Delphi,我正在尝试转换为 ANTLR4。但我有一个我不明白的奇怪问题。我创建了一个存储库 ANTRL4 Delphi Grammar

大多数人的想法似乎都有效,但如果我有一个包含以下内容的简单单元:

unit TestParser;

interface

procedure Dim(var dd: string; const Dim1: Integer; const Dim2: Integer); overload;

implementation

procedure Dim(var dd: string; const Dim1: Integer; const Dim2: Integer); overload;
begin
//do something
end;

end.

当找到第一个过程关键字时,将在interfaceDecl 中调用procDecl。但是一旦 var 和/或 const 我到达它就会破坏 procDecl 并启动 varSection/constSection 而不是完成 procDecl

我必须承认我对 ANTLR 相当陌生,因此我们将不胜感激。

最佳答案

整个问题取决于变量名dd

由于某种原因,解析器似乎将其误认为是十六进制数。当您将名称更改为 123 之类的名称时,您会得到相同的效果。

一旦您更改名称,使其不会被误认为是数字(例如,只需添加 g-z 范围内的字符),一切就都很好。但为什么会发生这种情况我无法解释。

顺便说一句:感谢 Delphi.g4。

关于delphi - ANTLR4 的 Delphi 语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42620598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com