【发布时间】:2010-10-28 16:07:37
【问题描述】:
我有一个实际处理二进制文件的 C++ 应用程序。二进制文件是事件的集合,比如 A/B/C,当在文件中检测到事件 A 时,应用程序会在“处理程序 A”中处理事件。
现在我需要用自定义语言编写另一个脚本,该脚本与二进制文件处理正交执行。脚本可以有类似的东西,
define proc onA
{
c= QueryVariable(cat)
print ( c )
}
因此,当应用程序处理来自二进制文件的事件“A”时,应用程序必须解析此脚本文件,检查 OnA 并将 OnA proc 中的语句转换为应用程序支持的例程。例如,QueryVariable 应该将应用程序中定义的变量“cat”的值复制到变量“C”。该应用程序还应检查脚本中语言的语法/语义。我在哪里可以获得决定设计的最佳信息?我的解析树/语法知识真的变弱了。
谢谢
【问题讨论】:
-
设计的哪些部分在您的控制之下?可以修改应用吗?
-
我不清楚您是否需要编写解释器。如果你这样做,Learning to write a compiler 是指针的规范来源。
-
@beta 是的,我可以修改应用程序。解析和理解脚本的整个逻辑应该驻留在应用程序中
-
你有多少不同的活动?脚本语言定义了吗?
-
是的,事件和脚本语言已定义。
标签: c++ compiler-construction parser-generator