-- Parser generated by Pappy - do not edit
module XiraganPappy where

import Pos
import Parse


import Data.Char




xiragan :: String -> String
xiragan str = case xiraganPappyXiragans (xiraganPappyParse "expression" str) of
	Parsed v _ _ -> v
	NoParse e -> error $ show e



data XiraganPappyDerivs = XiraganPappyDerivs {
	xiraganPappySub0 :: XiraganPappyDerivs0,
	xiraganPappyChar :: Result XiraganPappyDerivs Char,
	xiraganPappyPos :: Pos
}

instance Derivs XiraganPappyDerivs where
	dvChar d = xiraganPappyChar d
	dvPos d = xiraganPappyPos d

data XiraganPappyDerivs0 = XiraganPappyDerivs0 {
	xiraganPappySubXiragansTail :: Result XiraganPappyDerivs ((String -> String)),
	xiraganPappySubXiraganTailAEO :: Result XiraganPappyDerivs (String),
	xiraganPappySubOtherTailI :: Result XiraganPappyDerivs (String),
	xiraganPappySubTailU :: Result XiraganPappyDerivs (String),
	xiraganPappySubdummyTail :: Result XiraganPappyDerivs ((() -> ())),
	xiraganPappySubdummy :: Result XiraganPappyDerivs (())}

xiraganPappyXiragansTail = xiraganPappySubXiragansTail . xiraganPappySub0
xiraganPappyXiraganTailAEO = xiraganPappySubXiraganTailAEO . xiraganPappySub0
xiraganPappyOtherTailI = xiraganPappySubOtherTailI . xiraganPappySub0
xiraganPappyTailU = xiraganPappySubTailU . xiraganPappySub0
xiraganPappydummyTail = xiraganPappySubdummyTail . xiraganPappySub0
xiraganPappydummy = xiraganPappySubdummy . xiraganPappySub0

xiraganPappyParse :: String -> String -> XiraganPappyDerivs
xiraganPappyParse name text = xiraganPappyDerivs (Pos name 1 1) text

xiraganPappyDerivs :: Pos -> String -> XiraganPappyDerivs
xiraganPappyDerivs pos text = dvs where
  dvs = XiraganPappyDerivs
    (xiraganPappyDerivs0 dvs)
    chr pos
  chr = case text of
    [] -> NoParse (eofError dvs)
    (c:cs) -> Parsed c (xiraganPappyDerivs (nextPos pos c) cs) (nullError dvs)

xiraganPappyDerivs0 dvs = XiraganPappyDerivs0
	(xiraganPappyParseXiragansTail dvs)
	(xiraganPappyParseXiraganTailAEO dvs)
	(xiraganPappyParseOtherTailI dvs)
	(xiraganPappyParseTailU dvs)
	(xiraganPappyParsedummyTail dvs)
	(xiraganPappyParsedummy dvs)

