sv_parser_syntaxtree/expressions/
concatenations.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub struct Concatenation {
7 pub nodes: (Brace<List<Symbol, Expression>>,),
8}
9
10#[derive(Clone, Debug, PartialEq, Node)]
11pub struct ConstantConcatenation {
12 pub nodes: (Brace<List<Symbol, ConstantExpression>>,),
13}
14
15#[derive(Clone, Debug, PartialEq, Node)]
16pub struct ConstantMultipleConcatenation {
17 pub nodes: (Brace<(ConstantExpression, ConstantConcatenation)>,),
18}
19
20#[derive(Clone, Debug, PartialEq, Node)]
21pub struct ModulePathConcatenation {
22 pub nodes: (Brace<List<Symbol, ModulePathExpression>>,),
23}
24
25#[derive(Clone, Debug, PartialEq, Node)]
26pub struct ModulePathMultipleConcatenation {
27 pub nodes: (Brace<(ConstantExpression, ModulePathConcatenation)>,),
28}
29
30#[derive(Clone, Debug, PartialEq, Node)]
31pub struct MultipleConcatenation {
32 pub nodes: (Brace<(Expression, Concatenation)>,),
33}
34
35#[derive(Clone, Debug, PartialEq, Node)]
36pub struct StreamingConcatenation {
37 pub nodes: (Brace<(StreamOperator, Option<SliceSize>, StreamConcatenation)>,),
38}
39
40#[derive(Clone, Debug, PartialEq, Node)]
41pub struct StreamOperator {
42 pub nodes: (Symbol,),
43}
44
45#[derive(Clone, Debug, PartialEq, Node)]
46pub enum SliceSize {
47 SimpleType(Box<SimpleType>),
48 ConstantExpression(Box<ConstantExpression>),
49}
50
51#[derive(Clone, Debug, PartialEq, Node)]
52pub struct StreamConcatenation {
53 pub nodes: (Brace<List<Symbol, StreamExpression>>,),
54}
55
56#[derive(Clone, Debug, PartialEq, Node)]
57pub struct StreamExpression {
58 pub nodes: (Expression, Option<(Keyword, Bracket<ArrayRangeExpression>)>),
59}
60
61#[derive(Clone, Debug, PartialEq, Node)]
62pub enum ArrayRangeExpression {
63 Expression(Box<Expression>),
64 Colon(Box<ArrayRangeExpressionColon>),
65 PlusColon(Box<ArrayRangeExpressionPlusColon>),
66 MinusColon(Box<ArrayRangeExpressionMinusColon>),
67}
68
69#[derive(Clone, Debug, PartialEq, Node)]
70pub struct ArrayRangeExpressionColon {
71 pub nodes: (Expression, Symbol, Expression),
72}
73
74#[derive(Clone, Debug, PartialEq, Node)]
75pub struct ArrayRangeExpressionPlusColon {
76 pub nodes: (Expression, Symbol, Expression),
77}
78
79#[derive(Clone, Debug, PartialEq, Node)]
80pub struct ArrayRangeExpressionMinusColon {
81 pub nodes: (Expression, Symbol, Expression),
82}
83
84#[derive(Clone, Debug, PartialEq, Node)]
85pub struct EmptyUnpackedArrayConcatenation {
86 pub nodes: (Symbol, Symbol),
87}