mirror of
https://github.com/ValKmjolnir/Nasal-Interpreter.git
synced 2026-07-23 11:28:45 +08:00
update
This commit is contained in:
+54
-21
@@ -6,28 +6,61 @@
|
||||
|
||||
<number> ::= <token_number>
|
||||
<string> ::= <token_string>
|
||||
<nil> ::= <token_reserve_word_nil>
|
||||
<id> ::= <token_identifier>
|
||||
<dynamic_id> ::= <token_dynamic_id>
|
||||
|
||||
<vector> ::= <[> {<scalar> <,>} <]>
|
||||
<hash> ::= <{> {(<id> | <string>) <:> <scalar> <,>} <}>
|
||||
<scalar> ::=
|
||||
<number>
|
||||
| <nil>
|
||||
| <string>
|
||||
| <call_identifier>
|
||||
| <calculation>
|
||||
| <function>
|
||||
| <(> <scalar> <)>
|
||||
| <hash>
|
||||
| <vector>
|
||||
|
||||
<calculation_expr> ::=
|
||||
<or_expr> {<and> <or_expr>}
|
||||
<or_expr> ::=
|
||||
<unary_expr> {<or> <unary_expr>}
|
||||
| <unary_expr> {<or> <additive_expr>}
|
||||
| <additive_expr> {<or> <unary_expr>}
|
||||
| <additive_expr> {<or> <additive_expr>}
|
||||
<unary_expr> ::=
|
||||
<-> <additive_expr>
|
||||
| <!> <additive_expr>
|
||||
<additive_expr> ::=
|
||||
<multive_expr> {<+> <multive_expr>}
|
||||
| <multive_expr> {<-> <multive_expr>}
|
||||
| <multive_expr> {<~> <multive_expr>}
|
||||
<multive_expr> ::=
|
||||
<scalar> {<*> <scalar>}
|
||||
| <scalar> {</> <scalar>}
|
||||
<function> ::=
|
||||
<func> [<(> <)>] <statement>
|
||||
| <func> [<(> <)>] <{> {<statement> <;>} <}>
|
||||
| <func> <(> {<id> <,>} {<id> <=> <scalar> <,>} {<dynamic_id>} <)> <statement>
|
||||
| <func> <(> {<id> <,>} {<id> <=> <scalar> <,>} {<dynamic_id>} <)> <{> {<statement> <;>} <}>
|
||||
|
||||
<call_identifier> ::=
|
||||
<scalar> { (<[> {<scalar> <,>} <]>) | (<[> <scalar> <:> [<scalar>] <]>) | (<.> <id>) | (<(> {<scalar> <,>} <)>) | (<(> {<id> <:> <scalar> <,>} <)>) }
|
||||
| <id> { (<[> {<scalar> <,>} <]>) | (<[> <scalar> <:> [<scalar>] <]>) | (<.> <id>) | (<(> {<scalar> <,>} <)>) | (<(> {<id> <:> <scalar> <,>} <)>) }
|
||||
| <func> <id>
|
||||
| <func> <id> <(> <)> { (<[> {<scalar> <,>} <]>) | (<[> <scalar> <:> [<scalar>] <]>) | (<.> <id>) | (<(> {<scalar> <,>} <)>) | (<(> {<id> <:> <scalar> <,>} <)>) }
|
||||
|
||||
<calculation> ::=
|
||||
<and_calc>
|
||||
| <or_calc>
|
||||
| <additive_calc>
|
||||
| <multive_calc>
|
||||
| <scalar>
|
||||
<and_calc> ::=
|
||||
<or_calc> {<and> <or_calc>}
|
||||
<or_calc> ::=
|
||||
<additive_calc> {<or> <additive_calc>}
|
||||
<additive_calc> ::=
|
||||
<multive_calc> {<+>|<->|<~> <multive_calc>}
|
||||
<multive_calc> ::=
|
||||
<scalar> {<*>|</> <scalar>}
|
||||
|
||||
<definition> ::=
|
||||
<var> <id>
|
||||
| <var> <id> <=> <scalar>
|
||||
| <var> <(> {(<id>) | (<call_identifier>) <,>} <)> <=> <scalar>
|
||||
| <(> <var> {(<id>) | (<call_identifier>) <,>} <)> <=> <scalar>
|
||||
| <var> <(> {(<id>) | (<call_identifier>) <,>} <)> <=> <(> {<scalar> <,>} <)>
|
||||
| <(> <var> {(<id>) | (<call_identifier>) <,>} <)> <=> <(> {<scalar> <,>} <)>
|
||||
<assignment> ::=
|
||||
<call_identifier> <=> <scalar>
|
||||
| <(> {<call_identifier> <,>} <)> <=> <scalar>
|
||||
| <(> {<call_identifier> <,>} <)> <=> <(> {<scalar> <,>} <)>
|
||||
<loop_expr> ::=
|
||||
<for_loop>
|
||||
| <while_loop>
|
||||
@@ -38,13 +71,13 @@
|
||||
| <for> <(> [<statement>] <;> [<scalar>] <;> <statement> <)> <{> {<statement> <;>} <}>
|
||||
<while_loop> ::=
|
||||
<while> <(> <scalar> <)> <statement> [<;>]
|
||||
| <while> <(> <scalar> <) <{> {<statement> <;>} <}>
|
||||
| <while> <(> <scalar> <)> <{> {<statement> <;>} <}>
|
||||
<forindex_loop> ::=
|
||||
<forindex> <(> [<statement] <;> [<scalar>] <)> <statement> [<;>]
|
||||
| <forindex> <(> [<statement] <;> [<scalar>] <) <{> {<statement> <;>} <}>
|
||||
| <forindex> <(> [<statement] <;> [<scalar>] <)> <{> {<statement> <;>} <}>
|
||||
<foreach_loop> ::=
|
||||
<foreach> <(> [<statement] <;> [<scalar>] <)> <statement> [<;>]
|
||||
| <foreach> <(> [<statement] <;> [<scalar>] <) <{> {<statement> <;>} <}>
|
||||
| <foreach> <(> [<statement] <;> [<scalar>] <)> <{> {<statement> <;>} <}>
|
||||
|
||||
<choose_expr> ::= <choose_expr_if> {<choose_expr_elsif>} [<choose_expr_else>]
|
||||
<choose_expr_if> ::=
|
||||
@@ -57,7 +90,7 @@
|
||||
| <else> <if> <(> <scalar> <)> <{> {<statement> <;>} <}>
|
||||
<choose_expr_else> ::=
|
||||
<else> <statement> [<;>]
|
||||
| <else> {<statement> <;>} <}>
|
||||
| <else> <{> {<statement> <;>} <}>
|
||||
|
||||
<continue_expr> ::= <continue>
|
||||
<break_expr> ::= <break>
|
||||
|
||||
Reference in New Issue
Block a user