xiraganPappyParseXiragansTail :: XiraganPappyDerivs -> Result XiraganPappyDerivs ((String -> String))
xiraganPappyParseXiragansTail d =
  pappyAlt1_1 (ParseError (xiraganPappyPos d) []) where
    pappyAlt1_1 e1 =
      case pappyResult3 of
        Parsed x d3 e3 ->
          case xiraganPappyXiragansTail d3 of
            Parsed pappyTail d5 e5 ->
              Parsed (\xs -> pappyTail ( xs ++ x )) d5 (maximum [e5,e3,e1])
            NoParse e5 -> pappyAlt1_2 (maximum [e5,e3,e1])
        NoParse e3 -> pappyAlt1_2 (max e3 e1)
      where
        pappyResult3 =
          pappyAlt5_1 (ParseError (xiraganPappyPos d) []) where
            pappyAlt5_1 e5 =
              case xiraganPappyXiraganTailAEO d of
                Parsed t d7 e7 ->
                  case pappyResult9 of
                    Parsed a d9 e9 ->
                      Parsed ( t ++ a ) d9 (maximum [e9,e7,e5])
                    NoParse e9 -> pappyAlt5_2 (maximum [e9,e7,e5])
                  where
                    pappyResult9 =
                      case xiraganPappyChar d7 of
                        Parsed 'i' d11 _ ->
                          Parsed ( "ユ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'u' d11 _ ->
                          Parsed ( "ウ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        _ -> NoParse (ParseError (xiraganPappyPos d7) [])
                NoParse e7 -> pappyAlt5_2 (max e7 e5)
            pappyAlt5_2 e5 =
              case xiraganPappyXiraganTailAEO d of
                Parsed v7 d7 e7 -> Parsed v7 d7 (max e7 e5)
                NoParse e7 -> pappyAlt5_3 (max e7 e5)
            pappyAlt5_3 e5 =
              case xiraganPappyOtherTailI d of
                Parsed t d7 e7 ->
                  case pappyResult9 of
                    Parsed v d9 e9 ->
                      Parsed ( t ++ v ) d9 (maximum [e9,e7,e5])
                    NoParse e9 -> pappyAlt5_4 (maximum [e9,e7,e5])
                  where
                    pappyResult9 =
                      case xiraganPappyChar d7 of
                        Parsed 'a' d11 _ ->
                          Parsed ( "ゃ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'e' d11 _ ->
                          Parsed ( "ぃぇ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'i' d11 _ ->
                          Parsed ( "ぃ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'o' d11 _ ->
                          Parsed ( "ょ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'u' d11 _ ->
                          Parsed ( "ゅ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        _ -> NoParse (ParseError (xiraganPappyPos d7) [])
                NoParse e7 -> pappyAlt5_4 (max e7 e5)
            pappyAlt5_4 e5 =
              case xiraganPappyCJTailI d of
                Parsed t d7 e7 ->
                  case pappyResult9 of
                    Parsed v d9 e9 ->
                      Parsed ( t ++ v ) d9 (maximum [e9,e7,e5])
                    NoParse e9 -> pappyAlt5_5 (maximum [e9,e7,e5])
                  where
                    pappyResult9 =
                      case xiraganPappyChar d7 of
                        Parsed 'a' d11 _ ->
                          Parsed ( "ぃゃ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'e' d11 _ ->
                          Parsed ( "ぃぇ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'i' d11 _ ->
                          Parsed ( "ぃ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'o' d11 _ ->
                          Parsed ( "ぃょ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'u' d11 _ ->
                          Parsed ( "ぃゅ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        _ -> NoParse (ParseError (xiraganPappyPos d7) [])
                NoParse e7 -> pappyAlt5_5 (max e7 e5)
            pappyAlt5_5 e5 =
              pappyAlt7_1 e5 where
                pappyAlt7_1 e7 =
                  case xiraganPappyCJTailI d of
                    Parsed v9 d9 e9 -> Parsed v9 d9 (max e9 e7)
                    NoParse e9 -> pappyAlt7_2 (max e9 e7)
                pappyAlt7_2 e7 =
                  case xiraganPappyOtherTailI d of
                    Parsed v9 d9 e9 -> Parsed v9 d9 (max e9 e7)
                    NoParse e9 -> pappyAlt7_3 (max e9 e7)
                pappyAlt7_3 e7 = pappyAlt5_6 e7
            pappyAlt5_6 e5 =
              case xiraganPappyTailU d of
                Parsed t d7 e7 ->
                  case pappyResult9 of
                    Parsed v d9 e9 ->
                      Parsed ( t ++ v ) d9 (maximum [e9,e7,e5])
                    NoParse e9 -> pappyAlt5_7 (maximum [e9,e7,e5])
                  where
                    pappyResult9 =
                      case xiraganPappyChar d7 of
                        Parsed 'a' d11 _ ->
                          Parsed ( "ぁ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'e' d11 _ ->
                          Parsed ( "ぇ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'i' d11 _ ->
                          Parsed ( "ぃ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'o' d11 _ ->
                          Parsed ( "ぉ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        Parsed 'u' d11 _ ->
                          Parsed ( "ぅ" ) d11 (ParseError (xiraganPappyPos d11) [])
                        _ -> NoParse (ParseError (xiraganPappyPos d7) [])
                NoParse e7 -> pappyAlt5_7 (max e7 e5)
            pappyAlt5_7 e5 =
              case xiraganPappyTailU d of
                Parsed v7 d7 e7 -> Parsed v7 d7 (max e7 e5)
                NoParse e7 -> pappyAlt5_8 (max e7 e5)
            pappyAlt5_8 e5 =
              case xiraganPappyChar d of
                Parsed '.' d7 _ ->
                  Parsed ( "っ" ) d7 e5
                Parsed 'y' d7 _ ->
                  Parsed ( "ぅ" ) d7 e5
                _ -> pappyAlt5_9 e5
            pappyAlt5_9 e5 =
              case xiraganPappyChar d of
                Parsed 'n' d7 _ ->
                  pappyAlt9_1 e5 where
                    pappyAlt9_1 e9 =
                      case pappyResult11 of
                        NoParse e11 ->
                          case pappyResult13 of
                            NoParse e13 ->
                              Parsed ( "ん" ) d7 (maximum [e13,e11,e9])
                            Parsed _ _ e13 -> pappyAlt9_2 (maximum [e13,e11,e9])
                          where
                            pappyResult13 =
                              case xiraganPappyChar d7 of
                                Parsed 'b' d15 _ ->
                                  Parsed ("b") d15 (ParseError (xiraganPappyPos d15) [])
                                _ -> NoParse (ParseError (xiraganPappyPos d7) [])
                        Parsed _ _ e11 -> pappyAlt9_2 (max e11 e9)
                      where
                        pappyResult11 =
                          case xiraganPappyChar d7 of
                            Parsed 'p' d13 _ ->
                              Parsed ("p") d13 (ParseError (xiraganPappyPos d13) [])
                            _ -> NoParse (ParseError (xiraganPappyPos d7) [])
                    pappyAlt9_2 e9 =
                      Parsed ( "ヌ" ) d7 e9
                    pappyAlt9_3 e9 = pappyAlt5_10 e9
                _ -> pappyAlt5_10 e5
            pappyAlt5_10 e5 =
              case xiraganPappyChar d of
                Parsed 'm' d7 _ ->
                  pappyAlt9_1 e5 where
                    pappyAlt9_1 e9 =
                      case pappyResult11 of
                        NoParse e11 ->
                          case pappyResult13 of
                            NoParse e13 ->
                              Parsed ( "ム" ) d7 (maximum [e13,e11,e9])
                            Parsed _ _ e13 -> pappyAlt9_2 (maximum [e13,e11,e9])
                          where
                            pappyResult13 =
                              case xiraganPappyChar d7 of
                                Parsed 'b' d15 _ ->
                                  Parsed ("b") d15 (ParseError (xiraganPappyPos d15) [])
                                _ -> NoParse (ParseError (xiraganPappyPos d7) [])
                        Parsed _ _ e11 -> pappyAlt9_2 (max e11 e9)
                      where
                        pappyResult11 =
                          case xiraganPappyChar d7 of
                            Parsed 'p' d13 _ ->
                              Parsed ("p") d13 (ParseError (xiraganPappyPos d13) [])
                            _ -> NoParse (ParseError (xiraganPappyPos d7) [])
                    pappyAlt9_2 e9 =
                      Parsed ( "ん" ) d7 e9
                    pappyAlt9_3 e9 = pappyAlt5_11 e9
                _ -> pappyAlt5_11 e5
            pappyAlt5_11 e5 =
              case xiraganPappyChar d of
                Parsed 'i' d7 _ ->
                  case xiraganPappyChar d7 of
                    Parsed 'a' d9 _ ->
                      Parsed ( "や" ) d9 e5
                    Parsed 'i' d9 _ ->
                      Parsed ( "ユぃ" ) d9 e5
                    Parsed 'u' d9 _ ->
                      Parsed ( "ゆ" ) d9 e5
                    Parsed 'e' d9 _ ->
                      Parsed ( "ユぇ" ) d9 e5
                    Parsed 'o' d9 _ ->
                      Parsed ( "よ" ) d9 e5
                    _ -> pappyAlt5_12 e5
                _ -> pappyAlt5_12 e5
            pappyAlt5_12 e5 =
              case xiraganPappyChar d of
                Parsed 'a' d7 _ ->
                  case xiraganPappyChar d7 of
                    Parsed 'i' d9 _ ->
                      Parsed ( "あユ" ) d9 e5
                    _ -> pappyAlt5_13 e5
                Parsed 'e' d7 _ ->
                  case xiraganPappyChar d7 of
                    Parsed 'i' d9 _ ->
                      Parsed ( "えユ" ) d9 e5
                    _ -> pappyAlt5_13 e5
                Parsed 'o' d7 _ ->
                  case xiraganPappyChar d7 of
                    Parsed 'i' d9 _ ->
                      Parsed ( "おユ" ) d9 e5
                    _ -> pappyAlt5_13 e5
                _ -> pappyAlt5_13 e5
            pappyAlt5_13 e5 =
              case xiraganPappyChar d of
                Parsed 'u' d7 _ ->
                  case xiraganPappyChar d7 of
                    Parsed 'a' d9 _ ->
                      Parsed ( "わ" ) d9 e5
                    Parsed 'i' d9 _ ->
                      Parsed ( "ゐ" ) d9 e5
                    Parsed 'u' d9 _ ->
                      Parsed ( "うぅ" ) d9 e5
                    Parsed 'e' d9 _ ->
                      Parsed ( "ゑ" ) d9 e5
                    Parsed 'o' d9 _ ->
                      Parsed ( "を" ) d9 e5
                    _ -> pappyAlt5_14 e5
                _ -> pappyAlt5_14 e5
            pappyAlt5_14 e5 =
              case xiraganPappyChar d of
                Parsed 'a' d7 _ ->
                  case xiraganPappyChar d7 of
                    Parsed 'u' d9 _ ->
                      Parsed ( "あウ" ) d9 e5
                    _ -> pappyAlt5_15 e5
                Parsed 'e' d7 _ ->
                  case xiraganPappyChar d7 of
                    Parsed 'u' d9 _ ->
                      Parsed ( "えウ" ) d9 e5
                    _ -> pappyAlt5_15 e5
                Parsed 'o' d7 _ ->
                  case xiraganPappyChar d7 of
                    Parsed 'u' d9 _ ->
                      Parsed ( "おウ" ) d9 e5
                    _ -> pappyAlt5_15 e5
                _ -> pappyAlt5_15 e5
            pappyAlt5_15 e5 =
              case xiraganPappyChar d of
                Parsed 'a' d7 _ ->
                  Parsed ( "あ" ) d7 e5
                Parsed 'e' d7 _ ->
                  Parsed ( "え" ) d7 e5
                Parsed 'i' d7 _ ->
                  Parsed ( "い" ) d7 e5
                Parsed 'o' d7 _ ->
                  Parsed ( "お" ) d7 e5
                Parsed 'u' d7 _ ->
                  Parsed ( "う" ) d7 e5
                _ -> pappyAlt5_16 e5
            pappyAlt5_16 e5 =
              case xiraganPappyChar d of
                Parsed 'b' d7 _ ->
                  Parsed ( "ブ" ) d7 e5
                Parsed 'c' d7 _ ->
                  Parsed ( "シ" ) d7 e5
                Parsed 'd' d7 _ ->
                  Parsed ( "ド" ) d7 e5
                Parsed 'f' d7 _ ->
                  Parsed ( "フゥ" ) d7 e5
                Parsed 'g' d7 _ ->
                  Parsed ( "グ" ) d7 e5
                Parsed 'j' d7 _ ->
                  Parsed ( "ジ" ) d7 e5
                Parsed 'k' d7 _ ->
                  Parsed ( "ク" ) d7 e5
                Parsed 'l' d7 _ ->
                  Parsed ( "ル" ) d7 e5
                Parsed 'p' d7 _ ->
                  Parsed ( "プ" ) d7 e5
                Parsed 'r' d7 _ ->
                  Parsed ( "ルゥ" ) d7 e5
                Parsed 's' d7 _ ->
                  Parsed ( "ス" ) d7 e5
                Parsed 't' d7 _ ->
                  Parsed ( "ト" ) d7 e5
                Parsed 'v' d7 _ ->
                  Parsed ( "ヴ" ) d7 e5
                Parsed 'x' d7 _ ->
                  Parsed ( "ハゥ" ) d7 e5
                Parsed 'z' d7 _ ->
                  Parsed ( "ズ" ) d7 e5
                _ -> pappyAlt5_17 e5
            pappyAlt5_17 e5 =
              case xiraganPappyChar d of
                Parsed c d7 e7 ->
                  case ( isSpace c ) of
                    True ->
                      Parsed ( " " ) d7 (max e7 e5)
                    False -> pappyAlt5_18 (max e7 e5)
                NoParse e7 -> pappyAlt5_18 (max e7 e5)
            pappyAlt5_18 e5 = NoParse e5
    pappyAlt1_2 e1 =
      Parsed (\v -> v) d e1
    pappyAlt1_3 e1 = NoParse e1

xiraganPappyXiragans :: XiraganPappyDerivs -> Result XiraganPappyDerivs (String)
xiraganPappyXiragans d =
  case pappyResult1 of
    Parsed l d1 e1 ->
      case xiraganPappyXiragansTail d1 of
        Parsed t d3 e3 ->
          Parsed (t l) d3 (max e3 e1)
        NoParse e3 -> NoParse (max e3 e1)
    NoParse e1 -> NoParse e1
  where
    pappyResult1 =
      Parsed ( "" ) d (ParseError (xiraganPappyPos d) [])

xiraganPappyParseXiraganTailAEO :: XiraganPappyDerivs -> Result XiraganPappyDerivs (String)
xiraganPappyParseXiraganTailAEO d =
  case xiraganPappyChar d of
    Parsed 'd' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'j' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'a' d5 _ ->
              Parsed ( "ぢゃ" ) d5 (ParseError (xiraganPappyPos d5) [])
            Parsed 'e' d5 _ ->
              Parsed ( "ぢぇ" ) d5 (ParseError (xiraganPappyPos d5) [])
            Parsed 'o' d5 _ ->
              Parsed ( "ぢょ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 'z' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'a' d5 _ ->
              Parsed ( "づぁ" ) d5 (ParseError (xiraganPappyPos d5) [])
            Parsed 'e' d5 _ ->
              Parsed ( "づぇ" ) d5 (ParseError (xiraganPappyPos d5) [])
            Parsed 'o' d5 _ ->
              Parsed ( "づぉ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 'a' d3 _ ->
          Parsed ( "だ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "で" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "ど" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 't' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'c' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'a' d5 _ ->
              Parsed ( "ちゃ" ) d5 (ParseError (xiraganPappyPos d5) [])
            Parsed 'e' d5 _ ->
              Parsed ( "ちぇ" ) d5 (ParseError (xiraganPappyPos d5) [])
            Parsed 'o' d5 _ ->
              Parsed ( "ちょ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 's' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'a' d5 _ ->
              Parsed ( "つぁ" ) d5 (ParseError (xiraganPappyPos d5) [])
            Parsed 'e' d5 _ ->
              Parsed ( "つぇ" ) d5 (ParseError (xiraganPappyPos d5) [])
            Parsed 'o' d5 _ ->
              Parsed ( "つぉ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 'a' d3 _ ->
          Parsed ( "た" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "て" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "と" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed '\'' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "は" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "へ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "ほ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'b' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "ば" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "べ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "ぼ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'c' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "しゃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "しぇ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "しょ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'f' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "ふぁ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "ふぇ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "ふぉ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'g' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "が" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "げ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "ご" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'j' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "じゃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "じぇ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "じょ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'k' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "か" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "け" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "こ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'l' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "ら" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "れ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "ろ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'm' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "ま" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "め" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "も" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'n' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "な" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "ね" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "の" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'p' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "ぱ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "ぺ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "ぽ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'r' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "るぁ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "るぇ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "るぉ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 's' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "さ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "せ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "そ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'v' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "う\"ぁ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "う\"ぇ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "う\"ぉ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'x' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "はぁ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "はぇ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "はぉ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'z' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'a' d3 _ ->
          Parsed ( "ざ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'e' d3 _ ->
          Parsed ( "ぜ" ) d3 (ParseError (xiraganPappyPos d3) [])
        Parsed 'o' d3 _ ->
          Parsed ( "ぞ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    _ -> NoParse (ParseError (xiraganPappyPos d) [])

xiraganPappyParseOtherTailI :: XiraganPappyDerivs -> Result XiraganPappyDerivs (String)
xiraganPappyParseOtherTailI d =
  case xiraganPappyChar d of
    Parsed 'd' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'j' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'i' d5 _ ->
              Parsed ( "ぢ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 'z' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'i' d5 _ ->
              Parsed ( "づぃ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 'i' d3 _ ->
          Parsed ( "でぃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 't' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'c' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'i' d5 _ ->
              Parsed ( "ち" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 's' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'i' d5 _ ->
              Parsed ( "つぃ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 'i' d3 _ ->
          Parsed ( "てぃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed '\'' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "ひ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'b' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "び" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'f' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "ふぃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'g' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "ぎ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'k' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "き" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'l' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "り" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'm' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "み" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'n' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "に" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'p' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "ぴ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'r' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "るぃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 's' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "すぃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'v' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "う\"ぃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'x' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "はぃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'z' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "ずぃ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    _ -> NoParse (ParseError (xiraganPappyPos d) [])

xiraganPappyCJTailI :: XiraganPappyDerivs -> Result XiraganPappyDerivs (String)
xiraganPappyCJTailI d =
  case xiraganPappyChar d of
    Parsed 'c' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "し" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'j' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'i' d3 _ ->
          Parsed ( "じ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    _ -> NoParse (ParseError (xiraganPappyPos d) [])

xiraganPappyParseTailU :: XiraganPappyDerivs -> Result XiraganPappyDerivs (String)
xiraganPappyParseTailU d =
  case xiraganPappyChar d of
    Parsed 'd' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'j' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'u' d5 _ ->
              Parsed ( "ぢゅ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 'z' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'u' d5 _ ->
              Parsed ( "づ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 'u' d3 _ ->
          Parsed ( "どぅ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 't' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'c' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'u' d5 _ ->
              Parsed ( "ちゅ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 's' d3 _ ->
          case xiraganPappyChar d3 of
            Parsed 'u' d5 _ ->
              Parsed ( "つ" ) d5 (ParseError (xiraganPappyPos d5) [])
            _ -> NoParse (ParseError (xiraganPappyPos d3) [])
        Parsed 'u' d3 _ ->
          Parsed ( "とぅ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed '\'' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "ふ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'b' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "ぶ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'c' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "しゅ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'f' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "ふぅ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'g' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "ぐ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'j' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "じゅ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'k' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "く" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'l' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "る" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'm' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "む" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'n' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "ぬ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'p' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "ぷ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'r' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "るぅ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 's' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "す" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'v' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "う\"" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'x' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "はぅ" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    Parsed 'z' d1 _ ->
      case xiraganPappyChar d1 of
        Parsed 'u' d3 _ ->
          Parsed ( "ず" ) d3 (ParseError (xiraganPappyPos d3) [])
        _ -> NoParse (ParseError (xiraganPappyPos d1) [])
    _ -> NoParse (ParseError (xiraganPappyPos d) [])

xiraganPappyParsedummyTail :: XiraganPappyDerivs -> Result XiraganPappyDerivs ((() -> ()))
xiraganPappyParsedummyTail d =
  case xiraganPappyChar d of
    Parsed 'a' d1 _ ->
      case xiraganPappydummy d1 of
        Parsed _ d3 e3 ->
          case xiraganPappydummyTail d3 of
            Parsed pappyTail d5 e5 ->
              Parsed (\l -> pappyTail ( () )) d5 (max e5 e3)
            NoParse e5 -> NoParse (max e5 e3)
        NoParse e3 -> NoParse e3
    _ ->
      Parsed (\v -> v) d (ParseError (xiraganPappyPos d) [])

xiraganPappyParsedummy :: XiraganPappyDerivs -> Result XiraganPappyDerivs (())
xiraganPappyParsedummy d =
  case pappyResult1 of
    Parsed l d1 e1 ->
      case xiraganPappydummyTail d1 of
        Parsed t d3 e3 ->
          Parsed (t l) d3 (max e3 e1)
        NoParse e3 -> NoParse (max e3 e1)
    NoParse e1 -> NoParse e1
  where
    pappyResult1 =
      case xiraganPappyChar d of
        Parsed 'a' d3 _ ->
          case xiraganPappydummy d3 of
            Parsed _ d5 e5 ->
              Parsed ( () ) d5 e5
            NoParse e5 -> NoParse e5
        _ -> NoParse (ParseError (xiraganPappyPos d) [])