scarf_syntax/declarations/
declaration_lists.rs

1// =======================================================================
2// declaration_lists.rs
3// =======================================================================
4// AST Nodes from 1800-2023 A.2.3
5
6use crate::*;
7
8#[derive(Clone, Debug, PartialEq)]
9pub struct ListOfInterfaceIdentifiers<'a>(
10    pub InterfaceIdentifier<'a>,
11    pub Vec<UnpackedDimension<'a>>,
12    pub  Vec<(
13        Metadata<'a>, // ,
14        InterfaceIdentifier<'a>,
15        Vec<UnpackedDimension<'a>>,
16    )>,
17);
18
19#[derive(Clone, Debug, PartialEq)]
20pub struct ListOfParamAssignments<'a>(
21    pub ParamAssignment<'a>,
22    pub Vec<(Metadata<'a>, ParamAssignment<'a>)>,
23);
24
25#[derive(Clone, Debug, PartialEq)]
26pub struct ListOfPortIdentifiers<'a>(
27    pub PortIdentifier<'a>,
28    pub Vec<UnpackedDimension<'a>>,
29    pub  Vec<(
30        Metadata<'a>, // ,
31        PortIdentifier<'a>,
32        Vec<UnpackedDimension<'a>>,
33    )>,
34);
35
36#[derive(Clone, Debug, PartialEq)]
37pub struct ListOfTypeAssignments<'a>(
38    pub TypeAssignment<'a>,
39    pub Vec<(Metadata<'a>, TypeAssignment<'a>)>,
40);
41
42#[derive(Clone, Debug, PartialEq)]
43pub struct ListOfVariableIdentifiers<'a>(
44    pub VariableIdentifier<'a>,
45    pub Vec<VariableDimension<'a>>,
46    pub  Vec<(
47        Metadata<'a>, // ,
48        VariableIdentifier<'a>,
49        Vec<VariableDimension<'a>>,
50    )>,
51);