lua_parser/statement/
functiondef.rs1use crate::Span;
2use crate::SpannedString;
3
4#[derive(Clone, Debug)]
8pub struct FunctionName {
9 pub names: Vec<SpannedString>,
11 pub colon: Option<SpannedString>,
13
14 pub span: Span,
16}
17impl FunctionName {
18 pub fn new(names: Vec<SpannedString>, colon: Option<SpannedString>, span: Span) -> Self {
19 Self { names, colon, span }
20 }
21 pub fn span(&self) -> Span {
23 self.span
24 }
25}
26
27#[derive(Clone, Debug)]
29pub struct StmtFunctionDefinition {
30 pub name: FunctionName,
31 pub body: crate::expression::ExprFunction,
32 pub span: Span,
33}
34impl StmtFunctionDefinition {
35 pub fn new(name: FunctionName, body: crate::expression::ExprFunction, span: Span) -> Self {
36 Self { name, body, span }
37 }
38 pub fn span(&self) -> Span {
40 self.span
41 }
42}
43
44#[derive(Clone, Debug)]
46pub struct StmtFunctionDefinitionLocal {
47 pub name: SpannedString,
48 pub body: crate::expression::ExprFunction,
49 pub span: Span,
50}
51impl StmtFunctionDefinitionLocal {
52 pub fn new(name: SpannedString, body: crate::expression::ExprFunction, span: Span) -> Self {
53 Self { name, body, span }
54 }
55 pub fn span(&self) -> Span {
57 self.span
58 }
59}