Skip to content

attribute.stx

pdmosses/sdf/org.metaborg.meta.lang.template/trans/statix/attribute.stx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
module 

imports

  statix/util

signature

  sorts  constructors
    Attrs   : list(Attribute) -> Attributes
    NoAttrs :                    Attributes

  sorts  constructors
    Reject  : Attribute
    Bracket : Attribute

rules

  hasAttribute: Attribute * Attributes -> BOOL
  hasAttribute(attr, attrs) = hasAttributeInList(attr, attributes(attrs)).

  : Attributes -> list(Attribute)
  attributes(Attrs(attributes)) = attributes.
  attributes(NoAttrs())         = [].

  : Attribute * list(Attribute) -> BOOL
  hasAttributeInList(attr, [attr|_]) = TRUE().
  hasAttributeInList(attr, [_   |s]) = hasAttributeInList(attr, s).
  hasAttributeInList(attr, [      ]) = FALSE().