sv_parser_syntaxtree/specify_section/
specify_path_declarations.rs1use crate::*;
2
3#[derive(Clone, Debug, PartialEq, Node)]
6pub enum PathDeclaration {
7 SimplePathDeclaration(Box<(SimplePathDeclaration, Symbol)>),
8 EdgeSensitivePathDeclaration(Box<(EdgeSensitivePathDeclaration, Symbol)>),
9 StateDependentPathDeclaration(Box<(StateDependentPathDeclaration, Symbol)>),
10}
11
12#[derive(Clone, Debug, PartialEq, Node)]
13pub enum SimplePathDeclaration {
14 Parallel(Box<SimplePathDeclarationParallel>),
15 Full(Box<SimplePathDeclarationFull>),
16}
17
18#[derive(Clone, Debug, PartialEq, Node)]
19pub struct SimplePathDeclarationParallel {
20 pub nodes: (ParallelPathDescription, Symbol, PathDelayValue),
21}
22
23#[derive(Clone, Debug, PartialEq, Node)]
24pub struct SimplePathDeclarationFull {
25 pub nodes: (FullPathDescription, Symbol, PathDelayValue),
26}
27
28#[derive(Clone, Debug, PartialEq, Node)]
29pub struct ParallelPathDescription {
30 pub nodes: (
31 Paren<(
32 SpecifyInputTerminalDescriptor,
33 Option<PolarityOperator>,
34 Symbol,
35 SpecifyOutputTerminalDescriptor,
36 )>,
37 ),
38}
39
40#[derive(Clone, Debug, PartialEq, Node)]
41pub struct FullPathDescription {
42 pub nodes: (
43 Paren<(
44 ListOfPathInputs,
45 Option<PolarityOperator>,
46 Symbol,
47 ListOfPathOutputs,
48 )>,
49 ),
50}
51
52#[derive(Clone, Debug, PartialEq, Node)]
53pub struct ListOfPathInputs {
54 pub nodes: (List<Symbol, SpecifyInputTerminalDescriptor>,),
55}
56
57#[derive(Clone, Debug, PartialEq, Node)]
58pub struct ListOfPathOutputs {
59 pub nodes: (List<Symbol, SpecifyOutputTerminalDescriptor>,),
60}