java - 关于在运行时执行/解析自定义方法的建议 - Java

标签 java parsing

因此,我们定义了一组 API,最终用户(准确地说是职能人员)将使用它们来执行数据转换。例如,对于输入为 Name = "XyZ",功能人员可以定义一个转换规则,例如 @Text.UpperCase(Name),以将他们获得的 name 的每个值转换为大写。它的工作方式是,@ 之后定义的每个单词都是数据类型,. 之后定义的每个单词都是一个方法,后跟括号和一个值。虽然这是我们的计划,但我正在尝试弄清楚是否:

1> 我们真的需要一个语法来解析这些输入吗?
2> 如何安排嵌套调用,例如 @Text.UpperCase(@Text.trim("XyZ "))

最佳答案

您应该定义语法以确保您知道允许用户输入的内容。

如果您的语法足够简单(例如,您的用户可以输入的唯一内容是对命名变量的有效函数调用),您可能不需要解析器生成器。在这种情况下,临时解析可能就足够了。这对于您的简单示例来说已经足够了。

如果您的语法具有适度的复杂性(例如嵌套调用),you can code a recursive descent parser pretty easily that will do the job.

如果您的语法变得复杂(用户肯定会要求更多功能),您可能需要一个解析器生成器。

如果是我,按照你所说的要求,我会在编写一个语法分析器生成器接受的语法后构建递归下降版本。这在用户手册中也是有用的文档。

关于java - 关于在运行时执行/解析自定义方法的建议 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9624771/

相关文章:

java - 当我选择 TabItem 时它位于中心

java - Maven 中具有相同 Artifact 的多个存储库

perl - Marpa::R2 内存泄漏

python删除字符串中的图像只获取字母和数字

Python帮助从文本文件中获取IP地址范围,然后输出该范围内的每个IP地址

java - 为 YQL 生成 URL

java - 如何打开整个MP3目录?

javascript - 解析字符串 : extracting words and phrases [JavaScript]

Java 服务器猜谜游戏 - 多客户端问题

parsing - CSS lint 解析错误 - 预期的 LBRACE 错误