在CPP中,我被分配了一个编码作业,在这里我应该创建一个矩阵计算器。考虑到我所需要做的只是矩阵计算,使用多态性,考虑内存消耗,以及一些更多的标准,这将是一个很好的任务。我在挣扎的是,这应该是一个像环境一样的控制台。
这意味着启动应用程序,我在提示符中输入命令,如:
扫描x3 \n //这将创建标记为“x”的新矩阵,并通过键入等待9个ints (可能长)。
Z=加x \n /或
Z=x+y \n
我熟悉自动机理论(在某种程度上),让它变得如此简单不应该是个问题。(这实际上与自动机无关)简单意味着每行只有一个命令,因为这就是我现在所做的。我有一些解析器类来分解命令,而不是进行必要的更改。它更像是一棵从第一个词到最后一个词的“如果-否则”树。如果我遇到无法识别的单词-语法/语法错误。
我想问的是一些关于如何使它更..。比如巴什。
因为应用程序是在bash运行的..。
第一个问题:如何实现输入命令的历史记录?当我推起衣架时,我得到了那些^[A。
第二个问题:一些提示是如何开始解析一些更复杂的命令,例如:a=b=c*(d+q)(这意味着“c”可以乘"(d + q)“,”d“可以添加到'q‘等。)bcs不能用我的解析器工作的静态方式来完成。
谢谢你们所有人。
发布于 2020-06-08 12:53:56
关于你的第一个问题,请看libreadline或libeditline。如果不想提起手指,请在rlwrap包装下运行程序。
关于第二个问题,请看Simple library or implementation for a mathematical expression evaluator。寻找一个允许您定义和使用变量的变量。
https://stackoverflow.com/questions/62261064
复制相似问题