Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Побудова функції передування по заданій КС-граматики

Реферат Побудова функції передування по заданій КС-граматики





or Dig (S [i], n) do

Begin

If (i-j) <9 Then term: = term + S [i];

inc (i);

End;

If (i-j)> 8 Then

Ex: = False

Else

Blank;

End

Else

Ex: = False

Else

Ex: = False;

notTerminal: = Ex;

End;

{}

Procedure Check;

Var term: String;

Exist, Ex: Boolean;

notT: List;

k: Byte;

Label notTerminalOrTerminal,

OrS, LineS, EndS, Start, New, Gluk;

Begin

Goto Start;

New: {при виникненні помилки}

DeleteList (NotTerminalS);

DeleteList (NotTerminalL);

DeleteList (Trm_NotTrm);

If not InputText Then Exit;

Start: {один раз}

i: = 1;

y: = 1;

k: = 1;

CTerm: = 0;

CTrmNotTrm: = 0;

PosStr (1, s); {перша рядок}

If s ='' Then

Goto New;

LineS: {нова рядок}

GotoXY (1,10); Write (s + 'Довжина аналіз.строкі', Length (s), '' + # 13 # 10, 'y =', y, ' всього рядків ', Cline);

Blank;

If not (S [i] = '<') Then

Begin

Error (1);

Goto New;

End

Else

Begin

inc (i);

Blank;

If not notTerminal (term) Then

Begin

Error (4);

Goto New;

End

Else

Begin {є нетермінал}

Blank;

If not (S [i] = '>') Then

Begin

Error (2);

Goto New;

End

Else {записуємо нетермінал}

Begin

NotT.Name: = '<' + term + '>';

If Search (NotTerminalL, NotT)> 0 Then

Begin {многоопределенний}

Error (9);

Goto New;

End;

If Search (Trm_NotTrm, NotT) = 0 Then

Begin

Complete (Trm_NotTrm, NotT); {до загального списку теміналі & нетерміналов}

inc (CTrmNotTrm);

End;

Complete (NotTerminalL, NotT); {лев. частина}

inc (CTerm);

inc (i);

Blank;

If not (Copy (s, i, 2) = ': =') Then

Begin

Error (3);

Goto New;

End

Else

Begin {є: =}

inc (i, 2);

notTerminalOrTerminal: {після : = Обов'язковий термінал або нетермінал}

Blank;

If s [i] = '<' Then {нетермінал}

Begin

inc (i);

Blank;

If notTerminal (term) Then

Begin {є нетермінал}

Blank;

If s [i] = '>' Then {записуємо нетермінал}

Begin

NotT.Name: = '<' + term + '>';

Complete (NotTerminalS, NotT);

If Search (Trm_NotTrm, NotT) = 0 Then

Begin

Complete (Trm_NotTrm, NotT); {в загальний список теміналі & нетерміналов}

inc (CTrmNotTrm);

End;

inc (i);

...


Назад | сторінка 11 з 17 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: Planning of mobile complete set for a rural wind generator
  • Реферат на тему: Технологія розгортання додатків Java Web Start
  • Реферат на тему: Використання системи Search для ведення архіву технічної документації
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...