我正在尝试处理 C# 项目,我希望允许用户通过在编辑器中键入代码来动态运行代码。因此,考虑到这一点,我考虑编写某种脚本编辑器、解析器和评估器,但想先与其他人核实一下,以防我只是重新发明轮子?
所以,我的想法是/是...
- 编写一个语法高亮编辑器,我可以在其中编写代码,包括使用自定义关键字。
- 向编辑器添加逻辑,以便它能够根据编辑器中的文本格式化内容。
- 有一种“操作”已输入文本的方法。
例如,如果我输入以下...
if (Shape.IsACube())
{
// Do some cube stuff
}
else if (Shape.Area(height, length, width) > 40)
{
// Do some large area stuff
}
...然后我希望能够动态运行该代码,就好像它是应用程序的一部分一样。
我希望所有这些都是有道理的。有什么想法吗?