我想知道語法分析和語義分析是如何工作的。語法分析和語義分析
我完成了解釋器的詞法和語法結構。
現在我要實現一個遞歸下降(自上而下)分析器這個語法
例如,我有以下的語法:
<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,字符串和布爾。由於每種數據類型的值是不同的(例如,只有布爾值爲true或false),我怎樣才能確定它是否正確地適合數據類型?我的代碼的哪一部分可以確定?
我想知道我會把代碼:
1.) call the semantic analysis part of my program.
2.) store my variables into the symbol table.
做語法分析和語義分析發生在同一時間? 或者我需要先完成語法分析,然後進行語義分析?
我真的很困惑。請幫忙。
謝謝。