mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:17:35 +00:00
Shell: Add support for functions
This implementation does not have support for 'return' yet.
This commit is contained in:
parent
519aa2048a
commit
d1550ea64f
6 changed files with 264 additions and 5 deletions
|
@ -45,6 +45,7 @@ public:
|
|||
private:
|
||||
RefPtr<AST::Node> parse_toplevel();
|
||||
RefPtr<AST::Node> parse_sequence();
|
||||
RefPtr<AST::Node> parse_function_decl();
|
||||
RefPtr<AST::Node> parse_and_logical_sequence();
|
||||
RefPtr<AST::Node> parse_or_logical_sequence();
|
||||
RefPtr<AST::Node> parse_variable_decls();
|
||||
|
@ -109,8 +110,11 @@ toplevel :: sequence?
|
|||
sequence :: variable_decls? or_logical_sequence terminator sequence
|
||||
| variable_decls? or_logical_sequence '&' sequence
|
||||
| variable_decls? or_logical_sequence
|
||||
| variable_decls? function_decl (terminator sequence)?
|
||||
| variable_decls? terminator sequence
|
||||
|
||||
function_decl :: identifier '(' (ws* identifier)* ')' ws* '{' toplevel '}'
|
||||
|
||||
or_logical_sequence :: and_logical_sequence '|' '|' and_logical_sequence
|
||||
| and_logical_sequence
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue