Ситуация такова, что я написал очень простой синтаксис, но при компиляции у меня возник конфликт.
Я не представляю, почему такой простой синтаксис может привести к конфликту.
%token SCRIPT_ID
%token STRING
%start functions
%%
functions: SCRIPT_ID '(' STRING ')' {printf("script_id is %s", $3);};
%%
Я просто хочу использовать yacc для анализа моего файла. В моем файле есть такие вещи, как script_id ("1232444").
Я ищу в руководстве yacc и нахожу, что, говоря о сдвиге / уменьшении конфликта, возникает такой пример, как «если и еще». И я понимаю, почему «если и еще» конфликтует, если приоритетность не обозначена.
Но я не знаю, какое отношение имеет этот конфликт, связанный с конфликтом, с которым я столкнулся.
Может кто-нибудь сказать мне, что не так с моим кодом?