sv_parser_syntaxtree/source_text/
package_items.rs

1use crate::*;
2
3// -----------------------------------------------------------------------------
4
5#[derive(Clone, Debug, PartialEq, Node)]
6pub enum PackageItem {
7    PackageOrGenerateItemDeclaration(Box<PackageOrGenerateItemDeclaration>),
8    AnonymousProgram(Box<AnonymousProgram>),
9    PackageExportDeclaration(Box<PackageExportDeclaration>),
10    TimeunitsDeclaration(Box<TimeunitsDeclaration>),
11}
12
13#[derive(Clone, Debug, PartialEq, Node)]
14pub enum PackageOrGenerateItemDeclaration {
15    NetDeclaration(Box<NetDeclaration>),
16    DataDeclaration(Box<DataDeclaration>),
17    TaskDeclaration(Box<TaskDeclaration>),
18    FunctionDeclaration(Box<FunctionDeclaration>),
19    CheckerDeclaration(Box<CheckerDeclaration>),
20    DpiImportExport(Box<DpiImportExport>),
21    ExternConstraintDeclaration(Box<ExternConstraintDeclaration>),
22    ClassDeclaration(Box<ClassDeclaration>),
23    InterfaceClassDeclaration(Box<InterfaceClassDeclaration>),
24    ClassConstructorDeclaration(Box<ClassConstructorDeclaration>),
25    LocalParameterDeclaration(Box<(LocalParameterDeclaration, Symbol)>),
26    ParameterDeclaration(Box<(ParameterDeclaration, Symbol)>),
27    CovergroupDeclaration(Box<CovergroupDeclaration>),
28    AssertionItemDeclaration(Box<AssertionItemDeclaration>),
29    Empty(Box<Symbol>),
30}
31
32#[derive(Clone, Debug, PartialEq, Node)]
33pub struct AnonymousProgram {
34    pub nodes: (Keyword, Symbol, Vec<AnonymousProgramItem>, Keyword),
35}
36
37#[derive(Clone, Debug, PartialEq, Node)]
38pub enum AnonymousProgramItem {
39    TaskDeclaration(Box<TaskDeclaration>),
40    FunctionDeclaration(Box<FunctionDeclaration>),
41    ClassDeclaration(Box<ClassDeclaration>),
42    InterfaceClassDeclaration(Box<InterfaceClassDeclaration>),
43    CovergroupDeclaration(Box<CovergroupDeclaration>),
44    ClassConstructorDeclaration(Box<ClassConstructorDeclaration>),
45    Empty(Box<Symbol>),
46}