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

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





Blank;

Goto OrS; {може бути знак АБО}

End

Else

Begin

Error (2); {немає>}

Goto New;

End

End

Else

Begin

Error (4); {немає нетермінала, але <є}

Goto New;

End

End

Else {термінал}

If Terminal (term) Then {записуємо термінал}

Begin

NotT.Name: = term;

If Search (Trm_NotTrm, NotT) = 0 Then

Begin

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

inc (CTrmNotTrm);

End;

Blank;

Goto OrS;

End

Else

Begin

Error (8); {немає нетермінала або терміналу}

Goto New;

End;

OrS: If i> Len Then Goto Gluk; {обходимо глюк}

If s [i] = '|' Then {знак АБО}

Begin

inc (i);

Goto notTerminalOrTerminal

End

Else {знака АБО немає}

Begin

Blank;

If i> Len Then {кінець рядка?} p> Gluk: If y

Begin

{Следующ. стр}

inc (y);

posStr (y, s);

If s ='' Then Goto EndS;

i: = 1;

Goto LineS;

End

Else {кінець файлу}

Goto EndS

Else Goto notTerminalOrTerminal; {знака АБО немає}

End;

End;

End;

End;

End;

EndS:

{перевірка нетерміналов}

tmp: = NotTerminalL ^. Next; {пропускаємо перший}

exist: = True;

y: = 2;

While (Tmp <> Nil) and Exist Do

Begin

NotT: = tmp ^;

Exist: = Search (NotTerminalS, NotT)> 0;

tmp: = tmp ^. Next;

inc (y);

End;

dec (y);

i: = 1;

While (i <= y) Do

Begin {позіціаніруем на потрібний рядок}

{в s рядок з помилкою}

posStr (y, s);

inc (i);

End;

If not Exist Then {закинутий нетермінал}

Begin

i: = 1;

Error (7);

Goto New;

End;

{----------------}

tmp: = NotTerminalS;

exist: = True;

While (Tmp <> Nil) and Exist Do

Begin

NotT: = tmp ^;

Exist: = Search (NotTerminalL, NotT)> 0;

tmp: = tmp ^. Next;

End;

If not Exist Then {невизначений нетермінал}

Begin

i: = 1;

y: = 0;

Ex: = False;

While not Ex Do

Begin {позіціаніруем на потрібний рядок}

inc (y);

PosStr (y, s); {в s рядок з помилкою}

i: = Pos (NotT.name, s);

Ex: = i> 0;

End;

Error (6);

Goto New;

End;

Window (5,21,59,25);

TextColor (15);

TextBackGround (1);

WriteLN (Errors [0]);

readkey;

End;

Procedure SearchLR;

Function SearchInBlock (n: Byte; l: NotTerm; ...


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





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

  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: Як виростити чоловіка в сім'ї, де немає батька
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Способи Досягнення еквівалентності при перекладі англійської Економічної лі ...
  • Реферат на тему: Як Ви ставитеся до твердження: "Наука довела, що Бога немає"