Курсовая работа теория автоматов и формальных языков. Булычев отчет. Разработка компилятора модельного языка программирования
Скачать 1.38 Mb.
|
4 Расширенная форма Бэкуса — Наура <выражение>::= <операнд>{<операции_группы_отношения> <опе-ранд>} <операнд>::= <слагаемое> {<операции_группы_сложения> <слагае-мое>} <слагаемое>::= <множитель> {<операции_группы_умножения> <множитель>} <множитель>::= <идентификатор> | <число> | <логическая_константа> | <унарная_операция> <множитель> | (<выражение>) <число>::= <целое> | <действительное> <логическая_константа>::= 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) Правила, описывающие действительные числа: <действительное>::= <числовая_строка> <порядок> |n [<числовая_строка>] . <числовая_строка> [порядок] <числовая_строка>::= {/ <цифра> /} <порядок>::= ( E | e )[+ | -] <числовая_строка> Примеры работы 1. Рабочий код. Все работает без ошибок 2. Ошибка: лексическая ошибка, неправильная запись вещественного числа |