Реферат: Построение формального языка L

Построение формального языка<span Times New Roman",«serif»; mso-ansi-language:EN-US">L<span Times New Roman",«serif»;mso-ansi-language:EN-US">

 

 

WHILE(<AB> )  [<FUNCTION([,, ...])>];

 

WHILE -  входной терминальный символ

<AB> — условное выражение

— некоторая функция, которая можетотсутствовать

— параметры функции, которые тоже могутотсутствовать

Примерправильного синтаксиса:

WHILE(A>44<b=56+67) clrscr();

A>44<b=56+67 — условное выражение

clrscr() — функция, без параметров

 

 

 

 

 

 

 

 

 

 

Подбор грамматики  <span Times New Roman",«serif»;mso-ansi-language:EN-US">G[Z]  поязыку<span Times New Roman",«serif»; mso-ansi-language:EN-US">  L

<span Times New Roman",«serif»; mso-ansi-language:EN-US">

 

 

          Любая грамматика, к примеру G[Z],содержит следующие базисныеэлементы Vt, Vn, Z, P, где:

Vt -словарь терминальных символов

Vn -словарь нетерминальных символов

Z  -начальный нетерминальныйсимвол

P — множество правил вывода

G[<оператор>]:

1.<Оператор>  <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

  while(<AB> ) [<Функция>];

2. <span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">àT|<T|> T|  <= T |>= T | != T

3. <span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">à  O | T*O | T**O | T+O | T-O | T/O

4. <span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">à  () | | <ЦБЗ> 

5. <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">àБ{Б|Ц}

6. <ЦБЗ> <span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">à

 Ц{Ц}

7. <Функция><span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">à

([{,}])

8. <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à| <ЦБЗ>| <span Courier New";mso-ascii-font-family:«Times New Roman»; mso-hansi-font-family:«Times New Roman»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:«Courier New»"><span Courier New"">Ω

 

 

 

 

 

 

<span Times New Roman",«serif»">Классификация<span Times New Roman",«serif»; mso-ansi-language:EN-US">G[Z]<span Times New Roman",«serif»; mso-ansi-language:EN-US">

G[<оператор>]:

1.<Оператор>  <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

  while(<AB> ) [<Функция>];

2. <span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">àT|<T|> T|  <= T |>= T | != T

3. <span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">à  O | T*O | T**O | T+O | T-O | T/O

4. <span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">à  () | | <ЦБЗ> 

5. <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">àБ{Б|Ц}

6. <ЦБЗ> <span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">à

 Ц{Ц}

7. <Функция><span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Wingdings; mso-no-proof:yes">à

([{,}])

8. <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à| <ЦБЗ>| <span Courier New";mso-ascii-font-family:«Times New Roman»; mso-hansi-font-family:«Times New Roman»;mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US;mso-char-type:symbol;mso-symbol-font-family:«Courier New»"><span Courier New"">Ω

 

Сделаемзаменунетерминальных символов:

<Оператор> <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

  Z

           <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à  A

               <span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol; mso-symbol-font-family:Wingdings;mso-no-proof:yes">àB

              <span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol; mso-symbol-font-family:Wingdings;mso-no-proof:yes">à  C

<Функция > <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

D

      <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">àE

<ЦБЗ>           <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

F

           <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">àG

Сделаемзаменутерминальных символов:

 WHILE <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

  a

  (           <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

  b

  )           <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

  c

  ;            <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

  d

 Ц           <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

   f

 Б            <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

  g

  ,            <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

  h

G[Z]:

1. Z  <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

  abAc[D]d

2. A<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

B|A<B|A> B|A <= B |A >= B |A != B

3. B <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

  C | B*C | B**C | B+C | B-C | B/C

4. C <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

  bAc | E | F 

5. E <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

g{g|f}

6. F <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

 f{f}

7. D <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

Eb[G{hG}]c

8. G <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

E | F | <span Courier New"; mso-ascii-font-family:«Times New Roman»;mso-hansi-font-family:«Times New Roman»; mso-bidi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: «Courier New»;mso-no-proof:yes"><span Courier New"">Ω

