paramItem method
Parser<({ArgNode? arg, ExpressionNode? defaultVal, bool isBareStar, bool isKwarg, bool isSlash, bool isVararg})>
paramItem()
inherited
Implementation
Parser<
({
ArgNode? arg,
ExpressionNode? defaultVal,
bool isSlash,
bool isBareStar,
bool isVararg,
bool isKwarg,
})
>
paramItem() => [
ref1(token, '/').map(
(_) => (
arg: null,
defaultVal: null,
isSlash: true,
isBareStar: false,
isVararg: false,
isKwarg: false,
),
),
seq2(ref1(token, '**'), ref0(paramWithAnnotation)).map2(
(_, param) => (
arg: param,
defaultVal: null,
isSlash: false,
isBareStar: false,
isVararg: false,
isKwarg: true,
),
),
seq2(ref1(token, '*'), ref0(paramWithAnnotation)).map2(
(_, param) => (
arg: param,
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(paramWithAnnotation),
seq2(
ref0(assignToken),
ref0(singleExpression),
).map2((_, e) => e).optional(),
).map2(
(param, defVal) => (
arg: param,
defaultVal: defVal,
isSlash: false,
isBareStar: false,
isVararg: false,
isKwarg: false,
),
),
].toChoiceParser();