scarf_syntax/source_text/
program_items.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub enum ProgramItem<'a> {
9 Port(
10 Box<(
11 PortDeclaration<'a>,
12 Metadata<'a>, )>,
14 ),
15 NonPort(Box<NonPortProgramItem<'a>>),
16}
17
18#[derive(Clone, Debug, PartialEq)]
19pub enum NonPortProgramItem<'a> {
20 Assign(Box<(Vec<AttributeInstance<'a>>, ContinuousAssign<'a>)>),
21 ModuleOrGenerateDeclaration(
22 Box<(
23 Vec<AttributeInstance<'a>>,
24 ModuleOrGenerateItemDeclaration<'a>,
25 )>,
26 ),
27 Initial(Box<(Vec<AttributeInstance<'a>>, InitialConstruct<'a>)>),
28 Final(Box<(Vec<AttributeInstance<'a>>, FinalConstruct<'a>)>),
29 Assertion(Box<(Vec<AttributeInstance<'a>>, ConcurrentAssertionItem<'a>)>),
30 Timeunits(Box<TimeunitsDeclaration<'a>>),
31 Generate(Box<ProgramGenerateItem<'a>>),
32}
33
34#[derive(Clone, Debug, PartialEq)]
35pub enum ProgramGenerateItem<'a> {
36 Loop(Box<LoopGenerateConstruct<'a>>),
37 Conditional(Box<ConditionalGenerateConstruct<'a>>),
38 Region(Box<GenerateRegion<'a>>),
39 ElaborationSeverity(Box<ElaborationSeveritySystemTask<'a>>),
40}