packages feed

gf-3.4: lib/src/japanese/ExtraJpn.gf

concrete ExtraJpn of ExtraJpnAbs = CatJpn ** open ResJpn, Prelude, ParadigmsJpn in {

  lincat
    Level = {s : Str ; l : Style} ;
    Part = {s : Str ; p : Particle} ;
    
  lin
    Honorific = {s = [] ; l = Resp} ;
    Informal  = {s = [] ; l = Plain} ;
    
    PartWA = {s = [] ; p = Wa} ;
    PartGA = {s = [] ; p = Ga} ;
    
    StylePartPhr level part pconj utt voc = {
      s = case voc.type of {
        Please => case utt.type of {
          ImpPolite => level.s ++ part.s ++ pconj.s ++ utt.s ! part.p ! Resp ++ voc.null ;
          (Imper|NoImp) => level.s ++ part.s ++ pconj.s ++ utt.s ! part.p ! Resp ++ voc.s ! Resp
          } ;
        VocPres => case utt.type of {
          (Imper|ImpPolite) => level.s ++ part.s ++ voc.s ! Plain ++ "," ++ pconj.s ++ 
                               utt.s ! part.p ! Plain ;
          NoImp => level.s ++ part.s ++ voc.s ! level.l ++ "," ++ pconj.s ++ 
                   utt.s ! part.p ! level.l
          } ;
        VocAbs => case utt.type of {
          (Imper|ImpPolite) => level.s ++ part.s ++ voc.s ! Plain ++ pconj.s ++ 
                               utt.s ! part.p ! Plain ;
          NoImp => level.s ++ part.s ++ voc.s ! level.l ++ pconj.s ++ utt.s ! part.p ! level.l
          }
        } 
      } ;
  } ;