Skip to main content

scarf_syntax/general/
attributes.rs

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