我正在使用 ANTLR4,并为我正在设计的一种新语言编写了词法分析器和解析器语法。我想通过解析该语言来创建一个 Java POJO。
语
{dept dept-name="human resources"}
{emp name="john doe" age=23 address="123 Main St, Spring Field, CO 12345" /}
{/dept}
Java POJO
public class Department {
private final class name;
private final List<Employee>
}
public class Employee {
private final String name;
private final int age;
private final Address address;
}
public class Address {
private final String streetAddress;
private final String city;
private final String state;
private final int zip;
private final int zipExt;
}
我已经能够正确定义语法。我能够使用 Antlr 工具生成访问者类。Visitor 类采用泛型类型 T,并在访问每个节点时返回类型 T 的实例。我需要在访问 AST 的地址部分时返回一个地址,而在访问 AST 的员工部分时需要返回一个员工。所以我不确定访问者实现的类型 T 应该是什么。
我对如何通过实现 ANTLR 给出的访问者来构建上述部门 POJO 感到困惑。
PS:请注意,我不能更改部门、员工、地址类。另外,请不要建议使用 XML 或 JSON。我只是想了解如何在 ANTLR 中解决这样的问题。
慕斯709654
相关分类