1
當我開始堆棧溢出,是時候來這裏問我想通的時候;)我不斷收到堆棧溢出試圖用精神來分析的東西
我想學習如何使用升壓精神權現在。我已經想出了基本的東西。由於我有K & R方便(其中包含C的語法),我決定看看我是否可以成爲該語言的接受者。無論如何,這或多或少是我最初的目標,因爲我最終希望將其用作預處理器,從數據結構和內容中收集一些信息。
我能解析常量和字符串,但是當我嘗試解析這個時,我開始有問題。
postfix_expression =
primary_expression
// omitting some other rules for simplicity's sake
| (postfix_expression >> chseq+p("++"))
| (postfix_expression >> chseq_p("--"));
primary_expression =
identifier
| constant
| string_literal;
// The parsers for constants and strings are
// pretty trivial so I'm not going to C+P them here.
當我通過類似i++
的東西時失敗。我認爲這是因爲i
是有效的primary_expression
,所以它不會繼續檢查++
或--
。我試着把它放在底部,然後我得到堆棧溢出。我在這裏得到了一些無限的左遞歸,但我不知道如何解決它。