小编kec*_*hap的帖子

如何制作符号表

我们有一个编译器的作业.我们已经进行了词法和语法分析,但我们仍然坚持生成中间代码.我们意识到我们必须实现一个符号表,以便进行中间代码生成,我们不知道,如何做以及它包含什么.

鉴于下面的代码,符号表应包含什么?(代码用教育语言编写,如下所述)

另外我们如何在符号表中实现范围?

<PROGRAM> ::= PROGRAM ID <BLOCK> ENDPROGRAM
<BLOCK> ::= {<DECLARATIONS> <SUBPROGRAMS> <SEQUENCE>}
<DECLARATIONS> ::= ? | DECLARE <VARLIST> ENDDECLARE
<VARLIST> ::= ? | ID ( , ID )*
<SUBPROGRAMS> ::= ( <PROCORFUNC> ) *
<PROCORFUNC> ::= PROCEDURE ID <PROCORFUNCBODY> ENDPROCEDURE |
FUNCTION ID <PROCORFUNCBODY> ENDFUNCTION
<PROCORFUNCBODY> ::= <FORMALPARS> <BLOCK>
<FORMALPARS> ::= ? | ( <FORMALPARLIST> )
<FORMALPARLIST> ::= <FORMALPARITEM> ( , <FORMALPARITEM> )*
<FORMALPARITEM> ::= IN ID | INOUT ID
<SEQUENCE> ::= <STATEMENT> ( ; <STATEMENT> )*
<STATEMENT> …
Run Code Online (Sandbox Code Playgroud)

java compiler-construction symbol-table

7
推荐指数
1
解决办法
7334
查看次数

标签 统计

compiler-construction ×1

java ×1

symbol-table ×1