scarf_syntax/source_text/
package_items.rs1use crate::*;
6
7#[derive(Clone, Debug, PartialEq)]
8pub enum PackageItem<'a> {
9 PackageOrGenerate(Box<PackageOrGenerateItemDeclaration<'a>>),
10 AnonymousProgram(Box<AnonymousProgram<'a>>),
11 PackageExport(Box<PackageExportDeclaration<'a>>),
12 Timeunits(Box<TimeunitsDeclaration<'a>>),
13}
14
15#[derive(Clone, Debug, PartialEq)]
16pub enum PackageOrGenerateItemDeclaration<'a> {
17 Net(Box<NetDeclaration<'a>>),
18 Data(Box<DataDeclaration<'a>>),
19 Task(Box<TaskDeclaration<'a>>),
20 Function(Box<FunctionDeclaration<'a>>),
21 Checker(Box<CheckerDeclaration<'a>>),
22 DpiImportExport(Box<DpiImportExport<'a>>),
23 ExternConstraint(Box<ExternConstraintDeclaration<'a>>),
24 Class(Box<ClassDeclaration<'a>>),
25 InterfaceClass(Box<InterfaceClassDeclaration<'a>>),
26 ClassConstructor(Box<ClassConstructorDeclaration<'a>>),
27 LocalParameter(
28 Box<(
29 LocalParameterDeclaration<'a>,
30 Metadata<'a>, )>,
32 ),
33 Parameter(
34 Box<(
35 ParameterDeclaration<'a>,
36 Metadata<'a>, )>,
38 ),
39 Covergroup(Box<CovergroupDeclaration<'a>>),
40 AssertionItem(Box<AssertionItemDeclaration<'a>>),
41 Null(Box<Metadata<'a>>),
42}
43
44#[derive(Clone, Debug, PartialEq)]
45pub struct AnonymousProgram<'a>(
46 pub Metadata<'a>, pub Metadata<'a>, pub Vec<AnonymousProgramItem<'a>>,
49 pub Metadata<'a>, );
51
52#[derive(Clone, Debug, PartialEq)]
53pub enum AnonymousProgramItem<'a> {
54 Task(Box<TaskDeclaration<'a>>),
55 Function(Box<FunctionDeclaration<'a>>),
56 Class(Box<ClassDeclaration<'a>>),
57 InterfaceClass(Box<InterfaceClassDeclaration<'a>>),
58 Covergroup(Box<CovergroupDeclaration<'a>>),
59 ClassConstructor(Box<ClassConstructorDeclaration<'a>>),
60 Null(Box<Metadata<'a>>),
61}