diff --git a/README.md b/README.md index a3a4120..b8daf98 100644 --- a/README.md +++ b/README.md @@ -129,8 +129,11 @@ function() '{ } ``` -| Sugar | Desugared | -|------------------------|---------------------------------| -| `function foo() a` | `foo = function() a` | -| `function foo(a) b` | `foo = function(a) b` | -| `function foo{..} a` | `foo = function{..} a` | +| Sugar | Desugared | +|----------------------------|------------------------------| +| `function foo() a` | `foo = function() a` | +| `function foo(a) b` | `foo = function(a) b` | +| `function foo{..} a` | `foo = function{..} a` | +| `local function foo() a` | `local foo = function() a` | +| `local function foo(a) b` | `local foo = function(a) b` | +| `local function foo{..} a` | `local foo = function{..} a` | diff --git a/src/ast/func_def.rs b/src/ast/func_def.rs index b7eaded..3ce0b34 100644 --- a/src/ast/func_def.rs +++ b/src/ast/func_def.rs @@ -39,10 +39,12 @@ pub enum FuncDef { span: Span, }, - /// `function foo() a` + /// - `function foo() a` + /// - `local function foo() a` /// - /// Structure: `function s0 name s1 ( s2 ) s3 body` + /// Structure: `local function s0 name s1 ( s2 ) s3 body` NamedNoArg { + local: Option, s0: Space, name: Ident, s1: Space, @@ -52,10 +54,12 @@ pub enum FuncDef { span: Span, }, - /// `function foo(bar) a` + /// - `function foo(bar) a` + /// - `local function foo(bar) a` /// - /// Structure: `function s0 name s1 ( s2 arg s3 ) s4 body` + /// Structure: `local function s0 name s1 ( s2 arg s3 ) s4 body` NamedArg { + local: Option, s0: Space, name: Ident, s1: Space, @@ -68,9 +72,11 @@ pub enum FuncDef { }, /// `function foo{..} a` + /// `local function foo{..} a` /// - /// Structure: `function s0 name s1 pattern s2 body` + /// Structure: `local function s0 name s1 pattern s2 body` NamedDestr { + local: Option, s0: Space, name: Ident, s1: Space,