C++ Interpreter/Shell

C++ Interpreter/Shell

我问这个问题主要是因为我很好奇。

主要是为了好玩,我正在尝试用 C++ 开发一个基本的解释器 & shell。现在,我已经开发了一个基本的 shell - 我可以 CDdir 等等,我问这个主要是为了学习。 :)

作为解释器的一部分,我想保存用户声明的变量。即:param x = 'siosidf';param x = 5;.

我也希望能够进行 纯计算 ,即 72*3223 + 82 * 2 应该输出 2304187, recpectivley.

请注意,我还希望能够将 运算符应用于变量 ,如下所示:

param x = 72;

x = x + 23;

print x;

需要输出95.

我的问题分为两部分:

首先,你将如何(不必是实际代码,但如果你这样做,请用 C++ :) )实现变量保存系统? (也请解释为什么,因为我这样做是为了学习。:))

第二个,你如何区分不同的calculations/declarations/calls并有效地以各种不同的形式执行它们? (空格,例如 72*8372 * 83。)

  1. 使用地图。
  2. 使用解析器。 Boost.Spirit会是个不错的选择。