sv_parser_syntaxtree/expressions/
expression_leftside_values.rs

1use crate::*;
2
3// -----------------------------------------------------------------------------
4
5#[derive(Clone, Debug, PartialEq, Node)]
6pub enum NetLvalue {
7    Identifier(Box<NetLvalueIdentifier>),
8    Lvalue(Box<NetLvalueLvalue>),
9    Pattern(Box<NetLvaluePattern>),
10}
11
12#[derive(Clone, Debug, PartialEq, Node)]
13pub struct NetLvalueIdentifier {
14    pub nodes: (PsOrHierarchicalNetIdentifier, ConstantSelect),
15}
16
17#[derive(Clone, Debug, PartialEq, Node)]
18pub struct NetLvalueLvalue {
19    pub nodes: (Brace<List<Symbol, NetLvalue>>,),
20}
21
22#[derive(Clone, Debug, PartialEq, Node)]
23pub struct NetLvaluePattern {
24    pub nodes: (
25        Option<AssignmentPatternExpressionType>,
26        AssignmentPatternNetLvalue,
27    ),
28}
29
30#[derive(Clone, Debug, PartialEq, Node)]
31pub enum VariableLvalue {
32    Identifier(Box<VariableLvalueIdentifier>),
33    Lvalue(Box<VariableLvalueLvalue>),
34    Pattern(Box<VariableLvaluePattern>),
35    StreamingConcatenation(Box<StreamingConcatenation>),
36}
37
38#[derive(Clone, Debug, PartialEq, Node)]
39pub struct VariableLvalueIdentifier {
40    pub nodes: (
41        Option<ImplicitClassHandleOrPackageScope>,
42        HierarchicalVariableIdentifier,
43        Select,
44    ),
45}
46
47#[derive(Clone, Debug, PartialEq, Node)]
48pub struct VariableLvalueLvalue {
49    pub nodes: (Brace<List<Symbol, VariableLvalue>>,),
50}
51
52#[derive(Clone, Debug, PartialEq, Node)]
53pub struct VariableLvaluePattern {
54    pub nodes: (
55        Option<AssignmentPatternExpressionType>,
56        AssignmentPatternVariableLvalue,
57    ),
58}
59
60#[derive(Clone, Debug, PartialEq, Node)]
61pub struct NonrangeVariableLvalue {
62    pub nodes: (
63        Option<ImplicitClassHandleOrPackageScope>,
64        HierarchicalVariableIdentifier,
65        NonrangeSelect,
66    ),
67}