【发布时间】:2015-02-06 20:17:07
【问题描述】:
我问这个问题主要是因为我很好奇。
主要是为了好玩,我正在尝试用 C++ 开发一个基本的解释器和 shell。现在,我已经开发了一个基本的 shell - 我可以CD、dir 等等,我问这个主要是为了学习。 :)
作为解释器的一部分,我想保存用户声明的变量。即:param x = 'siosidf'; 或 param x = 5;。
我还希望能够进行纯计算,即72*32 或23 + 82 * 2 应输出2304 或187,recpectivley。
请注意,我还希望能够将运算符应用于变量,如下所示:
param x = 72;
x = x + 23;
print x;
需要输出95。
我的问题分为两部分:
首先,您将如何(不必是实际代码,但如果您这样做,请在 C++ 中进行 :))实现变量保存系统? (还请解释原因,因为我这样做是为了学习。:))
第二,你将如何区分不同的计算/声明/调用并有效地以各种不同的形式执行它们? (空格,例如 72*83 与 72 * 83。)
【问题讨论】:
-
您可能想找到一本关于编写口译员的好书或课程。
-
这是一个整洁的项目,但是这个问题不是 StackOverflow 常见问题类型的问题 :(
-
@MooingDuck 为什么会这样?这真的是关于编程和概念的,我认为......如果它不适合这里,我应该在哪里问它?
-
@A.Abramov “为什么会这样?” 因为它对于可能的解决方案来说太宽泛了。您可以使用例如
std::map<std::string,int>用于保存变量值,但会有很多更好、更通用的解决方案可用。 -
@glennjackman - 这看起来更像是一个实现问题,最好在 StackOverflow 上回答。
标签: c++ string shell interpreter