我需要編寫一個簡單的解析器,將令牌轉換爲解析器樹。 我已經寫了返回令牌的LexicalAnalyzer。現在,我想要 爲「if and while」語句(開始時)編寫規則,因此我可以將此規則傳遞給解析器並創建樹。 所以我需要以這種方式編寫解析器,所以我可以編寫新的規則。如何爲if和while語句編寫簡單的解析器?
你能告訴我如何在C#中實現它嗎?你能舉個例子嗎?
我需要編寫一個簡單的解析器,將令牌轉換爲解析器樹。 我已經寫了返回令牌的LexicalAnalyzer。現在,我想要 爲「if and while」語句(開始時)編寫規則,因此我可以將此規則傳遞給解析器並創建樹。 所以我需要以這種方式編寫解析器,所以我可以編寫新的規則。如何爲if和while語句編寫簡單的解析器?
你能告訴我如何在C#中實現它嗎?你能舉個例子嗎?
在遞歸下降解析器中,如果您具有常規的塊和表達式解析器,則很容易實現這些語句。在僞代碼,他們基本上是:
void ParseIf()
{
Match("if");
Match("(");
ParseExpression();
Match(")");
ParseBlock();
}
和
void ParseWhile()
{
Parse("while");
Parse("(");
ParseExpression();
Parse(")");
ParseBlock();
}
我讀了所有類型的假,但不知道如何開始實現這一點。我看到像a:b |的定義c,c:終端。如果我正確地理解了這一點,這意味着規則,但是如何實現或者我錯誤的方式 – theateist