1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/valkmjolnir-nas-sharp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
nas.ebnf 1.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Valk Richard Li Отправлено 20.01.2021 12:45 5a9c17a
(*
<> must choose
[] can choose
{} can repeat 0 to infinite time(s)
| or
::= is defined as
*)
(*
id (_ | a~z | A~Z){(_ | a~z | A~Z | 0~9)};
number (0~9){0~9}[. (0~9){0~9}];
string "...";
*)
list ::= <[> {<calc> <,>} <]>;
hash ::= <{> {(<id> | <string>) <:> <calc>} <}>;
function ::= <func> <(> {<id> <,>} [<id> <...>]<)> <exprs>;
(*first(definition)={ var }*)
definition ::= <var> <id> <=> <calc>;
(*first(conditional)={ if }*)
conditional ::= <if> <(> <calc> <)> <exprs> [<else> <exprs>];
(*first(while)={ while }*)
while ::= <while> <(> <calc> <)> <exprs>;
(*first(for)={ for }*)
for ::= <for> <(> (<definition>|<calc>|<null>) <;> (<calc>|<null>) <;> (<calc>|<null>) <)> <exprs>;
(*first(calc)={ nil,id,-,!,number,string,func,[,{,( }*)
calc ::= <or_expr> [(<?> <or_expr> <:> <or_expr>)];
or_expr ::= <and_expr> [<or> <and_expr>];
and_expr ::= <cmp_expr> [<and> <cmp_expr>];
cmp_expr ::= <additive> [(<==> | <!=> | <<> | <>> | <<=> | <>=>) <additive>];
additive ::= <multive> [(<+> | <-> | <~>) <multive>];
multive ::= <scalar> [(<*> | </>) <scalar>];
scalar ::= ((<-> | <!>) <scalar>) | <call>;
call ::= (<id> | <nil> | <number> | <string> | <function> | <list> | <hash> | <(> <calc> <)>) {(<.> <id>) | (<[> <calc> <]>) | (<(> {<calc> <,>} <)>)} [(<=>|<+=>|<-=>|<*=>|<\=>|<~=>) <calc>];
exprs ::= <{> {<expr> <;>} <}>;
expr ::=
<calc>
| <definition>
| <conditional>
| <while>
| <for>
| <continue>
| <break>
| <return> [calc]
;
proc ::= {<expr> <;>};

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/valkmjolnir-nas-sharp.git
git@api.gitlife.ru:oschina-mirror/valkmjolnir-nas-sharp.git
oschina-mirror
valkmjolnir-nas-sharp
valkmjolnir-nas-sharp
master