File: VisageSyntax.ag

package info (click to toggle)
uuagc 0.9.56-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 5,764 kB
  • sloc: haskell: 84,340; makefile: 11
file content (42 lines) | stat: -rw-r--r-- 1,444 bytes parent folder | download | duplicates (6)
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
35
36
37
38
39
40
41
42
imports
{
import CommonTypes
import UU.Pretty
import AbstractSyntax
import VisagePatterns
import Expression
}

DATA VisageGrammar      | VGrammar nonts : VisageNonterminals

TYPE VisageNonterminals  = [VisageNonterminal]

TYPE VisageProductions = [VisageProduction]

TYPE VisageChildren     = [VisageChild]

TYPE VisageRules        = [VisageRule]

DATA VisageNonterminal   | VNonterminal nt   : {NontermIdent}
                                        inh  : {Attributes}
                                        syn  : {Attributes}
                                        alts : VisageProductions

DATA VisageProduction  | VProduction   con      : {ConstructorIdent}
                                       children : VisageChildren
                                       rules    : VisageRules
                                       locrules : VisageRules


DATA VisageChild        | VChild   name  : {Identifier}
                                   tp    : {Type}
                                   inh   : {Attributes}
                                   syn   : {Attributes}
                                   rules : VisageRules

DATA VisageRule         | VRule    fieldattrs : {[(Identifier,Identifier)]}
                                   attr       : {Identifier}
                                   pat        : VisagePattern
                                   rhs        : Expression
                                   owrt       : {Bool}