concrete PhraseJpn of Phrase = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in { flags coding = utf8 ; lin PhrUtt pconj utt voc = { s = case voc.type of { Please => case utt.type of { ImpPolite => pconj.s ++ utt.s ! Wa ! Resp ++ voc.null ; (Imper|NoImp) => pconj.s ++ utt.s ! Wa ! Resp ++ voc.s ! Resp } ; VocPres => case utt.type of { ImpPolite => voc.s ! Resp ++ "、" ++ pconj.s ++ utt.s ! Wa ! Resp ; (Imper|NoImp) => voc.s ! Resp ++ "、" ++ pconj.s ++ utt.s ! Wa ! Resp -- 1) change default style here } ; VocAbs => case utt.type of { (Imper|ImpPolite) => voc.s ! Resp ++ pconj.s ++ utt.s ! Wa ! Resp ; -- 2) here NoImp => voc.s ! Resp ++ pconj.s ++ utt.s ! Wa ! Resp -- 3) and here } } } ; UttS sent = {s = \\part,st => sent.s ! part ! st ; type = NoImp} ; UttQS s = {s = \\part,st => s.s ! part ! st ; type = NoImp} ; UttImpSg p imp = {s = \\part,st => p.s ++ imp.s ! st ! p.b ; type = Imper} ; UttImpPl = UttImpSg ; UttImpPol p imp = {s = \\part,st => p.s ++ imp.s ! Resp ! p.b ++ "ください" ; type = ImpPolite} ; UttIP ip = {s = \\part,st => ip.s_subj ! st ; type = NoImp} ; UttIAdv iadv = {s = \\part,st => iadv.s ! st ; type = NoImp} ; UttNP np = {s = \\part,st => np.prepositive ! st ++ np.s ! st ; type = NoImp} ; UttAdv adv = {s = \\part,st => adv.s ! st ; type = NoImp} ; UttVP vp = {s = \\part,st => vp.prepositive ! st ++ vp.obj ! st ++ vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! TPres ! Pos ; type = NoImp} ; UttCN cn = {s = \\part,st => cn.prepositive ! st ++ cn.object ! st ++ cn.s ! Sg ! st ; type = NoImp} ; UttCard card = {s = \\part,st => card.s ++ card.postpositive ; type = NoImp} ; UttAP ap = {s = \\part,st => ap.prepositive ! st ++ ap.attr ! st ; type = NoImp} ; UttInterj interj = {s = \\part,st => interj.s ; type = NoImp} ; NoPConj = ss "" ; PConjConj conj = {s = conj.s} ; NoVoc = {s = \\st => [] ; type = VocAbs ; null = ""} ; VocNP np = {s = \\st => np.prepositive ! st ++ np.s ! st ; type = VocPres ; null = ""} ; }