Вывод: G[Z] -контекстно-свободная грамматика.

<span Times New Roman",«serif»">Выборметода анализа

 

Хотя однозначность в общем случае дляконтекстно-зависимых грамматик не доказана, ее использование возможно дляграмматик в которых однозначность очевидна. Наиболее хорошо разработаннымметодом анализа, для данного типа грамматик является, метод рекурсивногоспуска.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<span Times New Roman",«serif»">Диагностикаи нейтрализация ошибок<span Times New Roman",«serif»">

 

Разработанный алгоритм относится к общеизвестномуметоду синтаксического разбора, предложенный Айронсом.

Основная идея метода состоит в том, что по контекстубез возврата отбрасываются те символы, которые привели в тупиковую ситуацию иразбор продолжается.

Приведем пример синтаксического разбора:

While (A > ) cls();    

1. Z  <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Wingdings;mso-no-proof:yes">à

  abAc[D]d

2. A<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

B|A<B|A> B|A <= B |A >= B |A != B

3. B <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

  C | B*C | B**C | B+C | B-C | B/C

4. C <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

  bAc | E | F 

5. E <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

g{g|f}

6. F <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

 f{f}

7. D <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

Eb[G{hG}]c

8. G <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Wingdings;mso-no-proof:yes">à

E | F | <span Courier New"; mso-ascii-font-family:«Times New Roman»;mso-hansi-font-family:«Times New Roman»; mso-bidi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: «Courier New»;mso-no-proof:yes"><span Courier New"">Ω

<img src="/cache/referats/1181/image001.gif" v:shapes="_x0000_s1054"><img src="/cache/referats/1181/image002.gif" v:shapes="_x0000_s1044"><img src="/cache/referats/1181/image003.gif" v:shapes="_x0000_s1041"><img src="/cache/referats/1181/image004.gif" v:shapes="_x0000_s1028"><img src="/cache/referats/1181/image005.gif" v:shapes="_x0000_s1026">                             Z

<img src="/cache/referats/1181/image006.gif" " v:shapes="_x0000_s1030"> <img src="/cache/referats/1181/image007.gif" v:shapes="_x0000_s1042">


<img src="/cache/referats/1181/image008.gif" v:shapes="_x0000_s1052"><img src="/cache/referats/1181/image009.gif" v:shapes="_x0000_s1050"><img src="/cache/referats/1181/image010.gif" v:shapes="_x0000_s1045"><img src="/cache/referats/1181/image011.gif" v:shapes="_x0000_s1043"><img src="/cache/referats/1181/image012.gif" v:shapes="_x0000_s1031">a        b                 A              c          D

<img src="/cache/referats/1181/image013.gif" v:shapes="_x0000_s1055"><img src="/cache/referats/1181/image014.gif" v:shapes="_x0000_s1048"><img src="/cache/referats/1181/image015.gif" v:shapes="_x0000_s1034"><img src="/cache/referats/1181/image016.gif" v:shapes="_x0000_s1029"><img src="/cache/referats/1181/image017.gif" v:shapes="_x0000_s1027">                   B                 A         E              

<img src="/cache/referats/1181/image018.gif" v:shapes="_x0000_s1046"><img src="/cache/referats/1181/image019.gif" v:shapes="_x0000_s1037"><img src="/cache/referats/1181/image020.gif" v:shapes="_x0000_s1032">                  

                   C                 B         g{g} b       G       c

<img src="/cache/referats/1181/image021.gif" v:shapes="_x0000_s1057"><img src="/cache/referats/1181/image021.gif" v:shapes="_x0000_s1056"><img src="/cache/referats/1181/image022.gif" v:shapes="_x0000_s1053"><img src="/cache/referats/1181/image023.gif" v:shapes="_x0000_s1051"><img src="/cache/referats/1181/image024.gif" v:shapes="_x0000_s1049"><img src="/cache/referats/1181/image025.gif" v:shapes="_x0000_s1047"><img src="/cache/referats/1181/image019.gif" v:shapes="_x0000_s1038"><img src="/cache/referats/1181/image020.gif" v:shapes="_x0000_s1033">                  

                   E                 C                          <span Courier New";mso-ascii-font-family:«Times New Roman»; mso-hansi-font-family:«Times New Roman»;mso-bidi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:«Courier New»;mso-no-proof:yes"><span Courier New"">Ω

