Skip to main content

scarf_syntax/declarations/
declaration_lists.rs

1// =======================================================================
2// declaration_lists.rs
3// =======================================================================
4// CST Nodes from 1800-2023 A.2.3
5use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub struct ListOfDefparamAssignments<'a>(
9    pub DefparamAssignment<'a>,
10    pub Vec<(Metadata<'a>, DefparamAssignment<'a>)>,
11);
12
13#[derive(Clone, Debug, PartialEq)]
14pub struct ListOfGenvarIdentifiers<'a>(
15    pub GenvarIdentifier<'a>,
16    pub Vec<(Metadata<'a>, GenvarIdentifier<'a>)>,
17);
18
19#[derive(Clone, Debug, PartialEq)]
20pub struct ListOfInterfaceIdentifiers<'a>(
21    pub InterfaceIdentifier<'a>,
22    pub Vec<UnpackedDimension<'a>>,
23    pub  Vec<(
24        Metadata<'a>, // ,
25        InterfaceIdentifier<'a>,
26        Vec<UnpackedDimension<'a>>,
27    )>,
28);
29
30#[derive(Clone, Debug, PartialEq)]
31pub struct ListOfNetDeclAssignments<'a>(
32    pub NetDeclAssignment<'a>,
33    pub Vec<(Metadata<'a>, NetDeclAssignment<'a>)>,
34);
35
36#[derive(Clone, Debug, PartialEq)]
37pub struct ListOfParamAssignments<'a>(
38    pub ParamAssignment<'a>,
39    pub Vec<(Metadata<'a>, ParamAssignment<'a>)>,
40);
41
42#[derive(Clone, Debug, PartialEq)]
43pub struct ListOfPortIdentifiers<'a>(
44    pub PortIdentifier<'a>,
45    pub Vec<UnpackedDimension<'a>>,
46    pub  Vec<(
47        Metadata<'a>, // ,
48        PortIdentifier<'a>,
49        Vec<UnpackedDimension<'a>>,
50    )>,
51);
52
53#[derive(Clone, Debug, PartialEq)]
54pub struct ListOfUdpPortIdentifiers<'a>(
55    pub PortIdentifier<'a>,
56    pub  Vec<(
57        Metadata<'a>, // ,
58        PortIdentifier<'a>,
59    )>,
60);
61
62#[derive(Clone, Debug, PartialEq)]
63pub struct ListOfSpecparamAssignments<'a>(
64    pub SpecparamAssignment<'a>,
65    pub  Vec<(
66        Metadata<'a>, // ,
67        SpecparamAssignment<'a>,
68    )>,
69);
70
71#[derive(Clone, Debug, PartialEq)]
72pub struct ListOfTfVariableIdentifiers<'a>(
73    pub PortIdentifier<'a>,
74    pub Vec<VariableDimension<'a>>,
75    pub  Option<(
76        Metadata<'a>, // =
77        Expression<'a>,
78    )>,
79    pub  Vec<(
80        Metadata<'a>, // ,
81        PortIdentifier<'a>,
82        Vec<VariableDimension<'a>>,
83        Option<(
84            Metadata<'a>, // =
85            Expression<'a>,
86        )>,
87    )>,
88);
89
90#[derive(Clone, Debug, PartialEq)]
91pub struct ListOfTypeAssignments<'a>(
92    pub TypeAssignment<'a>,
93    pub Vec<(Metadata<'a>, TypeAssignment<'a>)>,
94);
95
96#[derive(Clone, Debug, PartialEq)]
97pub struct ListOfVariableDeclAssignments<'a>(
98    pub VariableDeclAssignment<'a>,
99    pub Vec<(Metadata<'a>, VariableDeclAssignment<'a>)>,
100);
101
102#[derive(Clone, Debug, PartialEq)]
103pub struct ListOfVariableIdentifiers<'a>(
104    pub VariableIdentifier<'a>,
105    pub Vec<VariableDimension<'a>>,
106    pub  Vec<(
107        Metadata<'a>, // ,
108        VariableIdentifier<'a>,
109        Vec<VariableDimension<'a>>,
110    )>,
111);
112
113#[derive(Clone, Debug, PartialEq)]
114pub struct ListOfVariablePortIdentifiers<'a>(
115    pub PortIdentifier<'a>,
116    pub Vec<VariableDimension<'a>>,
117    pub  Option<(
118        Metadata<'a>, // =
119        ConstantExpression<'a>,
120    )>,
121    pub  Vec<(
122        Metadata<'a>, // ,
123        PortIdentifier<'a>,
124        Vec<VariableDimension<'a>>,
125        Option<(
126            Metadata<'a>, // =
127            ConstantExpression<'a>,
128        )>,
129    )>,
130);