Productions( Production("Expression","{}","{aterm:=ATerm}", Alternatives( Alternative("Expression", Children( Child("pos","Pos","{}","{}", Rules()), Child("txt","String","{}","{}", Rules())), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 91, column 17)","lhs.aterm")), Expression("Visage.ag(line 91, column 29)","AAppl \"Expression\" [AString (sQ (showAGPos @pos)), AString (sQ (show @txt))]\n"))), LocRules()))), Production("VisageAlternative","{}","{aterm:=ATerm}", Alternatives( Alternative("VAlternative", Children( Child("con","Constructor","{}","{}", Rules()), Child("children","VisageChildren","{}","{aterms:=[ATerm]}", Rules()), Child("rules","VisageRules","{isLoc:=Bool}","{aterms:=[ATerm]}", Rules( Rule("isLoc", Pattern( Var("Visage.ag(line 65, column 18)","rules.isLoc")), Expression("Visage.ag(line 65, column 35)","False\n")))), Child("locrules","VisageRules","{isLoc:=Bool}","{aterms:=[ATerm]}", Rules( Rule("isLoc", Pattern( Var("Visage.ag(line 64, column 18)","locrules.isLoc")), Expression("Visage.ag(line 64, column 35)","True\n"))))), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 61, column 18)","lhs.aterm")), Expression("Visage.ag(line 61, column 30)","AAppl \"Alternative\" [AString (sQ (getName @con)), AAppl \"Children\" @children.aterms,\n AAppl \"Rules\" @rules.aterms,\n AAppl \"LocRules\" @locrules.aterms]\n"))), LocRules()))), Production("VisageAlternatives","{}","{aterms:=[ATerm]}", Alternatives( Alternative("Cons", Children( Child("hd","VisageAlternative","{}","{aterm:=ATerm}", Rules()), Child("tl","VisageAlternatives","{}","{aterms:=[ATerm]}", Rules())), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 56, column 17)","lhs.aterms")), Expression("Visage.ag(line 56, column 30)","@hd.aterm : @tl.aterms\n"))), LocRules()), Alternative("Nil", Children(), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 57, column 17)","lhs.aterms")), Expression("Visage.ag(line 57, column 30)","[]\n"))), LocRules()))), Production("VisageChild","{}","{aterm:=ATerm}", Alternatives( Alternative("VChild", Children( Child("name","Name","{}","{}", Rules()), Child("tp","Type","{}","{}", Rules()), Child("inh","Attributes","{}","{}", Rules()), Child("syn","Attributes","{}","{}", Rules()), Child("rules","VisageRules","{isLoc:=Bool}","{aterms:=[ATerm]}", Rules( Rule("isLoc", Pattern( Var("Visage.ag(line 77, column 18)","rules.isLoc")), Expression("Visage.ag(line 77, column 32)","False\n"))))), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 73, column 18)","lhs.aterm")), Expression("Visage.ag(line 73, column 30)","AAppl \"Child\" [AString (sQ (getName @name)), AString (sQ (show @tp)),\n AString (sQ (show @inh)),\n AString (sQ (show @syn)),\n AAppl \"Rules\" @rules.aterms]\n"))), LocRules()))), Production("VisageChildren","{}","{aterms:=[ATerm]}", Alternatives( Alternative("Cons", Children( Child("hd","VisageChild","{}","{aterm:=ATerm}", Rules()), Child("tl","VisageChildren","{}","{aterms:=[ATerm]}", Rules())), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 68, column 17)","lhs.aterms")), Expression("Visage.ag(line 68, column 30)","@hd.aterm : @tl.aterms\n"))), LocRules()), Alternative("Nil", Children(), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 69, column 17)","lhs.aterms")), Expression("Visage.ag(line 69, column 30)","[]\n"))), LocRules()))), Production("VisageGrammar","{}","{aterm:=ATerm}", Alternatives( Alternative("VGrammar", Children( Child("prods","VisageProductions","{}","{aterms:=[ATerm]}", Rules())), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 42, column 18)","lhs.aterm")), Expression("Visage.ag(line 42, column 30)","AAppl \"Productions\" @prods.aterms\n"))), LocRules()))), Production("VisagePattern","{}","{aterm:=ATerm}", Alternatives( Alternative("VAlias", Children( Child("field","Name","{}","{}", Rules()), Child("attr","Name","{}","{}", Rules()), Child("pat","VisagePattern","{}","{aterm:=ATerm}", Rules())), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 107, column 18)","lhs.aterm")), Expression("Visage.ag(line 107, column 30)","AAppl \"Pattern\" [AAppl \"Alias\" [AString (sQ (showAGPos (getPos @field))),\n AString (sQ (getName @attr)), @pat.aterm]]\n"))), LocRules()), Alternative("VConstr", Children( Child("name","Constructor","{}","{}", Rules()), Child("pats","VisagePatterns","{}","{aterms:=[ATerm]}", Rules())), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 100, column 18)","lhs.aterm")), Expression("Visage.ag(line 100, column 30)","AAppl \"Pattern\" [AAppl \"Constr\" [AString (sQ (showAGPos (getPos @name))),\n AString (sQ (getName @name)),\n AAppl \"Patterns\" @pats.aterms]]\n"))), LocRules()), Alternative("VProduct", Children( Child("pos","Pos","{}","{}", Rules()), Child("pats","VisagePatterns","{}","{aterms:=[ATerm]}", Rules())), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 103, column 18)","lhs.aterm")), Expression("Visage.ag(line 103, column 30)","AAppl \"Pattern\" [AAppl \"Product\" [AString (sQ (showAGPos @pos)),\n AAppl \"Patterns\" @pats.aterms]]\n"))), LocRules()), Alternative("VUnderscore", Children( Child("pos","Pos","{}","{}", Rules())), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 109, column 18)","lhs.aterm")), Expression("Visage.ag(line 109, column 30)","AAppl \"Pattern\" [AAppl \"Underscore\" [AString (sQ (showAGPos @pos))]]\n"))), LocRules()), Alternative("VVar", Children( Child("field","Name","{}","{}", Rules()), Child("attr","Name","{}","{}", Rules())), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 105, column 18)","lhs.aterm")), Expression("Visage.ag(line 105, column 30)","AAppl \"Pattern\" [AAppl \"Var\" [AString (sQ (showAGPos (getPos @field))),\n AString (sQ (getName @attr))]]\n"))), LocRules()))), Production("VisagePatterns","{}","{aterms:=[ATerm]}", Alternatives( Alternative("Cons", Children( Child("hd","VisagePattern","{}","{aterm:=ATerm}", Rules()), Child("tl","VisagePatterns","{}","{aterms:=[ATerm]}", Rules())), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 95, column 17)","lhs.aterms")), Expression("Visage.ag(line 95, column 30)","@hd.aterm : @tl.aterms\n"))), LocRules()), Alternative("Nil", Children(), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 96, column 17)","lhs.aterms")), Expression("Visage.ag(line 96, column 30)","[]\n"))), LocRules()))), Production("VisageProduction","{}","{aterm:=ATerm}", Alternatives( Alternative("VProduction", Children( Child("nt","Nonterminal","{}","{}", Rules()), Child("inh","Attributes","{}","{}", Rules()), Child("syn","Attributes","{}","{}", Rules()), Child("alts","VisageAlternatives","{}","{aterms:=[ATerm]}", Rules())), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 51, column 18)","lhs.aterm")), Expression("Visage.ag(line 51, column 30)","AAppl \"Production\" [AString (sQ (getName @nt)), AString (sQ(show @inh)),\n AString (sQ(show @syn)), AAppl \"Alternatives\" @alts.aterms]\n"))), LocRules()))), Production("VisageProductions","{}","{aterms:=[ATerm]}", Alternatives( Alternative("Cons", Children( Child("hd","VisageProduction","{}","{aterm:=ATerm}", Rules()), Child("tl","VisageProductions","{}","{aterms:=[ATerm]}", Rules())), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 46, column 17)","lhs.aterms")), Expression("Visage.ag(line 46, column 30)","@hd.aterm : @tl.aterms\n"))), LocRules()), Alternative("Nil", Children(), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 47, column 17)","lhs.aterms")), Expression("Visage.ag(line 47, column 30)","[]\n"))), LocRules()))), Production("VisageRule","{isLoc:=Bool}","{aterm:=ATerm}", Alternatives( Alternative("VRule", Children( Child("fieldattrs","[(Name,Name)]","{}","{}", Rules()), Child("pat","VisagePattern","{}","{aterm:=ATerm}", Rules()), Child("rhs","Expression","{}","{aterm:=ATerm}", Rules()), Child("owrt","Bool","{}","{}", Rules()), Child("rule","Rule","{}","{}", Rules())), Rules( Rule("aterm", Pattern( Var("Visage.ag(line 85, column 18)","lhs.aterm")), Expression("Visage.ag(line 85, column 30)","AAppl (if @lhs.isLoc then \"LocRule\" else \"Rule\")\n ([@pat.aterm, @rhs.aterm] ++ if @lhs.isLoc then [AString (sQ (show @owrt))] else [])\n"))), LocRules()))), Production("VisageRules","{isLoc:=Bool}","{aterms:=[ATerm]}", Alternatives( Alternative("Cons", Children( Child("hd","VisageRule","{isLoc:=Bool}","{aterm:=ATerm}", Rules( Rule("isLoc", Pattern( Var("./VisageSyntax.ag(line 21, column 1)","hd.isLoc")), Expression("","@lhs.isLoc")))), Child("tl","VisageRules","{isLoc:=Bool}","{aterms:=[ATerm]}", Rules( Rule("isLoc", Pattern( Var("./VisageSyntax.ag(line 21, column 1)","tl.isLoc")), Expression("","@lhs.isLoc"))))), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 80, column 17)","lhs.aterms")), Expression("Visage.ag(line 80, column 30)","@hd.aterm : @tl.aterms\n"))), LocRules()), Alternative("Nil", Children(), Rules( Rule("aterms", Pattern( Var("Visage.ag(line 81, column 17)","lhs.aterms")), Expression("Visage.ag(line 81, column 30)","[]\n"))), LocRules()))))