1 module AbstractSyntax (Production (..)) where
    2 -- Copyright 1994 by Peter Thiemann
    3 
    4 data Production
    5         = ProdFile [Production]
    6         | ProdProduction String [String] Production        -- optional print name
    7         | ProdTerm [Production]                              -- an alternative of terms
    8         | ProdFactor [Production]                   -- a sequence of factors
    9         | ProdNonterminal String
   10         | ProdTerminal String
   11         | ProdOption Production
   12         | ProdRepeat Production
   13         | ProdRepeatWithAtom Production Production
   14         | ProdRepeat1 Production
   15         | ProdPlus                   -- a helper
   16         | ProdSlash Production                          -- another helper
   17         deriving Eq
   18