packages feed

uuagc-0.9.54: src-ag/VisageSyntax.ag

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}