Предлагается три варианта, отличающихся друг от друга способом представления двоичных, восьмеричных, десятичных и шестнадцатеричных чисел.
Варианты:
I.6.1. (Cи)
$ двоичное = 0 (B | b) {/ 0 | 1 /}.
$ восьмеричное = 0 (C | c) { 0|1|2|3|4|5|6|7 }.
$ десятичное = [0 (D | d) ]{/ цифра /}.
$ шестнадцатеричное = 0 (X|x) {/цифра|A|B|C|D|E|F|a|b|c|d|e|f /}.
I.6.2. (Ассемблер)
$ двоичное = {/ 0 | 1 /} ( B | b ).
$ восьмеричное = {/ 0|1|2|3|4|5|6|7 /} ( C | c ).
$ десятичное = {/ цифра /} [ D | d ].
$ шестнадцатеричное = цифра {цифра | A|B|C|D|E|F|a|b|c|d|e|f } ( H | h ).
I.6.3. (Произвольный стиль)
$ двоичное = 2# {/ 0 | 1 /}.
$ восьмеричное = 8# {/ 0|1|2|3|4|5|6|7 /}.
$ десятичное = [10#] {/ цифра /}.
$ шестнадцатеричное = 16# {/цифра | A|B|C|D|E|F|a|b|c|d|e|f /}.
I.7. Организация действительных чисел
Действительное число определяется следующим образом:
Варианты:
I.7.1.
$ числовая_строка = {/ цифра /}.
$ порядок = (E|e)[+|-] числовая_строка.
$ действительное = числовая_строка порядок |
числовая_строка . [числовая_строка] [порядок] |
. числовая_строка [порядок].
I.7.2.
$ числовая_строка = {/ цифра /}.
$ порядок = (E|e)[+|-] числовая_строка.
$ действительное = числовая_строка . числовая_строка [порядок] |
числовая_строка порядок.
II. Правила, используемые в синтаксическом анализаторе
Рассматриваемые ниже правила используются при построении распознавателя. Альтернативные варианты позволяют задать структуру программы, ее операторов и выражений. Ключевые слова при описании правил выделены жирным шрифтом. Их реальное написание определяется совокупностью условий и ограничений, определяемых вариантом задания (прописные или строчные и т.д.)
II.1. Организация программы
Задается один из трех вариантов. Первый вариант определяет программу как список чередующихся описаний и операторов, разделяемых точкой с запятой. Конец текста программы определяется концом файла. Описания можно вводить непосредственно перед использованием переменных. При втором варианте программа состоит из двух независимых областей: описаний и операторов. За лексемой, определяющей конец программы, может следовать произвольная цепочка символов, так как осуществлять разбор дальше в соответствии с синтаксисом не имеет смысла. С организацией программы непосредственно связывается и структура составного оператора, синтаксис которого выдержан в аналогичном стиле. Третий вариант отличается от двух предыдущих отсутствием составного оператора.
Варианты:
II.1.1.
$ программа = {/ (описание | оператор) ; /} конец_файла.
$ составной = BST {/ оператор ; /} EST.
II.1.2.
$ программа = [ var описание { ; описание } ]
BST оператор { ; оператор } EST.
$ составной = BST оператор { ; оператор } EST.
II.1.3.
$ программа = {/ (описание | оператор) ; /} конец_файла.
II.2. Описания
Первый вариант описания по стилю близок к языку программирования Паскаль, второй напоминает описания Си, а третий ? Бейсик.
Варианты:
II.2.1.
$ описание = идентификатор { , идентификатор } : [ vector [ целое ] of ] тип.
$ тип = integer | real.
II.2.2.
$ описание = тип идентификатор [ [ целое ] ] { , идентификатор [ [ целое ] ] }.
$ тип = integer | real.
II.2.3.
$ описание = dim идентификатор ( целое ) { , идентификатор ( целое ) }.
Статьи к прочтению:
Разность двух отрицательных целых чисел. Математика 6 класс.
Похожие статьи:
-
Десятичные и шестнадцатеричные цифры и целые числа
Целые числовые константы в исходном коде Java (так называемые литерные константы) могут быть десятичными или шестнадцатеричными. Они записываются либо…
-
Е. А. АЛЬТМАН ОСНОВЫ ЯЗЫКА С ОМСК 2012 Министерство транспорта Российской Федерации Федеральное агентство железнодорожного транспорта Омский…