Я пытаюсь создать компилятор и в настоящий момент довольно утерян. У меня есть основной класс и хочу, чтобы иметь возможность объявить дополнительные классы с наследованием, то есть 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.