Skip to content

Commit ef95826

Browse files
authored
Updated syntax definition
1 parent 857ebb7 commit ef95826

1 file changed

Lines changed: 29 additions & 13 deletions

File tree

README.md

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -877,13 +877,9 @@ This E-Mail was automatically generated by the system.
877877
The language syntax is defined by the following BNF (Backus-Naur form):
878878
879879
```
880-
<function_call> ::= <whitespace>* <function_name> <whitespace>* "(" <whitespace>* <arguments>? <whitespace>* ")" <whitespace>*
881-
882-
<function_name> ::= <identifier>
880+
<formula> ::= <number> | <string> | <boolean> | <object> | <list> | <null> | <lambda_function> | <function_call>
883881

884-
<arguments> ::= <argument> | <argument> <whitespace>* "," <whitespace>* <arguments>
885-
886-
<argument> ::= <number> | <string> | <boolean> | <object> | <list> | <lambda_function> | <function_call> | <identifier>
882+
<expression> ::= <formula> | <identifier>
887883

888884
<number> ::= <sign>? (<integer> | <floating_point>)
889885

@@ -895,23 +891,43 @@ The language syntax is defined by the following BNF (Backus-Naur form):
895891

896892
<float_suffix> ::= "d" | "m"
897893

898-
<string> ::= "\"" <character>* "\"" | "'" <character>* "'"
894+
<string> ::= "\"" <double_quote_character>* "\"" | "'" <single_quote_character>* "'"
895+
896+
<single_quote_character> ::= <character> | <double_quote> | <escaped_single_quote>
897+
898+
<double_quote_character> ::= <character> | <single_quote> | <escaped_double_quote>
899+
900+
<single_quote> ::= "'"
901+
902+
<double_quote> ::= "\""
903+
904+
<escaped_single_quote> ::= <escape_character> <single_quote>
905+
906+
<escaped_double_quote> ::= <escape_character> <double_quote>
907+
908+
<escape_character> ::= "\\"
899909

900910
<boolean> ::= "true" | "false"
901911

902912
<object> ::= "{" <whitespace>* <key_value_pairs>? <whitespace>* "}"
903913

904914
<key_value_pairs> ::= <key_value_pair> | <key_value_pair> <whitespace>* "," <whitespace>* <key_value_pairs>
905915

906-
<key_value_pair> ::= <letter> <character>* <whitespace>* ":" <whitespace>* <value>
907-
908-
<value> ::= <string> | <number> | <boolean> | <object> | <list> | <lambda_function> | <function_call> | <identifier>
916+
<key_value_pair> ::= <letter> <character>* <whitespace>* ":" <whitespace>* <expression>
909917

910918
<list> ::= "[" <whitespace>* <list_elements>? <whitespace>* "]"
911919

912-
<list_elements> ::= <argument> | <argument> <whitespace>* "," <whitespace>* <list_elements>
920+
<list_elements> ::= <expression> | <expression> <whitespace>* "," <whitespace>* <list_elements>
921+
922+
<null> ::= "null"
923+
924+
<function_call> ::= <whitespace>* <function_name> <whitespace>* "(" <whitespace>* <arguments>? <whitespace>* ")" <whitespace>*
925+
926+
<function_name> ::= <identifier>
927+
928+
<arguments> ::= <expression> | <expression> <whitespace>* "," <whitespace>* <arguments>
913929

914-
<lambda_function> ::= <whitespace>* "(" <whitespace>* <parameter> <whitespace>* ")" <whitespace>* "=>" <whitespace>* <function_call> <whitespace>*
930+
<lambda_function> ::= <whitespace>* "(" <whitespace>* <parameter> <whitespace>* ")" <whitespace>* "=>" <whitespace>* <expression> <whitespace>*
915931

916932
<parameter> ::= <identifier>
917933

@@ -921,7 +937,7 @@ The language syntax is defined by the following BNF (Backus-Naur form):
921937

922938
<letter> ::= "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
923939

924-
<character> ::= <letter> | <digit> | " " | "\"" | "!" | "#" | "$" | "%" | "&" | "'" | "(" | ")" | "*" | "+" | "," | "-" | "." | "/" | ":" | ";" | "<" | "=" | ">" | "?" | "@" | "[" | "]" | "^" | "_" | "`" | "{" | "|" | "}" | "~"
940+
<character> ::= <letter> | <digit> | " " | "!" | "#" | "$" | "%" | "&" | "(" | ")" | "*" | "+" | "," | "-" | "." | "/" | ":" | ";" | "<" | "=" | ">" | "?" | "@" | "[" | "]" | "^" | "_" | "`" | "{" | "|" | "}" | "~"
925941

926942
<whitespace> ::= " " <whitespace>* | "\t" <whitespace>* | "\n" <whitespace>*
927943
```

0 commit comments

Comments
 (0)