sv_parser_syntaxtree/declarations/
declaration_ranges.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub enum UnpackedDimension {
7 Range(Box<UnpackedDimensionRange>),
8 Expression(Box<UnpackedDimensionExpression>),
9}
10
11#[derive(Clone, Debug, PartialEq, Node)]
12pub struct UnpackedDimensionRange {
13 pub nodes: (Bracket<ConstantRange>,),
14}
15
16#[derive(Clone, Debug, PartialEq, Node)]
17pub struct UnpackedDimensionExpression {
18 pub nodes: (Bracket<ConstantExpression>,),
19}
20
21#[derive(Clone, Debug, PartialEq, Node)]
22pub enum PackedDimension {
23 Range(Box<PackedDimensionRange>),
24 UnsizedDimension(Box<UnsizedDimension>),
25}
26
27#[derive(Clone, Debug, PartialEq, Node)]
28pub struct PackedDimensionRange {
29 pub nodes: (Bracket<ConstantRange>,),
30}
31
32#[derive(Clone, Debug, PartialEq, Node)]
33pub enum AssociativeDimension {
34 DataType(Box<AssociativeDimensionDataType>),
35 Asterisk(Box<AssociativeDimensionAsterisk>),
36}
37
38#[derive(Clone, Debug, PartialEq, Node)]
39pub struct AssociativeDimensionDataType {
40 pub nodes: (Bracket<DataType>,),
41}
42
43#[derive(Clone, Debug, PartialEq, Node)]
44pub struct AssociativeDimensionAsterisk {
45 pub nodes: (Bracket<Symbol>,),
46}
47
48#[derive(Clone, Debug, PartialEq, Node)]
49pub enum VariableDimension {
50 UnsizedDimension(Box<UnsizedDimension>),
51 UnpackedDimension(Box<UnpackedDimension>),
52 AssociativeDimension(Box<AssociativeDimension>),
53 QueueDimension(Box<QueueDimension>),
54}
55
56#[derive(Clone, Debug, PartialEq, Node)]
57pub struct QueueDimension {
58 pub nodes: (Bracket<(Symbol, Option<(Symbol, ConstantExpression)>)>,),
59}
60
61#[derive(Clone, Debug, PartialEq, Node)]
62pub struct UnsizedDimension {
63 pub nodes: (Symbol, Symbol),
64}