INCLUDE "Expression.ag" imports { import UU.Pretty.Basic(PP_Doc) import Expression import HsTokenScanner(lexTokens) import SemHsTokens(sem_HsTokensRoot,wrap_HsTokensRoot, Syn_HsTokensRoot(..),Inh_HsTokensRoot(..)) import ErrorMessages import UU.Scanner.Position import CommonTypes import HsToken import UU.DData.Seq(Seq) } ATTR Expression [ nt,con :{Name} fieldnames :{[Name]} attrs :{[(Name,Name)]} || errors :{Seq Error} usedLocals:{[Name]} usedAttrs :{[(Name,Name)]} pp :{PP_Doc} ] SEM Expression | Expression loc.(errors,pp,usedAttrs,usedLocals) = let inherited = Inh_HsTokensRoot { attrs_Inh_HsTokensRoot = @lhs.attrs , con_Inh_HsTokensRoot = @lhs.con , fieldnames_Inh_HsTokensRoot = @lhs.fieldnames , nt_Inh_HsTokensRoot = @lhs.nt } synthesized = wrap_HsTokensRoot (sem_HsTokensRoot (HsTokensRoot $ lexTokens @pos @txt)) inherited in case synthesized of Syn_HsTokensRoot { errors_Syn_HsTokensRoot = errors , pp_Syn_HsTokensRoot = pp , usedAttrs_Syn_HsTokensRoot = usedAttrs , usedLocals_Syn_HsTokensRoot = usedLocals } -> (errors,pp,usedAttrs,usedLocals)