scarf_syntax/source_text/
configuration_source_text.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub struct ConfigDeclaration<'a>(
9 pub Metadata<'a>, pub ConfigIdentifier<'a>,
11 pub Metadata<'a>, pub Vec<(
13 LocalParameterDeclaration<'a>,
14 Metadata<'a>, )>,
16 pub DesignStatement<'a>,
17 pub Vec<ConfigRuleStatement<'a>>,
18 pub Metadata<'a>, pub Option<(
20 Metadata<'a>, ConfigIdentifier<'a>,
22 )>,
23);
24
25#[derive(Clone, Debug, PartialEq)]
26pub struct DesignStatement<'a>(
27 pub Metadata<'a>, pub Vec<(
29 Option<(
30 LibraryIdentifier<'a>,
31 Metadata<'a>, )>,
33 CellIdentifier<'a>,
34 )>,
35 pub Metadata<'a>, );
37
38#[derive(Clone, Debug, PartialEq)]
39pub enum ConfigRuleStatement<'a> {
40 DefaultLiblist(
41 Box<(
42 DefaultClause<'a>,
43 LiblistClause<'a>,
44 Metadata<'a>, )>,
46 ),
47 InstLiblist(
48 Box<(
49 InstClause<'a>,
50 LiblistClause<'a>,
51 Metadata<'a>, )>,
53 ),
54 InstUse(
55 Box<(
56 InstClause<'a>,
57 UseClause<'a>,
58 Metadata<'a>, )>,
60 ),
61 CellLiblist(
62 Box<(
63 CellClause<'a>,
64 LiblistClause<'a>,
65 Metadata<'a>, )>,
67 ),
68 CellUse(
69 Box<(
70 CellClause<'a>,
71 UseClause<'a>,
72 Metadata<'a>, )>,
74 ),
75}
76
77#[derive(Clone, Debug, PartialEq)]
78pub struct DefaultClause<'a>(
79 pub Metadata<'a>, );
81
82#[derive(Clone, Debug, PartialEq)]
83pub struct InstClause<'a>(
84 pub Metadata<'a>, pub InstName<'a>,
86);
87
88#[derive(Clone, Debug, PartialEq)]
89pub struct InstName<'a>(
90 pub TopmoduleIdentifier<'a>,
91 pub Vec<(
92 Metadata<'a>, InstanceIdentifier<'a>,
94 )>,
95);
96
97#[derive(Clone, Debug, PartialEq)]
98pub struct CellClause<'a>(
99 pub Metadata<'a>, pub Option<(
101 LibraryIdentifier<'a>,
102 Metadata<'a>, )>,
104 pub CellIdentifier<'a>,
105);
106
107#[derive(Clone, Debug, PartialEq)]
108pub struct LiblistClause<'a>(
109 pub Metadata<'a>, pub Vec<LibraryIdentifier<'a>>,
111);
112
113#[derive(Clone, Debug, PartialEq)]
114pub enum UseClause<'a> {
115 Cell(
116 Box<(
117 Metadata<'a>, Option<(
119 LibraryIdentifier<'a>,
120 Metadata<'a>, )>,
122 CellIdentifier<'a>,
123 Option<(
124 Metadata<'a>, Metadata<'a>, )>,
127 )>,
128 ),
129 Parameter(
130 Box<(
131 Metadata<'a>, NamedParameterAssignment<'a>,
133 Vec<(
134 Metadata<'a>, NamedParameterAssignment<'a>,
136 )>,
137 Option<(
138 Metadata<'a>, Metadata<'a>, )>,
141 )>,
142 ),
143 CellParameter(
144 Box<(
145 Metadata<'a>, Option<(
147 LibraryIdentifier<'a>,
148 Metadata<'a>, )>,
150 CellIdentifier<'a>,
151 NamedParameterAssignment<'a>,
152 Vec<(
153 Metadata<'a>, NamedParameterAssignment<'a>,
155 )>,
156 Option<(
157 Metadata<'a>, Metadata<'a>, )>,
160 )>,
161 ),
162}