Java 实现运算符重载和内联函数

Java 实现运算符重载和内联函数,java,overloading,Java,Overloading,我正在制作一个小规模的翻译。到目前为止,我有能力计算数学表达式,包括 变量和几个函数,如MOD、MAX等。。。。我需要添加两个功能: 在线运算符重载运算符 重载是指 创建新的运营商 具有您的 现有职能 例如,在输入重载之后 *战俘,3*2将得到9 此外,还要创建内联函数 对于运算符重载,您还将 需要支持内联函数吗 创意4。换句话说,你会的 支持创建新功能, 使用以下语法:inline _FUNC{@arg1,@arg2,…} 所以,我不知道从哪里开始。如果有人能把我链接到某个地方,我就能阅读到有

我正在制作一个小规模的翻译。到目前为止,我有能力计算数学表达式,包括 变量和几个函数,如MOD、MAX等。。。。我需要添加两个功能:

在线运算符重载运算符 重载是指 创建新的运营商 具有您的 现有职能

例如,在输入重载之后 *战俘,3*2将得到9

此外,还要创建内联函数 对于运算符重载,您还将 需要支持内联函数吗 创意4。换句话说,你会的 支持创建新功能, 使用以下语法:inline _FUNC{@arg1,@arg2,…}

所以,我不知道从哪里开始。如果有人能把我链接到某个地方,我就能阅读到有关已知技术或现有java工具的信息
那可能对我有帮助,那会很有帮助的。我甚至不知道该找什么。谢谢

在lexer中执行词法分析时,需要处理新的关键字

例如,如果用户输入重载*POW,您的lexer应该能够识别3个标记:重载、*和POW。类似地,对于函数创建,lexer需要标记花括号,花括号之间的空格/换行符的数量无关紧要

接下来,您需要修改解析器并构建语法树。例如,在对3*2执行语法分析后,语法树应该能够识别哪些是运算符,哪些是操作数

最后一步是遍历语法树并解释/评估结果


至于工具,有lexer分析器和解析器生成器。如果您已经有了一些用于词法分析器和解析器的现有代码,我建议您避免使用这些工具,只需对现有代码进行必要的修改。

您以前问过13个问题,但您甚至没有接受其中一个问题。这是家庭作业吗?如果是这样,请在问题上贴上家庭作业标签。我不知道我应该接受。我现在来研究一下,这是一个非常糟糕的运算符重载定义。运算符重载通常是指根据操作数的某些上下文获取现有运算符并为其分配不同的功能。你要找的是同义词操作符或别名。我复制粘贴了作业中的内容,所以这就是我需要做的