1 Star 3 Fork 0

ValKmjolnir/nas-sharp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
nas.ebnf 1.56 KB
一键复制 编辑 原始数据 按行查看 历史
Valk Richard Li 提交于 2021-01-20 17:45 . update
(*
<> 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> <;>};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/valkmjolnir/nas-sharp.git
[email protected]:valkmjolnir/nas-sharp.git
valkmjolnir
nas-sharp
nas-sharp
master

搜索帮助