use crate::*; // ----------------------------------------------------------------------------- #[derive(Clone, Debug, PartialEq, Node)] pub enum ConstantPrimary { PrimaryLiteral(Box), PsParameter(Box), Specparam(Box), GenvarIdentifier(Box), FormalPort(Box), Enum(Box), Concatenation(Box), MultipleConcatenation(Box), ConstantFunctionCall(Box), ConstantLetExpression(Box), MintypmaxExpression(Box), ConstantCast(Box), ConstantAssignmentPatternExpression(Box), TypeReference(Box), Null(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantPrimaryPsParameter { pub nodes: (PsParameterIdentifier, ConstantSelect), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantPrimarySpecparam { pub nodes: ( SpecparamIdentifier, Option>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantPrimaryFormalPort { pub nodes: (FormalPortIdentifier, ConstantSelect), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantPrimaryEnum { pub nodes: (PackageScopeOrClassScope, EnumIdentifier), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantPrimaryConcatenation { pub nodes: ( ConstantConcatenation, Option>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantPrimaryMultipleConcatenation { pub nodes: ( ConstantMultipleConcatenation, Option>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantPrimaryMintypmaxExpression { pub nodes: (Paren,), } #[derive(Clone, Debug, PartialEq, Node)] pub enum ModulePathPrimary { Number(Box), Identifier(Box), ModulePathConcatenation(Box), ModulePathMultipleConcatenation(Box), FunctionSubroutineCall(Box), Mintypmax(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ModulePathPrimaryMintypmax { pub nodes: (Paren,), } #[derive(Clone, Debug, PartialEq, Node)] pub enum Primary { PrimaryLiteral(Box), Hierarchical(Box), EmptyUnpackedArrayConcatenation(Box), Concatenation(Box), MultipleConcatenation(Box), FunctionSubroutineCall(Box), LetExpression(Box), MintypmaxExpression(Box), Cast(Box), AssignmentPatternExpression(Box), StreamingConcatenation(Box), SequenceMethodCall(Box), This(Box), Dollar(Box), Null(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub struct PrimaryHierarchical { pub nodes: ( Option, HierarchicalIdentifier, Select, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct PrimaryConcatenation { pub nodes: (Concatenation, Option>), } #[derive(Clone, Debug, PartialEq, Node)] pub struct PrimaryMultipleConcatenation { pub nodes: (MultipleConcatenation, Option>), } #[derive(Clone, Debug, PartialEq, Node)] pub struct PrimaryMintypmaxExpression { pub nodes: (Paren,), } #[derive(Clone, Debug, PartialEq, Node)] pub enum ClassQualifierOrPackageScope { ClassQualifier(Box), PackageScope(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ClassQualifier { pub nodes: (Option, Option), } #[derive(Clone, Debug, PartialEq, Node)] pub enum RangeExpression { Expression(Box), PartSelectRange(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub enum PrimaryLiteral { Number(Box), TimeLiteral(Box), UnbasedUnsizedLiteral(Box), StringLiteral(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub enum TimeLiteral { Unsigned(Box), FixedPoint(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub struct TimeLiteralUnsigned { pub nodes: (UnsignedNumber, TimeUnit), } #[derive(Clone, Debug, PartialEq, Node)] pub struct TimeLiteralFixedPoint { pub nodes: (FixedPointNumber, TimeUnit), } #[derive(Clone, Debug, PartialEq, Node)] pub enum TimeUnit { S(Box), MS(Box), US(Box), NS(Box), PS(Box), FS(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub enum ImplicitClassHandle { This(Box), Super(Box), ThisSuper(Box<(Keyword, Symbol, Keyword)>), } #[derive(Clone, Debug, PartialEq, Node)] pub struct BitSelect { pub nodes: (Vec>,), } #[derive(Clone, Debug, PartialEq, Node)] pub struct Select { pub nodes: ( Option<( Vec<(Symbol, MemberIdentifier, BitSelect)>, Symbol, MemberIdentifier, )>, BitSelect, Option>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct NonrangeSelect { pub nodes: ( Option<( Vec<(Symbol, MemberIdentifier, BitSelect)>, Symbol, MemberIdentifier, )>, BitSelect, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantBitSelect { pub nodes: (Vec>,), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantSelect { pub nodes: ( Option<( Vec<(Symbol, MemberIdentifier, ConstantBitSelect)>, Symbol, MemberIdentifier, )>, ConstantBitSelect, Option>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantCast { pub nodes: (CastingType, Symbol, Paren), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ConstantLetExpression { pub nodes: (LetExpression,), } #[derive(Clone, Debug, PartialEq, Node)] pub struct Cast { pub nodes: (CastingType, Symbol, Paren), }