在线操作员重载操作员 重载是指一个术语 创建新的运营商 拥有你的一个功能 现有职能
所以例如在输入重载之后 * #POW,3 *#2将导致9。
内联函数创建另外 对于运算符重载,你也会 需要支持内联功能 creation4。换句话说,你会的 支持创建新功能, 使用以下语法:inline _FUNC {@ arg1,@ arg2,...}
所以,我不知道从哪里开始。如果有人可以链接我某处,我可以阅读有关已知技术或现有Java工具的信息 这可能对我有所帮助,那将是非常有帮助的。我甚至都不知道该找什么。谢谢!
答案 0 :(得分:0)
您需要在 lexer 中执行词法分析时处理新关键字。
例如,如果用户输入overload *# POW
,您的词法分析者应该能够识别3个令牌:“重载”,“*#”和“POW”。类似地,对于函数创建,你的词法分析器需要对花括号进行标记(花括号之间的空格/换行量是无关紧要的)。
接下来,您需要修改解析器并构建语法树。例如,在3 *# 2
上执行语法分析之后,您的语法树应该能够识别运算符是什么以及操作数是什么。
最后一步是运行语法树并解释/评估结果。
对于工具,有词法分析器和解析器生成器。如果您已经为lexer和解析器提供了一些现有代码,我建议您避免使用这些工具,只需对现有代码进行必要的修改。