Рефераты | Рефераты по информатике, программированию | Синтаксический разбор строк и конечные автоматы | страница реферата 7 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Одной из важных особенностей такого подхода к разбору строк является то, что анализ выполняется по мере считывания символов, с использованием информации о текущем символе и символах, прочитанных ранее. Это позволяет вести обработку данных, передающихся по некоторому последовательному каналу, непосредственно в процессе их поступления.

    Фактически представленная функция выполняет две операции: выделяет в переданной строке синтаксические элементы (tokens) и определяет, что представляет собой данный элемент (имя тэга, имя атрибута, значение атрибута). Решение о том, чем является следующий элемент, принимается заранее, на основании данных о предыдущем элементе и простых правил: за именем тэга следует имя атрибута; за именем атрибута следует либо имя атрибута, либо символ '='; за символом '=' следует значение атрибута.

    Процедуры, основанные на конечных автоматах, широко применяются для проверки синтаксиса. В качестве примера рассмотрим функцию CheckMath, выполняющую синтаксический анализ математического выражения:

    function CheckMath(const S : String) : Integer;

    type

      TState = (Start, InDigit, AfterDigit, InOp, InLPrnt, InRPrnt);

    const

      resLPrntMissing = -1;

      resRPrntMissing = -2;

    var

      State : TState;

      i, ParCount : Integer;

    begin

      Result := 0;

      ParCount := 0; // счетчик скобок

      State := Start;

      for i := 1 to Length(S) do


    Рекомендуем скачать другие рефераты по теме: курсовик, контрольные 10 класс.



    Предыдущая страница реферата | 2  3  4  5  6  7  8  9  10  11  12 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •