Member 14074021 Ответов: 1

Я пишу программу lex, но у меня есть ошибка в строке 9.


Я пишу программу, которая распознает из A .txt элементы, заключенные в "{" и "}". Программа выведет результат в другом файле .txt. Когда я запускаю команду lex b4.l, у меня есть две ошибки в строке 9
"класс плохих персонажей" и "непризнанное правило"

Что я уже пробовал:

%{
#include<stdio.h>
%}
word [ab]+" "
nr [3-9][0-9][0-9]|[1-9][0,9]{3,}
el {nr}|([a-z][a-z})*[a-z}
list "{"{el}(,{el})+"}"
%%
{list} {printf("%s\n",yylex);}
(.*{word}.*){2,}\n {ECHO;}
.|\n;
%%
int main(int argc, char**argv){
FILE *g;
if(argc>0)
yyin = fopen(argv[1], "r");
if(!(g=fopen("a.txt", "w")))
fprintf(stderr, "error");
else
yyout=g;
yylex();
}

1 Ответов

Рейтинг:
1

CPallini

Цитата:
el {nr}|([a-z][a-z})*[a-z}
Приведенное выше правило выглядит для меня неверным (что такое [a-z} ?).