2012-10-17 47 views

回答

2

衝突意味着生成的解析器可能不接受語法描述的整個語言,而是接受該語言的子集。如果您不關心根據語法解析某些合法的構造,那麼您可以忽略shift/reduce並減少/減少衝突。

現在有時候這些衝突是由於語法中的歧義造成的,這意味着解析同一事物有多種方式,有時在這種情況下,衝突可以被忽略,因爲解析器仍然會解析整個語言。但並不總是(實際上它是例外而不是規則),所以一般來說,你需要看看爲什麼語法有衝突和解析器有什麼影響。

0

您不必擔心其中一個,如果是else/if衝突。除此之外你應該擔心的是,調試的確很麻煩。幸運的是,你正在做簡單的語法,並且有足夠簡單的例子,你只需要比較和對比。