我试图用我的简单语言在C ++中编写编译器,但我不确定当有问题的语言声明用户定义的类时我应该如何声明用户定义的类
例如,在这种假设的语言中,用户写道:
CLASS Foo {
int bar;
}
我的编译器如何读取它然后随后在C ++中生成等价物?我希望编译器在C ++中执行以下代码:
class Foo {
int bar;
}
语法相同。这在C ++中是否可行?
答案 0 :(得分:0)
您所描述的是转换器,将一种语言的来源转换为另一种语言的来源,在本例中为C ++。
要实现这一目标,您需要了解如何将语言的语义映射到目标语言。因此,当您获得机器时,从小开始并迭代地扩展。您将面临挑战,仅举几例:
include
可以在其他文件中发表声明吗?一旦你弄清楚了基础知识,你就需要在一个有效的框架中将它全部隐藏起来。就像编译器一样,您将拥有文件管理,符号管理和解决方案等。最后,您需要连接工具链。我假设您希望用户体验为: