restriction.stx
pdmosses/sdf/org.metaborg.meta.lang.template/trans/statix/section/restriction.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
|
module statix/section/restriction
imports
statix/section/grammar
statix/symbol
signature
constructors
Restrictions : list(Restriction) -> Grammar
LexicalRestrictions : list(Restriction) -> Grammar
ContextFreeRestrictions : list(Restriction) -> Grammar
sorts constructors
Follow : list(Symbol) * Lookaheads -> Restriction
sorts Lookaheads
rules
grammarOK(s, Restrictions(restrictions)) :- restrictionsOK(s, restrictions).
grammarOK(s, LexicalRestrictions(restrictions)) :- restrictionsOK(s, restrictions).
grammarOK(s, ContextFreeRestrictions(restrictions)) :- restrictionsOK(s, restrictions).
: scope * Restriction
restrictionOK(s, Follow(symbols, _)) :- typesOfSymbols(s, symbols) == _.
maps restrictionOK(*, list(*))
|