LL (1) конфликт синтаксического анализатора при разборе языка C BNF - PullRequest
0 голосов
/ 19 марта 2019

Я рассчитал все первые наборы каждого производства в соответствии с https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%20syntax%20of%20C%20in%20Backus-Naur%20form.htm,, но я обнаружил, что первые наборы сильно конфликтуют.

Например, код, подобный этому:

static int test () {}
|

входной токен является статическим, но я не знаю, является ли это function-definition или declaration (потому что оба первых набора производства имеют токен static / int / identifier), пока мой курсор не достигнет { token.

Так есть ли способ выбрать правильную продукцию без недостатков?

...