C++ Interpreter/Shell
C++ Interpreter/Shell
我问这个问题主要是因为我很好奇。
主要是为了好玩,我正在尝试用 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++ :) )实现变量保存系统? (也请解释为什么,因为我这样做是为了学习。:))
第二个,你如何区分不同的calculations/declarations/calls并有效地以各种不同的形式执行它们? (空格,例如 72*83
与 72 * 83
。)
- 使用地图。
- 使用解析器。 Boost.Spirit会是个不错的选择。
我问这个问题主要是因为我很好奇。
主要是为了好玩,我正在尝试用 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++ :) )实现变量保存系统? (也请解释为什么,因为我这样做是为了学习。:))
第二个,你如何区分不同的calculations/declarations/calls并有效地以各种不同的形式执行它们? (空格,例如 72*83
与 72 * 83
。)
- 使用地图。
- 使用解析器。 Boost.Spirit会是个不错的选择。