gpt4 book ai didi

java - 如何使用扫描仪读取递归语法

转载 作者:行者123 更新时间:2023-12-02 12:11:24 24 4
gpt4 key购买 nike

有没有办法使用Scanner类来读取语法?

假设我们有这个文件。

是否有任何逻辑方法可以让我创建一个类对象并填充它的属性和操作。我尝试使用 useDelimiter(";"),但返回完整的类而没有很好地分隔它,我应该重置吗?治疗这个问题的实际方法是什么。

CLASS Team
ATTRIBUTES
name: String
OPERATIONS
nb_players() : Integer,
trainer() : String
;

CLASS AUDIENCE
ATTRIBUTES
name : String
OPERATIONS
;

我已经创建了对象,例如我的类 Class 具有这些属性

public final String Identifier;
public final Class_Content class_content;

class_content 包含属性和操作(递归的做事方式)

最佳答案

Is there a way to use the Scanner class to read a grammar?

你几乎肯定不想阅读语法。您很可能1想要读取符合语法的文件。

您无法通过简单的调用或对 java.util.Scanner 的调用来读取符合固有递归语法的文本。您需要构建一个解析器。

您给出的示例看起来不需要递归语法来描述它。但是,我认为编写或生成解析器可能是最好的解决方案。

如果您想编写一个,网上有教程/示例:

如果您想生成一个,您可以学习并使用解析器生成器工具,例如 JavaCC 或 AntLR。

<小时/>

1 - 但如果您确实想实际阅读语法 (G),那么问题基本上是相同的。语法必须用某种语言来表达,并且该语言有语法(GG)。您需要使用语法 GG 的解析器来读取/解析语法 G。例如,EBNF 表示法具有简单的语法,因此要阅读 EBNF 表达的语法,您需要 EBNF 解析器。

关于java - 如何使用扫描仪读取递归语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46518216/

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