1
我正在尝试构建一个编译器,目前我已经完全迷失了。我有一个主类,并希望能够与继承申报的其他类,即class newClass extends classThatHasBeenDeclaredBefore { }
我输入看起来像在语法中获取列表
input:
class_main class_list { /* New program created */ }
和我class_list
包括我在我的程序中所有类的,也可以是空的。
一个简单的类声明如下:
class_decl:
CLASS_KWORD CLASS_ID
OPENCURLYBRACE
attributes_list
method_list
CLOSEDCURLYBRACE { /* Ok new class is created */}
| CLASS_KWORD CLASS_ID EXTENDS_KWORD CLASS_ID
OPENCURLYBRACE
attributes_list
method_list
CLOSEDCURLYBRACE { /* Has CLASS_ID Number 2 been declared before? */ }
;
有什么办法,我可以检查第二CLASS_ID
已经宣布或之前以某种方式使用?我的想法是,我的class_list
无法从我尝试添加新课程的位置获得,但我吮吸OCaml。