<img src="/cache/referats/1181/image019.gif" v:shapes="_x0000_s1039"><img src="/cache/referats/1181/image020.gif" v:shapes="_x0000_s1036">                  

                   g                 E

<img src="/cache/referats/1181/image019.gif" v:shapes="_x0000_s1040"><img src="/cache/referats/1181/image026.gif" v:shapes="_x0000_s1035">                                     

                                      g

<img src="/cache/referats/1181/image027.gif" v:shapes="_x0000_s1058">While(       A          >                )   cls  (                 )            ;

                   тупиковая ситуация

Тестирование на цепочках

 

Протокол работы синтаксического распознавателяоператора цикла while языка С.

  

_____________________________________________________________________

Обрабатываем строчку — While(a>)cls();

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — a

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — )

Проверка на ЦБЗ,   текущий символ — )

Проверка на FUNC,  текущий символ — c

Проверка на IDENT, текущийсимвол — c

 Найденные ошибки в строке While(a>)cls();

  Предупреждение: Отсутствует условие ()

  Не найден идентификатор или ЦБЗ

_____________________________________________________________________

Обрабатываем строчку — while(1<(3*(43+5*(3-4-(4<454)))) ;

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 1

Проверка на ЦБЗ,   текущий символ — 1

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на TERM

Проверка на O

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 4

Проверка на ЦБЗ,   текущий символ — 4

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 5

Проверка на ЦБЗ,   текущий символ — 5

Проверка на TERM

Проверка на O

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 4

Проверка на ЦБЗ,   текущий символ — 4

Проверка на TERM

Проверка на O

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 4

Проверка на ЦБЗ,   текущий символ — 4

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 4

Проверка на ЦБЗ,   текущий символ — 4

Проверка на FUNC,  текущий символ — ;

Проверка на IDENT, текущийсимвол — ;

 Найденные ошибки в строкеwhile(1<(3*(43+5*(3-4-(4<454)))) ;

  Отсутствует )

  Предупреждение: отсутствует имя функции

_____________________________________________________________________

Обрабатываем строчку — 435 4whilei>>3t*(ewqw++()*we) rscr(456,345,rtgrt,345444rtr,,,)

Найден While проверканачалась с символа — i

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — i

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на TERM

Проверка на O

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — e

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — +

Проверка на ЦБЗ,   текущий символ — +

Проверка на TERM

Проверка на O

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — w

Проверка на FUNC,  текущий символ — r

Проверка на IDENT, текущийсимвол — r

Проверка на PAR,   текущий символ — 4

Проверка на IDENT, текущийсимвол — 4

Проверка на ЦБЗ,   текущий символ — 4

Проверка на PAR,   текущий символ — 3

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на PAR,   текущий символ — r

Проверка на IDENT, текущийсимвол — r

Проверка на PAR,   текущий символ — 3

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на PAR,   текущий символ — ,

Проверка на IDENT, текущийсимвол — ,

Проверка на ЦБЗ,   текущий символ — ,

 Найденные ошибки в строке 435 4whilei>>3t*(ewqw++()*we) rscr(456,345,rtgrt,345444rtr,,,)

  Отсутствует (

  Отсутствует )

  Предупреждение: Отсутствует условие ()

  Отсутствует; после функции

  Параметр функции не может начинатся с цифры

  Неизвестный идентификатор(ы) —

                    435, 4,

  Не найден идентификатор или ЦБЗ

  Идентификатор не может начинаться с цифры

  Не найден или не верный параметр

  Неизвестная знаковая конструкция

_____________________________________________________________________

Обрабатываем строчку — whiLE(43-(sss<233)fewfew) sd(we)

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 4

Проверка на ЦБЗ,   текущий символ — 4

Проверка на TERM

Проверка на O

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — s

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 2

Проверка на ЦБЗ,   текущий символ — 2

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — f

Проверка на FUNC,  текущий символ - 

Проверка на IDENT, текущийсимвол — s

Проверка на PAR,   текущий символ — w

Проверка на IDENT, текущийсимвол — w

 Найденные ошибки в строкеwhiLE(43-(sss<233)fewfew) sd(we)

  Отсутствует; после функции

  Пропущено / или * или ** или + или —

_____________________________________________________________________

Обрабатываем строчку — while(i>344>(5445<<2323*343243+2343*(w))>23*232) clrscr(,)

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — i

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 5

Проверка на ЦБЗ,   текущий символ — 5

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 2

Проверка на ЦБЗ,   текущий символ — 2

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 2

Проверка на ЦБЗ,   текущий символ — 2

Проверка на TERM

Проверка на O

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — w

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 2

Проверка на ЦБЗ,   текущий символ — 2

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 2

Проверка на ЦБЗ,   текущий символ — 2

Проверка на FUNC,  текущий символ - 

Проверка на IDENT, текущийсимвол — c

Проверка на PAR,   текущий символ — ,

Проверка на IDENT, текущийсимвол — ,

Проверка на ЦБЗ,   текущий символ — ,

 Найденные ошибки в строкеwhile(i>344>(5445<<2323*343243+2343*(w))>23*232) clrscr(,)

  Отсутствует; после функции

  Не найден или не верный параметр

  Неизвестная знаковая конструкция

_____________________________________________________________________

Обрабатываем строчку — while(u>r+erhgeerg(e>=rwe+++r+788erwe++)) scr(eee,qee<)

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — u

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — r

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — e

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — e

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — r

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — r

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 7

Проверка на ЦБЗ,   текущий символ — 7

Проверка на FUNC,  текущий символ - 

Проверка на IDENT, текущийсимвол — s

Проверка на PAR,   текущий символ — e

Проверка на IDENT, текущийсимвол — e

Проверка на PAR,   текущий символ — q

Проверка на IDENT, текущийсимвол — q

Проверка на PAR,   текущий символ — <

Проверка на IDENT, текущийсимвол — <

Проверка на ЦБЗ,   текущий символ — <

 Найденные ошибки в строкеwhile(u>r+erhgeerg(e>=rwe+++r+788erwe++)) scr(eee,qee<)

  Отсутствует; после функции

  Пропущено / или * или ** или + или —

  Идентификатор не может начинаться с цифры

  Не найден или не верный параметр

_____________________________________________________________________

Обрабатываем строчку — while(i>77777u777) clrscr(,...,)

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — i

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 7

Проверка на ЦБЗ,   текущий символ — 7

Проверка на FUNC,  текущий символ - 

Проверка на IDENT, текущийсимвол — c

Проверка на PAR,   текущий символ — ,

Проверка на IDENT, текущийсимвол — ,

Проверка на ЦБЗ,   текущий символ — ,

 Найденные ошибки в строкеwhile(i>77777u777) clrscr(,...,)

  Отсутствует; после функции

  Идентификатор не может начинаться с цифры

  Не найден или не верный параметр

_____________________________________________________________________Обрабатываемстрочку — while(4545>>445--- ;

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 4

Проверка на ЦБЗ,   текущий символ — 4

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 4

Проверка на ЦБЗ,   текущий символ — 4

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол - 

Проверка на ЦБЗ,   текущий символ - 

Проверка на FUNC,  текущий символ — ;

Проверка на IDENT, текущийсимвол — ;

 Найденные ошибки в строкеwhile(4545>>445--- ;

  Отсутствует )

  Предупреждение: отсутствует имя функции

  Не найден идентификатор или ЦБЗ

  Неизвестная знаковая конструкция

_____________________________________________________________________

Обрабатываем строчку — while(i>=0);

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущий символ- i

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 0

Проверка на ЦБЗ,   текущий символ — 0

Проверка на FUNC,  текущий символ — ;

Проверка на IDENT, текущийсимвол — ;

 Найденные ошибки в строке while(i>=0);

  Предупреждение: отсутствует имя функции

_____________________________________________________________________

Обрабатываем строчку — while(i>=0) 544();

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — i

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 0

Проверка на ЦБЗ,   текущий символ — 0

Проверка на FUNC,  текущий символ - 

Проверка на IDENT, текущийсимвол — 5

 Найденные ошибки в строке while(i>=0)544();

  Отсутствует; после функции

  Предупреждение: отсутствует имя функции

_____________________________________________________________________

Обрабатываем строчку — whilei>=0) clrscr();13

Найден While проверканачалась с символа — i

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — i

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 0

Проверка на ЦБЗ,   текущий символ — 0

Проверка на FUNC,  текущий символ - 

Проверка на IDENT, текущийсимвол — c

 Найденные ошибки в строке whilei>=0)clrscr();13

  Отсутствует (

  Предупреждение: Отсутствует условие ()

_____________________________________________________________________

Обрабатываем строчку — whilertt<=243+++344-23!=345 wwqwq;

Найден While проверканачалась с символа — r

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — r

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 2

Проверка на ЦБЗ,   текущий символ — 2

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 2

Проверка на ЦБЗ,   текущий символ — 2

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — =

Проверка на ЦБЗ,   текущий символ — =

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на FUNC,  текущий символ — w

Проверка на IDENT, текущийсимвол — w

 Найденные ошибки в строкеwhilertt<=243+++344-23!=345 wwqwq;

  Отсутствует (

  Отсутствует )

  Не найден идентификатор или ЦБЗ

  Не найден или не верный параметр

_____________________________________________________________________

Обрабатываем строчку — while(dd>>3432*23432)

Найден While проверканачалась с символа — (

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — d

Проверка на AB

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 3

Проверка на ЦБЗ,   текущий символ — 3

Проверка на TERM

Проверка на O

Проверка на IDENT, текущийсимвол — 2

Проверка на ЦБЗ,   текущий символ — 2

Проверка на FUNC,  текущий символ —

Проверка на IDENT, текущийсимвол —

 Найденные ошибки в строке while(dd>>3432*23432)

  Отсутствует; после функции

  Предупреждение: отсутствует имя функции

  Неизвестная знаковая конструкция

Листингпрограммы

ВАРИАHТ # 10                                  

Синтаксический распозновательоператора цикла While               

                   Файл программы                   — А513.cpp           

                 с текстом для распознования — test.513           

                      с протоколом работы         — error.513          

 Кафедpа      : АСУ                                                      

 Гpуппа       : А-513                                                   

 Студент      : Стариков Дмитрий Александрович                          

 Пpеподаватели: кандидат технических наук,доцент                       

                                  Шоpников ЮpийВладимиpович,            

                   ассистент      Панова  Веpа Боpисовна                

 Дата         : 30 мая 1997г.                                           

//----------------------------------------------------------------------------

// Заголовочные файлы.

//----------------------------------------------------------------------------

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <ctype.h>

#include <conio.h>

#include <dos.h>

#define UP      72     // стрелка вверх

#define DOWN    80     // стрелка вниз

#define ALTX    45     // выход

#define F1   59

#define F2   60

#define F3   61

#define ESC  27

#define FL_NAME«test.513»

#define FL_TEST«error.513»

void open_fl(void);              // откpыть файл

void work_space(void);           // упpавляет pабочей областью

void print_page(void);           // печатает текст на экpан

void help_line(void);            // текст с помощью нижняя стpочка

void help(int);

int scan();                      // Делает разбор строки

int my_while();                  // опеpатоp

int AB();                        // арифметическоевыражение

int TERM();                      // Терм

int O();                         // Операнд

int IDENT();                     // Идентификатор

int ZBZ();                       // Целое без знака

int FUNC();                      // Функция

int PAR();                       // Параметр

char TEXT[22][80];

int  position;                   // Номер текущей страницы

int  cur_y=3;                 

еще рефераты
Еще работы по программированию, базе данных