Skip to content

Restrictions.sdf3

pdmosses/sdf/org.metaborg.meta.lang.template/syntax/restrictions/Restrictions.sdf3

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
30
31
32
33
34
module 

imports characterclass/CC 
                characterclass/Character-Class
                symbols/Symbols 
                constants/StrCon

context-free syntax

.CharClass = <<CharClass>>
.Seq = <<CharClass>.<Lookaheads>>  

.Single = <<Lookahead>>
//"left":Lookaheads "|" "right":Lookaheads -> Lookaheads  {cons("alt"),right}
.Alt = <<Lookaheads> | <Lookaheads>> {right}
 = <(<Lookaheads>)> {bracket}
.List = <[[<list:{Lookahead ", "}*>]]>

Restriction.Follow = <<RestrictionSymbols> -/- <Lookaheads>>
RestrictionSymbols = <<list:{Symbol "\n"}*>>

 = <<list:{Restriction "\n"}*>>

Grammar.Restrictions = <
        restrictions

                <Restrictions>

        >


context-free priorities    
    Lookahead.Seq > 
    Lookaheads.Alt