use crate::*; // ----------------------------------------------------------------------------- #[derive(Clone, Debug, PartialEq, Node)] pub struct DefparamAssignment { pub nodes: ( HierarchicalParameterIdentifier, Symbol, ConstantMintypmaxExpression, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct NetDeclAssignment { pub nodes: ( NetIdentifier, Vec, Option<(Symbol, Expression)>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ParamAssignment { pub nodes: ( ParameterIdentifier, Vec, Option<(Symbol, ConstantParamExpression)>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub enum SpecparamAssignment { Mintypmax(Box), PulseControlSpecparam(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub struct SpecparamAssignmentMintypmax { pub nodes: (SpecparamIdentifier, Symbol, ConstantMintypmaxExpression), } #[derive(Clone, Debug, PartialEq, Node)] pub struct TypeAssignment { pub nodes: (TypeIdentifier, Option<(Symbol, DataType)>), } #[derive(Clone, Debug, PartialEq, Node)] pub enum PulseControlSpecparam { WithoutDescriptor(Box), WithDescriptor(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub struct PulseControlSpecparamWithoutDescriptor { pub nodes: ( Symbol, Symbol, Paren<(RejectLimitValue, Option<(Symbol, ErrorLimitValue)>)>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct PulseControlSpecparamWithDescriptor { pub nodes: ( Symbol, SpecifyInputTerminalDescriptor, Symbol, SpecifyOutputTerminalDescriptor, Symbol, Paren<(RejectLimitValue, Option<(Symbol, ErrorLimitValue)>)>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ErrorLimitValue { pub nodes: (LimitValue,), } #[derive(Clone, Debug, PartialEq, Node)] pub struct RejectLimitValue { pub nodes: (LimitValue,), } #[derive(Clone, Debug, PartialEq, Node)] pub struct LimitValue { pub nodes: (ConstantMintypmaxExpression,), } #[derive(Clone, Debug, PartialEq, Node)] pub enum VariableDeclAssignment { Variable(Box), DynamicArray(Box), Class(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub struct VariableDeclAssignmentVariable { pub nodes: ( VariableIdentifier, Vec, Option<(Symbol, Expression)>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct VariableDeclAssignmentDynamicArray { pub nodes: ( DynamicArrayVariableIdentifier, UnsizedDimension, Vec, Option<(Symbol, DynamicArrayNew)>, ), } #[derive(Clone, Debug, PartialEq, Node)] pub struct VariableDeclAssignmentClass { pub nodes: (ClassVariableIdentifier, (Symbol, ClassNew)), } #[derive(Clone, Debug, PartialEq, Node)] pub enum ClassNew { Argument(Box), Expression(Box), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ClassNewArgument { pub nodes: (Option, Keyword, Option>), } #[derive(Clone, Debug, PartialEq, Node)] pub struct ClassNewExpression { pub nodes: (Keyword, Expression), } #[derive(Clone, Debug, PartialEq, Node)] pub struct DynamicArrayNew { pub nodes: (Keyword, Bracket, Option>), }