Разработка компиляторов. Ишакова Е.Н. - 40 стр.

UptoLike

Составители: 

40
<множитель>::= <идентификатор> | <число> | <логическая_константа> |
<унарная_операция> <множитель> | (<выражение>)
<число>::= <целое> | <действительное>
<логическая_константа>::=
true | false
Правила, определяющие идентификатор, букву и цифру:
<идентификатор>::= <буква> {<буква> | <цифра>}
<буква>::=
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T |
U | V | W | X | Y | Z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p
q | r | s | t | u | v | w | x | y | z
<цифра>::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Правила, определяющие целые числа:
<целое>::= <двоичное> | <восьмеричное> | <десятичное> |
<шестнадцатеричное>
<двоичное>::= {/ 0 | 1 /} (
B | b)
<восьмеричное>::= {/ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 /} (
O | o)
<десятичное>::= {/ <цифра> /} [
D | d]
<шестнадцатеричное>::= <цифра> {<цифра> |
A | B | C | D | E | F | a | b |
c | d | e | f} (H | h)
Правила, описывающие действительные числа:
<действительное>::= <числовая_строка> <порядок> |
[<числовая_строка>] . <числовая_строка> [порядок]
<числовая_строка>::= {/ <цифра> /}
<порядок>::= ( E | e )[+ | -] <числовая_строка>
Правила, определяющие структуру программы (вторая цифра варианта),
представлены в таблице 5.5.
Таблица 5.5 – Структура программы
Номер Структура программы
1
<программа>::=
program var <описание> begin <оператор> {; <опера-
тор>}
end.
2 <программа>::= «{» {/ (<описание> | <оператор>) ; /} «}»
3 <программа> = {/ (<описание> | <оператор>) ( : | переход строки) /} end
Правила, определяющие раздел описания переменных (третья цифра ва-
рианта), показаны в таблице 5.6.
      <множитель>::= <идентификатор> | <число> | <логическая_константа> |
                     <унарная_операция> <множитель> | (<выражение>)
      <число>::= <целое> | <действительное>
      <логическая_константа>::= true | false

             Правила, определяющие идентификатор, букву и цифру:
      <идентификатор>::= <буква> {<буква> | <цифра>}
      <буква>::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T |
                 U|V|W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p
                  q|r|s|t|u|v|w|x|y|z
      <цифра>::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

      Правила, определяющие целые числа:
      <целое>::= <двоичное> | <восьмеричное> | <десятичное> |
                <шестнадцатеричное>
      <двоичное>::= {/ 0 | 1 /} (B | b)
      <восьмеричное>::= {/ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 /} (O | o)
      <десятичное>::= {/ <цифра> /} [D | d]
      <шестнадцатеричное>::= <цифра> {<цифра> | A | B | C | D | E | F | a | b |
                                  c | d | e | f} (H | h)

      Правила, описывающие действительные числа:
      <действительное>::= <числовая_строка> <порядок> |
                            [<числовая_строка>] . <числовая_строка> [порядок]
      <числовая_строка>::= {/ <цифра> /}
      <порядок>::= ( E | e )[+ | -] <числовая_строка>

     Правила, определяющие структуру программы (вторая цифра варианта),
представлены в таблице 5.5.
      Таблица 5.5 – Структура программы
Номер                           Структура программы
        <программа>::= program var <описание> begin <оператор> {; <опера-
  1
        тор>} end.
  2     <программа>::= «{» {/ (<описание> | <оператор>) ; /} «}»
  3     <программа> = {/ (<описание> | <оператор>) ( : | переход строки) /} end
     Правила, определяющие раздел описания переменных (третья цифра ва-
рианта), показаны в таблице 5.6.




                                                                                               40