我想寫一個小語言,我決定使用Boost Spirit。這對我來說很好。我知道我可以用精神來編寫詞法分析器,並使用解析器來創建語法樹。是否有可能在Spirit中掃描語法樹併產生結果。 (或者它只是爲了解析?)有沒有可用的函數來生成結果,還是我必須使用不同的工具?對不起,這個簡單的問題,但我真的無法找到信息,同時簡要地看一下Spirit文檔。可以提高精神掃描語法樹併產生結果嗎?
除此之外,我可以使用我自己的詞法分析器和使用Spirit編寫的解析器。 在此先感謝。
我想寫一個小語言,我決定使用Boost Spirit。這對我來說很好。我知道我可以用精神來編寫詞法分析器,並使用解析器來創建語法樹。是否有可能在Spirit中掃描語法樹併產生結果。 (或者它只是爲了解析?)有沒有可用的函數來生成結果,還是我必須使用不同的工具?對不起,這個簡單的問題,但我真的無法找到信息,同時簡要地看一下Spirit文檔。可以提高精神掃描語法樹併產生結果嗎?
除此之外,我可以使用我自己的詞法分析器和使用Spirit編寫的解析器。 在此先感謝。
確實,這確實是'不是真正的問題'的候選人。如果你沒有鏈接到文檔頁面,我只是用這個鏈接解僱了它。
碰巧,或許你已經錯過了樣本:
http://www.boost.org/doc/libs/1_51_0/libs/spirit/example/qi/compiler_tutorial/
一個簡單的表達式計算器的許多版本(也許看他們按順序)
變戲法編譯器 該編譯器能夠編譯並運行一種簡單的語言。樣品here:
/* The factorial (in conjure) */
int factorial(n)
{
if (n <= 0)
return 1;
else
return n * factorial(n-1);
}
int main(n)
{
return factorial(n);
}
問:除了這個,我可以用我自己的詞法分析器與一個使用Spi編寫的解析器RIT?
A.是的。只需公開一個令牌迭代器接口,並將其用作解析API的輸入迭代器。有關更多信息,請參閱Spirit Lex的示例。
謝謝,鏈接的內容是exaclty我正在尋找。 –