我希望你能翻译有关IT技术的内容。以下是需要翻译的内容:
我想知道语法分析和语义分析是怎样工作的。
我已经完成了解释器的词法分析和语法构建。
现在我打算为这个语法实现一个递归下降(自顶向下)解析器。
例如,我有以下语法:
<declaration> ::= <data_type> <identifier> ASSIGN <value>
所以我用 Java 编写了以下代码:
public void declaration(){
data_type();
identifier();
if(token.equals("ASSIGN")){
lexer(); //calls next token
value();
} else {
error();
}
}
假设我有三种数据类型:Int、String 和 Boolean。由于每个数据类型的值都不同(例如,布尔类型只有 true 或 false),我如何确定它是否正确地符合数据类型?我的代码的哪一部分会确定这一点?
我想知道我应该把代码放在哪里:
1.) call the semantic analysis part of my program.
2.) store my variables into the symbol table.
语法分析和语义分析同时进行吗?还是我需要先完成语法分析,然后再进行语义分析?
我真的很困惑,请帮忙。
谢谢。