scarf_syntax/general/
attributes.rs

1// =======================================================================
2// attributes.rs
3// =======================================================================
4// AST Nodes from 1800-2023 A.9.1
5
6use crate::*;
7
8#[derive(Clone, Debug, PartialEq)]
9pub struct AttributeInstance<'a>(
10    pub Metadata<'a>, // (*
11    pub AttrSpec<'a>,
12    pub Vec<(Metadata<'a>, AttrSpec<'a>)>,
13    pub Metadata<'a>, // *)
14);
15
16#[derive(Clone, Debug, PartialEq)]
17pub struct AttrSpec<'a>(
18    pub AttrName<'a>,
19    pub Option<(Metadata<'a>, ConstantExpression<'a>)>,
20);
21
22#[derive(Clone, Debug, PartialEq)]
23pub struct AttrName<'a>(pub Identifier<'a>);