有5條規則。我必須在初始化或雙重聲明中檢查不兼容的類型。我知道我需要在符號表中。我知道$ i。和其他所有東西。但我沒有任何想法如何實現代碼。對不起我的英語,我不是母語。我需要使用flex/bison進行語義檢查
1)prog:
PROGMY IDENT ';' decls BEGINMY stats ENDMY '.' ;
2) decl:
CONSTMY IDENT '=' NUM ';' {}
|
VARMY VARFULL {}
|
error ';' ;
3) VARFULL:
MYPEREMEN ':' MYTYPE ';' {}
|
VARFULL MYPEREMEN ':' MYTYPE ';'
4) MYTYPE :
MYINT {} //int
|
MYBOOL {} //bool
;
5) MYPEREMEN :
IDENT {}
|
MYPEREMEN ',' IDENT {}
;