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

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





);

Blank;

Terminal (term);

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

If (SearchInBlock (y, LTN, tmp) = 0) and (term>'') Then

Complete (LTN, tmp); {додаємо лівий}

Blank;

inc (i);

End

Else

Begin

Terminal (term);

tmp.Name: = term;

If (SearchInBlock (y, LTN, tmp) = 0) and (term>'') Then

Complete (LTN, tmp); {додаємо лівий}

If (i-1) = Len Then {після: = або після | тільки один термінал}

Complete (RTN, tmp);

End;

If i> Len Then Goto Next; {останній у рядку був термінал}

While (i '|') Do inc (i); {остаточно правил}

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

Begin

While (I> 1) and (s [i] <> '<') Do dec (i);

inc (i);

Blank;

Terminal (term); {останній нетермінал}

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

If (SearchInBlock (y, RTN, tmp) = 0) and (term>'') Then

Complete (RTN, tmp); {додаємо правий}

inc (i); {пропуск>}

If s [i] = '|' Then

Begin

inc (i);

Goto More;

End;

End

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

Begin

While (I> 1) and not ((s [i] = '') or (s [i] = '|') or (s [i] = '>')) Do dec (i);

inc (i);

Blank;

Terminal (term);

tmp.Name: = term;

If (SearchInBlock (y, RTN, tmp) = 0) and (term>'') Then

Complete (RTN, tmp); {додаємо правий}

If s [i] = '|' Then

Begin

inc (i);

Goto More;

End;

End;

If i

Goto More;

next: inc (y);

tmp.Name: = # 0; {після кожного рядка ставимо роздільник}

Complete (LTN, tmp); {додаємо лівий}

Complete (RTN, tmp); {додаємо правий}

Until y> CLine;

{після циклу отримали "Попередні" ліві і праві, їх ще треба доповнити}

For y: = 1 To 10 Do

Begin

Add_ (LTn);

Add_ (RTn);

End;

{отримали ліві і праві, розділені # 0}

End;

Procedure Matrix;

Procedure Precede;

Label More, Next;

Var mi, mj: Byte;

tmp: List;

p: NotTerm;

term, term2: String;

Ex: Boolean;

Begin

y: = 1;

i: = 1;

Repeat

PosStr (y, s);

Blank;

i: = Pos ("=", S) +1; {i ставимо після: =}

More: Blank;

If s [i] = '<' Then

Begin

inc (i);

Blank;

Terminal (term);

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

term2: = tmp.Name;

Blank;

inc (i);

mi: = Search (Trm_notTrm, tmp);

If Terminal (term) Then {нетермінал з...


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





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

  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: Planning of mobile complete set for a rural wind generator
  • Реферат на тему: Лікувальна фізкультура після вагітності. Відновлення після пологів
  • Реферат на тему: Розробка структури ТОВ &Бурят-Термінал& м Улан-Уде в СУБД MS Access
  • Реферат на тему: Йосип Бродський: До і після ...