не игнорировать комментарии в Лекс и YACC - PullRequest
0 голосов
/ 11 ноября 2019

Я сделал компилятор исходного кода в Lex и YACC, и я пытаюсь сохранить комментарии строки исходного файла в файл назначения. Строка комментария может быть указана только с символом "#". Есть только однострочные комментарии.

Я создал правило в синтаксическом анализаторе с именем Y_COMMENT.
Проблема в LEX ... возможно, в регулярном выражении. На самом деле, комментарии перехватываются этим правилом:

"#".*  {}

Я изменил правило на:

"#".*/\n { 
      current_line_no = line_no;
      current_line = yytext;
      yyval.p = (char*) copy_str(yytext+1,1);
      return (Y_COMMENT);
      }

Парсер работает только для первой строки комментария. После этого выдает ошибку о «нераспознанном коде строки»

...