sv_parser_parser/declarations/
declaration_lists.rs

1use crate::*;
2
3// -----------------------------------------------------------------------------
4
5#[tracable_parser]
6#[packrat_parser]
7pub(crate) fn list_of_defparam_assignments(s: Span) -> IResult<Span, ListOfDefparamAssignments> {
8    let (s, a) = list(symbol(","), defparam_assignment)(s)?;
9    Ok((s, ListOfDefparamAssignments { nodes: (a,) }))
10}
11
12#[tracable_parser]
13#[packrat_parser]
14pub(crate) fn list_of_genvar_identifiers(s: Span) -> IResult<Span, ListOfGenvarIdentifiers> {
15    let (s, a) = list(symbol(","), genvar_identifier)(s)?;
16    Ok((s, ListOfGenvarIdentifiers { nodes: (a,) }))
17}
18
19#[tracable_parser]
20#[packrat_parser]
21pub(crate) fn list_of_interface_identifiers(s: Span) -> IResult<Span, ListOfInterfaceIdentifiers> {
22    let (s, a) = list(
23        symbol(","),
24        pair(interface_identifier, many0(unpacked_dimension)),
25    )(s)?;
26    Ok((s, ListOfInterfaceIdentifiers { nodes: (a,) }))
27}
28
29#[tracable_parser]
30#[packrat_parser]
31pub(crate) fn list_of_net_decl_assignments(s: Span) -> IResult<Span, ListOfNetDeclAssignments> {
32    let (s, a) = list(symbol(","), net_decl_assignment)(s)?;
33    Ok((s, ListOfNetDeclAssignments { nodes: (a,) }))
34}
35
36#[tracable_parser]
37#[packrat_parser]
38pub(crate) fn list_of_param_assignments(s: Span) -> IResult<Span, ListOfParamAssignments> {
39    let (s, a) = list(symbol(","), param_assignment)(s)?;
40    Ok((s, ListOfParamAssignments { nodes: (a,) }))
41}
42
43#[tracable_parser]
44#[packrat_parser]
45pub(crate) fn list_of_port_identifiers(s: Span) -> IResult<Span, ListOfPortIdentifiers> {
46    let (s, a) = list(
47        symbol(","),
48        pair(port_identifier, many0(unpacked_dimension)),
49    )(s)?;
50    Ok((s, ListOfPortIdentifiers { nodes: (a,) }))
51}
52
53#[tracable_parser]
54#[packrat_parser]
55pub(crate) fn list_of_udp_port_identifiers(s: Span) -> IResult<Span, ListOfUdpPortIdentifiers> {
56    let (s, a) = list(symbol(","), port_identifier)(s)?;
57    Ok((s, ListOfUdpPortIdentifiers { nodes: (a,) }))
58}
59
60#[tracable_parser]
61#[packrat_parser]
62pub(crate) fn list_of_specparam_assignments(s: Span) -> IResult<Span, ListOfSpecparamAssignments> {
63    let (s, a) = list(symbol(","), specparam_assignment)(s)?;
64    Ok((s, ListOfSpecparamAssignments { nodes: (a,) }))
65}
66
67#[tracable_parser]
68#[packrat_parser]
69pub(crate) fn list_of_tf_variable_identifiers(
70    s: Span,
71) -> IResult<Span, ListOfTfVariableIdentifiers> {
72    let (s, a) = list(
73        symbol(","),
74        triple(
75            port_identifier,
76            many0(variable_dimension),
77            opt(pair(symbol("="), expression)),
78        ),
79    )(s)?;
80    Ok((s, ListOfTfVariableIdentifiers { nodes: (a,) }))
81}
82
83#[tracable_parser]
84#[packrat_parser]
85pub(crate) fn list_of_type_assignments(s: Span) -> IResult<Span, ListOfTypeAssignments> {
86    let (s, a) = list(
87        symbol(","),
88        terminated(
89            type_assignment,
90            peek(alt((symbol(","), symbol(")"), symbol(";")))),
91        ),
92    )(s)?;
93    Ok((s, ListOfTypeAssignments { nodes: (a,) }))
94}
95
96#[tracable_parser]
97#[packrat_parser]
98pub(crate) fn list_of_variable_decl_assignments(
99    s: Span,
100) -> IResult<Span, ListOfVariableDeclAssignments> {
101    let (s, a) = list(symbol(","), variable_decl_assignment)(s)?;
102    Ok((s, ListOfVariableDeclAssignments { nodes: (a,) }))
103}
104
105#[tracable_parser]
106#[packrat_parser]
107pub(crate) fn list_of_variable_identifiers(s: Span) -> IResult<Span, ListOfVariableIdentifiers> {
108    let (s, a) = list(
109        symbol(","),
110        pair(variable_identifier, many0(variable_dimension)),
111    )(s)?;
112    Ok((s, ListOfVariableIdentifiers { nodes: (a,) }))
113}
114
115#[tracable_parser]
116#[packrat_parser]
117pub(crate) fn list_of_variable_port_identifiers(
118    s: Span,
119) -> IResult<Span, ListOfVariablePortIdentifiers> {
120    let (s, a) = list(
121        symbol(","),
122        triple(
123            port_identifier,
124            many0(variable_dimension),
125            opt(pair(symbol("="), constant_expression)),
126        ),
127    )(s)?;
128    Ok((s, ListOfVariablePortIdentifiers { nodes: (a,) }))
129}