lambdaParamItem method
Parser<({ArgNode? arg, ExpressionNode? defaultVal, bool isBareStar, bool isKwarg, bool isSlash, bool isVararg})>
lambdaParamItem()
inherited
Like paramItem but without type annotations (for lambda params).
Implementation
Parser<
({
ArgNode? arg,
ExpressionNode? defaultVal,
bool isSlash,
bool isBareStar,
bool isVararg,
bool isKwarg,
})
>
lambdaParamItem() => [
ref1(token, '/').map(
(_) => (
arg: null,
defaultVal: null,
isSlash: true,
isBareStar: false,
isVararg: false,
isKwarg: false,
),
),
seq2(ref1(token, '**'), ref0(identifier)).map2(
(_, name) => (
arg: ArgNode(arg: name),
defaultVal: null,
isSlash: false,
isBareStar: false,
isVararg: false,
isKwarg: true,
),
),
seq2(ref1(token, '*'), ref0(identifier)).map2(
(_, name) => (
arg: ArgNode(arg: name),
defaultVal: null,
isSlash: false,
isBareStar: false,
isVararg: true,
isKwarg: false,
),
),
ref1(token, '*').map(
(_) => (
arg: null,
defaultVal: null,
isSlash: false,
isBareStar: true,
isVararg: false,
isKwarg: false,
),
),
seq2(
ref0(identifier),
seq2(
ref0(assignToken),
ref0(singleExpression),
).map2((_, e) => e).optional(),
).map2(
(name, defVal) => (
arg: ArgNode(arg: name),
defaultVal: defVal,
isSlash: false,
isBareStar: false,
isVararg: false,
isKwarg: false,
),
),
].toChoiceParser();