我有一個簡單的程序的想法,這將幫助我像C語言中的運算符優先級。其中最困難的部分是括號表達式。例如,我想這一點:如何以編程方式將表達式括起來?
*a.x++ = *b.x++
轉換爲這樣的:
((*(((a).(x))++)) = (*(((b).(x))++)))
其中我手動做這些步驟:
*a.x++ = *b.x++
*(a).(x)++ = *(b).(x)++
*((a).(x))++ = *((b).(x))++
*(((a).(x))++) = *(((b).(x))++)
(*(((a).(x))++)) = (*(((b).(x))++))
((*(((a).(x))++)) = (*(((b).(x))++)))
什麼是編程方式實現這一目標的最佳方式是什麼?有沒有可以使用的解決方案?我寧願在PHP,C,C++,Python或Ruby中執行此操作。
(這不是我計劃的整體思路,這僅僅是第一步。)
你說這只是程序的第一步 - 你_actually_需要括號添加到表達式中的文本表示,或者你只需要構建一個AST(的一個內存中表示表達)? – 2011-11-02 23:34:04