scarf_syntax/expressions/
expression_left_side_values.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub enum NetLvalue<'a> {
9 Selection(Box<SelectionNetLvalue<'a>>),
10 Nested(Box<NestedNetLvalue<'a>>),
11 Assignment(Box<AssignmentNetLvalue<'a>>),
12}
13
14#[derive(Clone, Debug, PartialEq)]
15pub struct SelectionNetLvalue<'a>(
16 pub PsOrHierarchicalNetIdentifier<'a>,
17 pub ConstantSelect<'a>,
18);
19
20#[derive(Clone, Debug, PartialEq)]
21pub struct NestedNetLvalue<'a>(
22 pub Metadata<'a>, pub NetLvalue<'a>,
24 pub Vec<(Metadata<'a>, NetLvalue<'a>)>,
25 pub Metadata<'a>, );
27
28#[derive(Clone, Debug, PartialEq)]
29pub struct AssignmentNetLvalue<'a>(
30 pub Option<AssignmentPatternExpressionType<'a>>,
31 pub AssignmentPatternNetLvalue<'a>,
32);
33
34#[derive(Clone, Debug, PartialEq)]
35pub enum VariableLvalue<'a> {
36 Selection(Box<SelectionVariableLvalue<'a>>),
37 Nested(Box<NestedVariableLvalue<'a>>),
38 Assignment(Box<AssignmentVariableLvalue<'a>>),
39 Streaming(Box<StreamingConcatenation<'a>>),
40}
41
42#[derive(Clone, Debug, PartialEq)]
43pub enum ImplicitClassHandleOrPackageScope<'a> {
44 ImplicitClassHandle(Box<(ImplicitClassHandle<'a>, Metadata<'a>)>),
45 PackageScope(Box<PackageScope<'a>>),
46}
47
48#[derive(Clone, Debug, PartialEq)]
49pub struct SelectionVariableLvalue<'a>(
50 pub Option<ImplicitClassHandleOrPackageScope<'a>>,
51 pub HierarchicalVariableIdentifier<'a>,
52 pub Select<'a>,
53);
54
55#[derive(Clone, Debug, PartialEq)]
56pub struct NestedVariableLvalue<'a>(
57 pub Metadata<'a>, pub VariableLvalue<'a>,
59 pub Vec<(Metadata<'a>, VariableLvalue<'a>)>,
60 pub Metadata<'a>, );
62
63#[derive(Clone, Debug, PartialEq)]
64pub struct AssignmentVariableLvalue<'a>(
65 pub Option<AssignmentPatternExpressionType<'a>>,
66 pub AssignmentPatternVariableLvalue<'a>,
67);
68
69#[derive(Clone, Debug, PartialEq)]
70pub struct NonrangeVariableLvalue<'a>(
71 pub ImplicitClassHandleOrPackageScope<'a>,
72 pub HierarchicalVariableIdentifier<'a>,
73 pub NonrangeSelect<'a>,
74);