6
因此,可以說,我有以下語法:如何解析子節點?
let_stat = "let" iden [ "=" expr ];
if_stat = "if" expr "->" stat;
stat = let_stat | if_stat;
這將是下面的僞代碼雜交:
let_stat parseLetStat() {
if token is "let" {
consume token
if token is identifier {
char *value = consumetoken.value
let_stat let = new let_stat;
let.name = value;
if token is "=" {
let.value = parseExpression;
}
return let
}
}
}
if_stat parseIfStat() {
if token is "if" {
consume token
expression expr = parseExpression;
block block = parseBlock;
if_stat ifstmt = new if_stat
ifstmt.expr = expr
ifstmt.block = block
return ifstmt
}
}
stat parseStatement() {
}
些什麼呢parseStatement
功能嗎?它將如何選擇調用哪個函數,if_stat函數或let_stat函數?或者我會把所有的代碼放到一個函數中?我不太明白,任何幫助都會很好,因爲我很困惑。
哦,我明白了,完美。當然,從唯一的艾拉巴克斯特回答,你似乎回答了很多我的問題:)謝謝! :) – 2015-03-30 18:57:06
@ user3839220:您在我的草坪上提問: - } – 2015-03-30 22:27:41