sv_parser_syntaxtree/source_text/
interface_items.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub enum InterfaceOrGenerateItem {
7 Module(Box<InterfaceOrGenerateItemModule>),
8 Extern(Box<InterfaceOrGenerateItemExtern>),
9}
10
11#[derive(Clone, Debug, PartialEq, Node)]
12pub struct InterfaceOrGenerateItemModule {
13 pub nodes: (Vec<AttributeInstance>, ModuleCommonItem),
14}
15
16#[derive(Clone, Debug, PartialEq, Node)]
17pub struct InterfaceOrGenerateItemExtern {
18 pub nodes: (Vec<AttributeInstance>, ExternTfDeclaration),
19}
20
21#[derive(Clone, Debug, PartialEq, Node)]
22pub enum ExternTfDeclaration {
23 Method(Box<ExternTfDeclarationMethod>),
24 Task(Box<ExternTfDeclarationTask>),
25}
26
27#[derive(Clone, Debug, PartialEq, Node)]
28pub struct ExternTfDeclarationMethod {
29 pub nodes: (Keyword, MethodPrototype, Symbol),
30}
31
32#[derive(Clone, Debug, PartialEq, Node)]
33pub struct ExternTfDeclarationTask {
34 pub nodes: (Keyword, Keyword, TaskPrototype, Symbol),
35}
36
37#[derive(Clone, Debug, PartialEq, Node)]
38pub enum InterfaceItem {
39 PortDeclaration(Box<(PortDeclaration, Symbol)>),
40 NonPortInterfaceItem(Box<NonPortInterfaceItem>),
41}
42
43#[derive(Clone, Debug, PartialEq, Node)]
44pub enum NonPortInterfaceItem {
45 GenerateRegion(Box<GenerateRegion>),
46 InterfaceOrGenerateItem(Box<InterfaceOrGenerateItem>),
47 ProgramDeclaration(Box<ProgramDeclaration>),
48 ModportDeclaration(Box<ModportDeclaration>),
49 InterfaceDeclaration(Box<InterfaceDeclaration>),
50 TimeunitsDeclaration(Box<TimeunitsDeclaration>),
51}