Skip to content

Instantly share code, notes, and snippets.

@khoben
Last active October 16, 2017 11:30
Show Gist options
  • Save khoben/f782b40be099ff4b9427a8272f60bee7 to your computer and use it in GitHub Desktop.
Save khoben/f782b40be099ff4b9427a8272f60bee7 to your computer and use it in GitHub Desktop.
<программа> → <программа><описание д−х>|<программа>void main()<блок>|Ԑ
<описание д−х> → <тип><список элементов>; | < struct >
<список элементов> → <список элементов>,<элемент>|<элемент>
<элемент> → <идентификатор>|<идентификатор> = <выражение>
<идентификатор> → <буква><символы>
<буква> -> a|...|z|A|...|Z
<символы> → <символы><буква>|<символы><цифра>|Ԑ
<цифра> → 0|…|9
<тип> → short int | double | < идентификатор >
<struct> → struct < идентификатор > < описание структ. >;
< описание структ.> → < описание структ. > < описание д-х стр. > | Ԑ
<описание д-х стр.> → <тип><список элементов стр.>; | < struct >
<список элементов стр.> → <список элементов стр.>,<идентификатор>|<идентификатор>
<short int> → 0|<цифра не 0><цифры>
<цифра не 0> → 1|..|9
<цифры> → <цифры><цифра>|Ԑ
<блок> → {<операторы>}
<double> → <целая>.<дробная>
<дробная> → 0<дробная>|<целая>
<операторы> → <операторы><оператор>|<операторы><описание д-х>|Ԑ
<оператор> → <присваивание>|<блок>|<if>|;
<if> → if(<выражение>)<оператор>|if(<выражение>)<оператор>else<оператор>
<константа> → <конст.целая>|<конст.вешеств>|<конст.экспон>
<конст.целая> → <конст.целая><цифра>|<цифра>
<конст.вешеств> → <конст.целая>.<конст.целая>|.<конст.целая>|<конст.целая>.
<конст.экспон> → <конст.целая><экспонента>|<конст.вешеств><экспонента>
<экспонента> → Е<знак><конст.целая>
< выражение > → < выражение > < сравнение > < вычисление > | < вычисление >
< сравнение > → < | > | <= | >= | == | !=
< вычисление > → < вычисление > < сдвиг > < арифметика > | < вычисление > < арифметика > | < арифметика >
< арифметика > → <арифметика> + < множитель > | < арифметика > - < множитель > | < множитель >
< сдвиг > → << | >>
< множитель > → < множитель > * < эл. выр > | < множитель > / < эл. выр > | < множитель > % < эл. выр > | < эл. выр>
< эл.выр. > → < имя > | < константа > | ( < выражение > )
<знак> → +|-|Ԑ
<присваивание> → <имя> = <выражение>;
<имя> → <имя>.<идентификатор>|<идентификатор>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment