scarf_syntax/expressions/
primaries.rs

1// =======================================================================
2// primaries.rs
3// =======================================================================
4// AST Nodes from 1800-2023 A.8.4
5
6use crate::*;
7
8#[derive(Clone, Debug, PartialEq)]
9pub enum TimeLiteral<'a> {
10    TimeLiteralUnsigned(Box<(UnsignedNumber<'a>, TimeUnit<'a>)>),
11    TimeLiteralFixedPoint(Box<(FixedPointNumber<'a>, TimeUnit<'a>)>),
12}
13
14#[derive(Clone, Debug, PartialEq)]
15pub enum TimeUnit<'a> {
16    S(Metadata<'a>),
17    MS(Metadata<'a>),
18    US(Metadata<'a>),
19    NS(Metadata<'a>),
20    PS(Metadata<'a>),
21    FS(Metadata<'a>),
22}
23
24#[derive(Clone, Debug, PartialEq)]
25pub struct ConstantBitSelect<'a>(
26    pub  Vec<(
27        Metadata<'a>, // [
28        ConstantExpression<'a>,
29        Metadata<'a>, // ]
30    )>,
31);
32pub type ConstantSelect<'a> = ();