【发布时间】:2013-04-26 18:28:11
【问题描述】:
我正在创建 CLI,但无法解析如下代码:
io.print("Hello World!");
如何在不滥用 if 语句逐个字符解析代码的情况下解析这样的内容?
我希望控制台在窗口上打印这个:
Hello World!
【问题讨论】:
-
传统上,您首先编写一个标记器(或找到一个合适的标记器)和一个将标记组合成 AST 或“理解”语法的语法,然后评估该语法。
-
我已经使用字符串向量和字符串流编写了我的标记器。所以我能做的就是使用 IF 语句?
-
首先,您不想编写 C++ 编译器。要么设计一种更简单的语言,要么嵌入/生成现有的 C++ 编译器。对于典型的脚本任务,前者几乎是无限可取的。
-
@JerryCoffin 同意,尽管对于典型的脚本任务,使用现有语言几乎是无限可取的!
-
这个问题是在问一个类似于“我如何写Quake?我在屏幕上画了一个像素”的问题。 -- 回答“如何为像 C++ 这样的语言编写完整的编译器”的范围相当大。
标签: c++ windows console codeblocks