0
У меня есть следующая простая грамматика:Создания Bison файла для простой грамматики
E -> T |^v . E
T -> F T1
T1 -> F T1 | epsilon
F -> (E) | v
Я довольно новый для Bison, так что я надеялся, кто-то может помочь мне показать, как писать в этом формате. Все, что я до сих пор состоит в следующем, но я не уверен, если это правильно:
%left '.'
%left 'v'
%% /* The grammar follows. */
exp:
term {printf("1");}
| '^' 'v' '.' exp {printf("2");}
;
term:
factor term1 {printf("3");}
;
term1:
factor term1 {printf("4");}
| {printf("5");}
;
factor:
'(' exp ')' {printf("6");}
| 'v' {printf("7");}
;
%%
Вы правы насчет точки с запятой, но я думаю, что Bison исправил это для меня во время компиляции - файл .output был таким же до и после. Хорошая мысль о линиях. Состоит ли все остальное? –
Да, это нормально. – EJP
Спасибо. Мне было интересно, можете ли вы также сказать мне, следует ли создавать файл .output,% left rules в верхнем случае или нет. –