packages feed

rtk-0.11: test/golden/haskell/HaskellLexer.x

-- Generated by RTK from grammar 'Haskell'. Do not edit by hand.
{
{-# LANGUAGE StandaloneDeriving, DeriveDataTypeable #-}
module HaskellLexer(scanTokens, alexScanTokens, Token(..), PosToken(..), AlexPosn(..))
where
import Data.Data (Data)

 }
%wrapper "monad"

@decimal = ([0-9]+)
@octal = ([0-7]+)
@hexadecimal = ([0-9A-Fa-f]+)

tokens :- "tok_AType_dummy_111" { simple Tk__tok_AType_dummy_111 }
          "tok_ATypeList_dummy_110" { simple Tk__tok_ATypeList_dummy_110 }
          "tok_BType_dummy_109" { simple Tk__tok_BType_dummy_109 }
          "tok_Body_dummy_108" { simple Tk__tok_Body_dummy_108 }
          "tok_CName_dummy_107" { simple Tk__tok_CName_dummy_107 }
          "tok_CNameList_dummy_106" { simple Tk__tok_CNameList_dummy_106 }
          "tok_Class_dummy_105" { simple Tk__tok_Class_dummy_105 }
          "tok_ClassList_dummy_104" { simple Tk__tok_ClassList_dummy_104 }
          "tok_Con_dummy_103" { simple Tk__tok_Con_dummy_103 }
          "tok_Constr_dummy_102" { simple Tk__tok_Constr_dummy_102 }
          "tok_Constrs_dummy_101" { simple Tk__tok_Constrs_dummy_101 }
          "tok_Context_dummy_100" { simple Tk__tok_Context_dummy_100 }
          "tok_DClass_dummy_99" { simple Tk__tok_DClass_dummy_99 }
          "tok_DClassList_dummy_98" { simple Tk__tok_DClassList_dummy_98 }
          "tok_Decl_dummy_97" { simple Tk__tok_Decl_dummy_97 }
          "tok_DeclList_dummy_96" { simple Tk__tok_DeclList_dummy_96 }
          "tok_Decls_dummy_95" { simple Tk__tok_Decls_dummy_95 }
          "tok_Deriving_dummy_94" { simple Tk__tok_Deriving_dummy_94 }
          "tok_Exp_dummy_93" { simple Tk__tok_Exp_dummy_93 }
          "tok_ExpI_dummy_92" { simple Tk__tok_ExpI_dummy_92 }
          "tok_Export_dummy_91" { simple Tk__tok_Export_dummy_91 }
          "tok_ExportsList_dummy_90" { simple Tk__tok_ExportsList_dummy_90 }
          "tok_ExportsOpt_dummy_89" { simple Tk__tok_ExportsOpt_dummy_89 }
          "tok_FieldDecl_dummy_88" { simple Tk__tok_FieldDecl_dummy_88 }
          "tok_FieldDeclList_dummy_87" { simple Tk__tok_FieldDeclList_dummy_87 }
          "tok_Fixity_dummy_86" { simple Tk__tok_Fixity_dummy_86 }
          "tok_FunLhs_dummy_85" { simple Tk__tok_FunLhs_dummy_85 }
          "tok_GTyCon_dummy_84" { simple Tk__tok_GTyCon_dummy_84 }
          "tok_Gd_dummy_83" { simple Tk__tok_Gd_dummy_83 }
          "tok_GdRhs_dummy_82" { simple Tk__tok_GdRhs_dummy_82 }
          "tok_GenDecl_dummy_81" { simple Tk__tok_GenDecl_dummy_81 }
          "tok_Haskell_dummy_112" { simple Tk__tok_Haskell_dummy_112 }
          "tok_ImpDecl_dummy_80" { simple Tk__tok_ImpDecl_dummy_80 }
          "tok_ImpDeclList_dummy_79" { simple Tk__tok_ImpDeclList_dummy_79 }
          "tok_Import_dummy_78" { simple Tk__tok_Import_dummy_78 }
          "tok_ImportList_dummy_77" { simple Tk__tok_ImportList_dummy_77 }
          "tok_ModId_dummy_76" { simple Tk__tok_ModId_dummy_76 }
          "tok_ModIdList_dummy_75" { simple Tk__tok_ModIdList_dummy_75 }
          "tok_Module_dummy_74" { simple Tk__tok_Module_dummy_74 }
          "tok_Op_dummy_73" { simple Tk__tok_Op_dummy_73 }
          "tok_Ops_dummy_72" { simple Tk__tok_Ops_dummy_72 }
          "tok_OptContext_dummy_71" { simple Tk__tok_OptContext_dummy_71 }
          "tok_OptDeriving_dummy_70" { simple Tk__tok_OptDeriving_dummy_70 }
          "tok_OptExpTypeSignature_dummy_69" { simple Tk__tok_OptExpTypeSignature_dummy_69 }
          "tok_OptGdRhs_dummy_68" { simple Tk__tok_OptGdRhs_dummy_68 }
          "tok_OptImpSpec_dummy_67" { simple Tk__tok_OptImpSpec_dummy_67 }
          "tok_OptInteger_dummy_66" { simple Tk__tok_OptInteger_dummy_66 }
          "tok_OptQualified_dummy_65" { simple Tk__tok_OptQualified_dummy_65 }
          "tok_OptQualifiedAs_dummy_64" { simple Tk__tok_OptQualifiedAs_dummy_64 }
          "tok_OptWhere_dummy_63" { simple Tk__tok_OptWhere_dummy_63 }
          "tok_Pat_dummy_62" { simple Tk__tok_Pat_dummy_62 }
          "tok_QOp_dummy_61" { simple Tk__tok_QOp_dummy_61 }
          "tok_QTyCls_dummy_60" { simple Tk__tok_QTyCls_dummy_60 }
          "tok_QTyCon_dummy_59" { simple Tk__tok_QTyCon_dummy_59 }
          "tok_QVar_dummy_58" { simple Tk__tok_QVar_dummy_58 }
          "tok_QVarId_dummy_57" { simple Tk__tok_QVarId_dummy_57 }
          "tok_QVarList_dummy_56" { simple Tk__tok_QVarList_dummy_56 }
          "tok_Rhs_dummy_55" { simple Tk__tok_Rhs_dummy_55 }
          "tok_SimpleType_dummy_54" { simple Tk__tok_SimpleType_dummy_54 }
          "tok_TopDecl_dummy_53" { simple Tk__tok_TopDecl_dummy_53 }
          "tok_TopDecls_dummy_52" { simple Tk__tok_TopDecls_dummy_52 }
          "tok_TyCls_dummy_51" { simple Tk__tok_TyCls_dummy_51 }
          "tok_TyCon_dummy_50" { simple Tk__tok_TyCon_dummy_50 }
          "tok_TyVar_dummy_49" { simple Tk__tok_TyVar_dummy_49 }
          "tok_TyVars_dummy_48" { simple Tk__tok_TyVars_dummy_48 }
          "tok_Type_dummy_47" { simple Tk__tok_Type_dummy_47 }
          "tok_TypeList_dummy_46" { simple Tk__tok_TypeList_dummy_46 }
          "tok_Var_dummy_45" { simple Tk__tok_Var_dummy_45 }
          "tok_Vars_dummy_44" { simple Tk__tok_Vars_dummy_44 }
          "}" { simple Tk__tok__symbol__8 }
          "|" { simple Tk__tok__pipe__21 }
          "{" { simple Tk__tok__symbol__6 }
          "where" { simple Tk__tok_where_1 }
          "type" { simple Tk__tok_type_13 }
          "qualified" { simple Tk__tok_qualified_10 }
          "module" { simple Tk__tok_module_0 }
          "infixr" { simple Tk__tok_infixr_19 }
          "infixl" { simple Tk__tok_infixl_18 }
          "infix" { simple Tk__tok_infix_20 }
          "import" { simple Tk__tok_import_12 }
          "deriving" { simple Tk__tok_deriving_23 }
          "data" { simple Tk__tok_data_15 }
          "as" { simple Tk__tok_as_11 }
          "]" { simple Tk__tok__sq_bkt_r__26 }
          "[" { simple Tk__tok__sq_bkt_l__25 }
          "=>" { simple Tk__tok__eql__symbol__16 }
          "=" { simple Tk__tok__eql__14 }
          ";" { simple Tk__tok__semi__7 }
          "::" { simple Tk__tok__colon__colon__17 }
          ".." { simple Tk__tok__dot__dot__5 }
          "." { simple Tk__tok__dot__9 }
          "->" { simple Tk__tok__minus__symbol__24 }
          "," { simple Tk__tok__coma__3 }
          ")" { simple Tk__tok__rparen__4 }
          "(" { simple Tk__tok__lparen__2 }
          "!" { simple Tk__tok__exclamation__22 }
          ("$("  ([^\)]| [\n])*  ")") { simple1 $  Tk__th . (id) }
          ("{-"  (.| [\n])*  "-}") { simple1 $  Tk__ncomment . (id) }
          ("--"  .*  [\n]) ;
          ([\ \t\n]) { simple1 $  Tk__whitespace . (id) }
          (@decimal| ("0o"| "0O")  @octal| ("0x"| "0X")  @hexadecimal) { simple1 $  Tk__integer . (id) }
          ([0-9A-Fa-f]+) { simple1 $  Tk__hexadecimal . (id) }
          ([0-7]+) { simple1 $  Tk__octal . (id) }
          ([0-9]+) { simple1 $  Tk__decimal . (id) }
          ("$"  "QOp"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_QOp . ((tail . dropWhile (/= ':'))) }
          ("$"  "Op"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Op . ((tail . dropWhile (/= ':'))) }
          ("$"  "TyCls"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_TyCls . ((tail . dropWhile (/= ':'))) }
          ("$"  "ModId"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ModId . ((tail . dropWhile (/= ':'))) }
          ("$"  "TyCon"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_TyCon . ((tail . dropWhile (/= ':'))) }
          ("$"  "TyVar"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_TyVar . ((tail . dropWhile (/= ':'))) }
          ([a-zA-Z_]  [a-zA-Z_0-9]*) { simple1 $  Tk__varid . (id) }
          ([A-Z]  [a-zA-Z_0-9]*) { simple1 $  Tk__conid . (id) }
          ("$"  "TyVars"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_TyVars . ((tail . dropWhile (/= ':'))) }
          ("$"  "SimpleType"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_SimpleType . ((tail . dropWhile (/= ':'))) }
          ("$"  "TypeList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_TypeList . ((tail . dropWhile (/= ':'))) }
          ("$"  "GTyCon"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_GTyCon . ((tail . dropWhile (/= ':'))) }
          ("$"  "AType"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_AType . ((tail . dropWhile (/= ':'))) }
          ("$"  "ATypeList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ATypeList . ((tail . dropWhile (/= ':'))) }
          ("$"  "BType"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_BType . ((tail . dropWhile (/= ':'))) }
          ("$"  "Type"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Type . ((tail . dropWhile (/= ':'))) }
          ("$"  "Class"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Class . ((tail . dropWhile (/= ':'))) }
          ("$"  "ClassList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ClassList . ((tail . dropWhile (/= ':'))) }
          ("$"  "Context"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Context . ((tail . dropWhile (/= ':'))) }
          ("$"  "DClass"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_DClass . ((tail . dropWhile (/= ':'))) }
          ("$"  "DClassList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_DClassList . ((tail . dropWhile (/= ':'))) }
          ("$"  "Deriving"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Deriving . ((tail . dropWhile (/= ':'))) }
          ("$"  "OptDeriving"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_OptDeriving . ((tail . dropWhile (/= ':'))) }
          ("$"  "Vars"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Vars . ((tail . dropWhile (/= ':'))) }
          ("$"  "FieldDecl"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_FieldDecl . ((tail . dropWhile (/= ':'))) }
          ("$"  "FieldDeclList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_FieldDeclList . ((tail . dropWhile (/= ':'))) }
          ("$"  "Constr"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Constr . ((tail . dropWhile (/= ':'))) }
          ("$"  "Constrs"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Constrs . ((tail . dropWhile (/= ':'))) }
          ("$"  "GdRhs"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_GdRhs . ((tail . dropWhile (/= ':'))) }
          ("$"  "ExpI"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ExpI . ((tail . dropWhile (/= ':'))) }
          ("$"  "Exp"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Exp . ((tail . dropWhile (/= ':'))) }
          ("$"  "OptExpTypeSignature"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_OptExpTypeSignature . ((tail . dropWhile (/= ':'))) }
          ("$"  "Gd"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Gd . ((tail . dropWhile (/= ':'))) }
          ("$"  "OptGdRhs"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_OptGdRhs . ((tail . dropWhile (/= ':'))) }
          ("$"  "Rhs"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Rhs . ((tail . dropWhile (/= ':'))) }
          ("$"  "Decls"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Decls . ((tail . dropWhile (/= ':'))) }
          ("$"  "DeclList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_DeclList . ((tail . dropWhile (/= ':'))) }
          ("$"  "OptWhere"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_OptWhere . ((tail . dropWhile (/= ':'))) }
          ("$"  "Pat"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Pat . ((tail . dropWhile (/= ':'))) }
          ("$"  "FunLhs"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_FunLhs . ((tail . dropWhile (/= ':'))) }
          ("$"  "Fixity"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Fixity . ((tail . dropWhile (/= ':'))) }
          ("$"  "Ops"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Ops . ((tail . dropWhile (/= ':'))) }
          ("$"  "OptInteger"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_OptInteger . ((tail . dropWhile (/= ':'))) }
          ("$"  "GenDecl"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_GenDecl . ((tail . dropWhile (/= ':'))) }
          ("$"  "OptContext"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_OptContext . ((tail . dropWhile (/= ':'))) }
          ("$"  "Decl"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Decl . ((tail . dropWhile (/= ':'))) }
          ("$"  "TopDecl"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_TopDecl . ((tail . dropWhile (/= ':'))) }
          ("$"  "TopDecls"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_TopDecls . ((tail . dropWhile (/= ':'))) }
          ("$"  "ImpDecl"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ImpDecl . ((tail . dropWhile (/= ':'))) }
          ("$"  "OptImpSpec"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_OptImpSpec . ((tail . dropWhile (/= ':'))) }
          ("$"  "OptQualifiedAs"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_OptQualifiedAs . ((tail . dropWhile (/= ':'))) }
          ("$"  "OptQualified"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_OptQualified . ((tail . dropWhile (/= ':'))) }
          ("$"  "Import"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Import . ((tail . dropWhile (/= ':'))) }
          ("$"  "QVarList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_QVarList . ((tail . dropWhile (/= ':'))) }
          ("$"  "CNameList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_CNameList . ((tail . dropWhile (/= ':'))) }
          ("$"  "CName"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_CName . ((tail . dropWhile (/= ':'))) }
          ("$"  "QTyCon"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_QTyCon . ((tail . dropWhile (/= ':'))) }
          ("$"  "QTyCls"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_QTyCls . ((tail . dropWhile (/= ':'))) }
          ("$"  "QVar"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_QVar . ((tail . dropWhile (/= ':'))) }
          ("$"  "QVarId"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_QVarId . ((tail . dropWhile (/= ':'))) }
          ("$"  "ModIdList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ModIdList . ((tail . dropWhile (/= ':'))) }
          ("$"  "Con"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Con . ((tail . dropWhile (/= ':'))) }
          ("$"  "Var"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Var . ((tail . dropWhile (/= ':'))) }
          ("$"  "ImportList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ImportList . ((tail . dropWhile (/= ':'))) }
          ("$"  "ImpDeclList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ImpDeclList . ((tail . dropWhile (/= ':'))) }
          ("$"  "Body"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Body . ((tail . dropWhile (/= ':'))) }
          ("$"  "Export"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Export . ((tail . dropWhile (/= ':'))) }
          ("$"  "ExportsList"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ExportsList . ((tail . dropWhile (/= ':'))) }
          ("$"  "ExportsOpt"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_ExportsOpt . ((tail . dropWhile (/= ':'))) }
          ("$"  "Module"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Module . ((tail . dropWhile (/= ':'))) }
          ("$"  "Haskell"  ":"  [a-zA-Z_]  [A-Za-z0-9_]*) { simple1 $  Tk__qq_Haskell . ((tail . dropWhile (/= ':'))) }
          . { rtkError }

{
data Token = EndOfFile |
             Tk__tok_AType_dummy_111 |
             Tk__tok_ATypeList_dummy_110 |
             Tk__tok_BType_dummy_109 |
             Tk__tok_Body_dummy_108 |
             Tk__tok_CName_dummy_107 |
             Tk__tok_CNameList_dummy_106 |
             Tk__tok_Class_dummy_105 |
             Tk__tok_ClassList_dummy_104 |
             Tk__tok_Con_dummy_103 |
             Tk__tok_Constr_dummy_102 |
             Tk__tok_Constrs_dummy_101 |
             Tk__tok_Context_dummy_100 |
             Tk__tok_DClass_dummy_99 |
             Tk__tok_DClassList_dummy_98 |
             Tk__tok_Decl_dummy_97 |
             Tk__tok_DeclList_dummy_96 |
             Tk__tok_Decls_dummy_95 |
             Tk__tok_Deriving_dummy_94 |
             Tk__tok_Exp_dummy_93 |
             Tk__tok_ExpI_dummy_92 |
             Tk__tok_Export_dummy_91 |
             Tk__tok_ExportsList_dummy_90 |
             Tk__tok_ExportsOpt_dummy_89 |
             Tk__tok_FieldDecl_dummy_88 |
             Tk__tok_FieldDeclList_dummy_87 |
             Tk__tok_Fixity_dummy_86 |
             Tk__tok_FunLhs_dummy_85 |
             Tk__tok_GTyCon_dummy_84 |
             Tk__tok_Gd_dummy_83 |
             Tk__tok_GdRhs_dummy_82 |
             Tk__tok_GenDecl_dummy_81 |
             Tk__tok_Haskell_dummy_112 |
             Tk__tok_ImpDecl_dummy_80 |
             Tk__tok_ImpDeclList_dummy_79 |
             Tk__tok_Import_dummy_78 |
             Tk__tok_ImportList_dummy_77 |
             Tk__tok_ModId_dummy_76 |
             Tk__tok_ModIdList_dummy_75 |
             Tk__tok_Module_dummy_74 |
             Tk__tok_Op_dummy_73 |
             Tk__tok_Ops_dummy_72 |
             Tk__tok_OptContext_dummy_71 |
             Tk__tok_OptDeriving_dummy_70 |
             Tk__tok_OptExpTypeSignature_dummy_69 |
             Tk__tok_OptGdRhs_dummy_68 |
             Tk__tok_OptImpSpec_dummy_67 |
             Tk__tok_OptInteger_dummy_66 |
             Tk__tok_OptQualified_dummy_65 |
             Tk__tok_OptQualifiedAs_dummy_64 |
             Tk__tok_OptWhere_dummy_63 |
             Tk__tok_Pat_dummy_62 |
             Tk__tok_QOp_dummy_61 |
             Tk__tok_QTyCls_dummy_60 |
             Tk__tok_QTyCon_dummy_59 |
             Tk__tok_QVar_dummy_58 |
             Tk__tok_QVarId_dummy_57 |
             Tk__tok_QVarList_dummy_56 |
             Tk__tok_Rhs_dummy_55 |
             Tk__tok_SimpleType_dummy_54 |
             Tk__tok_TopDecl_dummy_53 |
             Tk__tok_TopDecls_dummy_52 |
             Tk__tok_TyCls_dummy_51 |
             Tk__tok_TyCon_dummy_50 |
             Tk__tok_TyVar_dummy_49 |
             Tk__tok_TyVars_dummy_48 |
             Tk__tok_Type_dummy_47 |
             Tk__tok_TypeList_dummy_46 |
             Tk__tok_Var_dummy_45 |
             Tk__tok_Vars_dummy_44 |
             Tk__tok__symbol__8 |
             Tk__tok__pipe__21 |
             Tk__tok__symbol__6 |
             Tk__tok_where_1 |
             Tk__tok_type_13 |
             Tk__tok_qualified_10 |
             Tk__tok_module_0 |
             Tk__tok_infixr_19 |
             Tk__tok_infixl_18 |
             Tk__tok_infix_20 |
             Tk__tok_import_12 |
             Tk__tok_deriving_23 |
             Tk__tok_data_15 |
             Tk__tok_as_11 |
             Tk__tok__sq_bkt_r__26 |
             Tk__tok__sq_bkt_l__25 |
             Tk__tok__eql__symbol__16 |
             Tk__tok__eql__14 |
             Tk__tok__semi__7 |
             Tk__tok__colon__colon__17 |
             Tk__tok__dot__dot__5 |
             Tk__tok__dot__9 |
             Tk__tok__minus__symbol__24 |
             Tk__tok__coma__3 |
             Tk__tok__rparen__4 |
             Tk__tok__lparen__2 |
             Tk__tok__exclamation__22 |
             Tk__th String |
             Tk__ncomment String |
             Tk__whitespace String |
             Tk__integer String |
             Tk__hexadecimal String |
             Tk__octal String |
             Tk__decimal String |
             Tk__qq_QOp String |
             Tk__qq_Op String |
             Tk__qq_TyCls String |
             Tk__qq_ModId String |
             Tk__qq_TyCon String |
             Tk__qq_TyVar String |
             Tk__varid String |
             Tk__conid String |
             Tk__qq_TyVars String |
             Tk__qq_SimpleType String |
             Tk__qq_TypeList String |
             Tk__qq_GTyCon String |
             Tk__qq_AType String |
             Tk__qq_ATypeList String |
             Tk__qq_BType String |
             Tk__qq_Type String |
             Tk__qq_Class String |
             Tk__qq_ClassList String |
             Tk__qq_Context String |
             Tk__qq_DClass String |
             Tk__qq_DClassList String |
             Tk__qq_Deriving String |
             Tk__qq_OptDeriving String |
             Tk__qq_Vars String |
             Tk__qq_FieldDecl String |
             Tk__qq_FieldDeclList String |
             Tk__qq_Constr String |
             Tk__qq_Constrs String |
             Tk__qq_GdRhs String |
             Tk__qq_ExpI String |
             Tk__qq_Exp String |
             Tk__qq_OptExpTypeSignature String |
             Tk__qq_Gd String |
             Tk__qq_OptGdRhs String |
             Tk__qq_Rhs String |
             Tk__qq_Decls String |
             Tk__qq_DeclList String |
             Tk__qq_OptWhere String |
             Tk__qq_Pat String |
             Tk__qq_FunLhs String |
             Tk__qq_Fixity String |
             Tk__qq_Ops String |
             Tk__qq_OptInteger String |
             Tk__qq_GenDecl String |
             Tk__qq_OptContext String |
             Tk__qq_Decl String |
             Tk__qq_TopDecl String |
             Tk__qq_TopDecls String |
             Tk__qq_ImpDecl String |
             Tk__qq_OptImpSpec String |
             Tk__qq_OptQualifiedAs String |
             Tk__qq_OptQualified String |
             Tk__qq_Import String |
             Tk__qq_QVarList String |
             Tk__qq_CNameList String |
             Tk__qq_CName String |
             Tk__qq_QTyCon String |
             Tk__qq_QTyCls String |
             Tk__qq_QVar String |
             Tk__qq_QVarId String |
             Tk__qq_ModIdList String |
             Tk__qq_Con String |
             Tk__qq_Var String |
             Tk__qq_ImportList String |
             Tk__qq_ImpDeclList String |
             Tk__qq_Body String |
             Tk__qq_Export String |
             Tk__qq_ExportsList String |
             Tk__qq_ExportsOpt String |
             Tk__qq_Module String |
             Tk__qq_Haskell String
             deriving (Show)

-- AlexPosn is defined by the alex wrapper, so the Data instance (required by
-- the parser's RtkPos position type) can only be attached via standalone
-- deriving - the same solution as the hand-written Lexer.x
deriving instance Data AlexPosn

-- A token together with the source position where it starts
data PosToken = PosToken { ptPos :: AlexPosn, ptToken :: Token }
                deriving (Show)

alexEOF = do
  (pos, _, _, _) <- alexGetInput
  return $ PosToken pos EndOfFile

-- Lex the input into a token stream, returning the positioned error message
-- on a lexical error (encoded as "LINE:COL:message", see rtkError below).
-- The returned list always ends with an EndOfFile token that carries the
-- position of the end of input, so parse errors at end of input can be
-- reported with a position too
scanTokens :: String -> Either String [PosToken]
scanTokens str = runAlex str $ do
  let loop toks = do tok <- alexMonadScan
                     case tok of
                       PosToken _ EndOfFile -> return $ reverse (tok : toks)
                       _ -> let toks' = tok : toks
                            in toks' `seq` loop toks'
  loop []

-- Thin compatibility wrapper: callers that have not switched to 'scanTokens'
-- get the error message thrown instead
alexScanTokens :: String -> [PosToken]
alexScanTokens str =
               case scanTokens str of
                  Right toks -> toks
                  Left err -> errorWithoutStackTrace err

simple1 :: (String -> Token) -> AlexInput -> Int -> Alex PosToken
simple1 t (pos, _, _, str) len = return $ PosToken pos (t (take len str))

simple :: Token -> AlexInput -> Int -> Alex PosToken
simple t (pos, _, _, _) len = return $ PosToken pos t

-- Encode the position as "LINE:COL:message" so callers can split it back out
-- into a structured position - the same encoding the rtk grammar lexer uses
rtkError ((AlexPn _ line column), _, _, str) len = alexError $ (show line) ++ ":" ++ (show column) ++ ":lexical error. Following chars: " ++ (take 10 str)

}