40 lines
1.6 KiB
Plaintext
40 lines
1.6 KiB
Plaintext
<program> ::= ( <line> | <block_comment> )*
|
|
<line> ::= [ <statement> ] [ <line_comment> | <doc_comment> ] <EOL>
|
|
| ( <line_comment> | <doc_comment> ) <EOL>
|
|
<EOL> ::= /(\r\n|\n)/
|
|
|
|
<doc_comment> ::= "///" <any_text>
|
|
<line_comment> ::= "//" <any_text>
|
|
<block_comment> ::= "/*" <any_content> "*/"
|
|
<any_text> ::= [^\r\n]*
|
|
<any_content> ::= /* Cualquier secuencia de caracteres que no contenga la subcadena "*/" */
|
|
|
|
<statement> ::= <assignment>
|
|
| <method_call_stmt>
|
|
| <function_call_stmt>
|
|
| <function_decl>
|
|
| <return_stmt>
|
|
| <system_command>
|
|
| <io_command>
|
|
| <control_flow>
|
|
| <async_command>
|
|
| <connector_cmd>
|
|
| <db_command>
|
|
| <http_command>
|
|
| <util_command>
|
|
| <modularity_cmd>
|
|
|
|
<assignment> ::= <identifier> "=" <expression>
|
|
|
|
<function_call_stmt> ::= <identifier> "(" [<argument_list>] ")"
|
|
|
|
<method_call_stmt> ::= <identifier> "=" <identifier> "." <identifier> "(" [<argument_list>] ")"
|
|
|
|
<system_command> ::= <register_cmd> | <addvar_cmd>
|
|
<register_cmd> ::= "registerEndpoint(" <stringliteral> "," <stringliteral> "," <list_display> "," <stringliteral> "," <identifier> "," <identifier> ")"
|
|
<addvar_cmd> ::= "addVar(" <addvar_arg> "," <addvar_arg> ")"
|
|
<addvar_arg> ::= <identifier> | <literal> | "$" <identifier>
|
|
|
|
<identifier> ::= /[A-Za-z_][A-Za-z0-9_]*/
|
|
|
|
<system_variable> ::= "_status" |