Системное программирование в UNIX средствами Free Pascal


         

Составьте программу удаления из программы


{letter}({letter}|{digit})*     begin yydone:=true; yyretval:=_IDENT; end;

\n      ;

.       ;

%%

function yywrap:integer;

begin

   yywrap:=1;

end;

const

  words:array[_AND.._XOR] of string=(

  'AND',

  'ASM',

  'ARRAY',

  'BEGIN',

  'CASE',

  'CONST',

  'CONSTRUCTOR',

  'DESTRUCTOR',

  'DIV',

  'DO',

  'DOWNTO',

  'ELSE',

  'END',

  'EXPORTS',

  'FILE',

  'FOR',

  'FUNCTION',

  'GOTO',

  'IF',

  'IMPLEMENTATION',

  'IN',

  'INHERITED',

  'INLINE',

  'INTERFACE',

  'LABEL',

  'LIBRARY',

  'MOD',

  'NIL',

  'NOT',

  'OBJECT',

  'OF',

  'OR',

  'PACKED',

  'PROCEDURE',

  'PROGRAM',

  'RECORD',

  'REPEAT',

  'SET',

  'SHL',

  'SHR',

  'STRING',

  'THEN',

  'TO',

  'TYPE',

  'UNIT',

  'UNTIL',

  'USES',

  'VAR',

  'WHILE',

  'WITH',

  'XOR'  );

 

var

  kwcount:array [1..51] of integer;

  token,i:integer;

begin

  if paramcount<>1 then

  begin

    writeln('Используйте: ', paramstr(0), ' файл');

    exit;

  end;

  assign(yyinput,paramstr(1));

  {$I-}

  reset(yyinput);

  if ioresult<>0 then

  begin

    writeln('Ошибка открытия для чтения ', paramstr(1));

    exit;

  end;

 

  for i:=_AND to _XOR do

    kwcount[i]:=0;

  token:=yylex;

  while not eof(yyinput) do

  begin

    if token in [_AND.._XOR] then

      inc(kwcount[token]);

    token:=yylex;

  end;

 

  if token in [_AND.._XOR] then

    inc(kwcount[token]);

 

  for i:=_AND to _XOR do

    if kwcount[i]<>0 then

      writeln('Слово ', words[i], ' встречается ', kwcount[i], ' раз');

 close(yyinput);

end.

Упражнение 13.67. Составьте программу удаления из программы на языке Си всех комментариев. Обратите внимание на особые случаи со строками в кавычках и символьными константами; так строка char s[] = "/*"; не является началом комментария! Комментарии записывайте в отдельный файл.

%{

uses lexlib;

  const

    STROKA=1;

    COMMENT=2;

    ANY=3;


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий