-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathkamiya.min.js
2 lines (2 loc) · 16.4 KB
/
kamiya.min.js
1
2
"use strict";var kamiya=(()=>{var j=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var W=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var q=(e,r)=>{for(var n in r)j(e,n,{get:r[n],enumerable:!0})},z=(e,r,n,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of W(r))!_.call(e,t)&&t!==n&&j(e,t,{get:()=>r[t],enumerable:!(a=I(r,t))||a.enumerable});return e};var B=e=>z(j({},"__esModule",{value:!0}),e);var X={};q(X,{adjConjugate:()=>A,adjConjugations:()=>y,adjDeconjugate:()=>K,auxiliaries:()=>R,conjugate:()=>s,conjugateAuxiliaries:()=>v,conjugateTypeI:()=>C,conjugateTypeII:()=>m,conjugations:()=>T,verbDeconjugate:()=>Q});var f=e=>e.split(""),M=[f("\u3042\u3044\u3046\u3048\u304A"),f("\u304B\u304D\u304F\u3051\u3053"),f("\u304C\u304E\u3050\u3052\u3054"),f("\u3055\u3057\u3059\u305B\u305D"),f("\u3056\u3058\u305A\u305C\u305E"),f("\u305F\u3061\u3064\u3066\u3068"),f("\u3060\u3062\u3065\u3067\u3069"),f("\u306A\u306B\u306C\u306D\u306E"),f("\u306F\u3072\u3075\u3078\u307B"),f("\u3070\u3073\u3076\u3079\u307C"),f("\u3071\u3074\u3077\u307A\u307D"),f("\u307E\u307F\u3080\u3081\u3082"),["\u3084","","\u3086","","\u3088"],f("\u3089\u308A\u308B\u308C\u308D"),["\u308F","","","","\u3092"],["\u3093","","","",""]],D=new Map([]);M.forEach((e,r)=>{e.forEach(n=>{n.length>0&&D.set(n,r)})});function N(e,r){if(r<0||r>4)throw new Error("vowel must be between 0 and 4");let n=D.get(e);if(typeof n=="undefined")throw new Error("unknown character");let a=M[n][r];if(a.length===0)throw new Error("vowel for kana does not exist");return a}var y=["Present","Prenomial","Negative","Past","NegativePast","ConjunctiveTe","Adverbial","Conditional","TaraConditional","Tari","Noun","StemSou","StemNegativeSou"];function P(e){throw new Error("never?")}function A(e,r,n){if(n){let a=e.slice(0,-1),t=!1;switch(e==="\u3044\u3044"||e==="\u826F\u3044"||e==="\u3088\u3044"?(a=e.startsWith("\u826F")?"\u826F":"\u3088",t=!0):e.endsWith("\u306A\u3044")&&(t=!0),r){case"Present":return[e];case"Prenomial":return[e];case"Negative":return[a+"\u304F\u306A\u3044"];case"Past":return[a+"\u304B\u3063\u305F"];case"NegativePast":return[a+"\u304F\u306A\u304B\u3063\u305F"];case"ConjunctiveTe":return[a+"\u304F",a+"\u304F\u3066"];case"Adverbial":return[a+"\u304F"];case"Conditional":return[a+"\u3051\u308C\u3070"];case"TaraConditional":return[a+"\u304B\u3063\u305F\u3089"];case"Tari":return[a+"\u304B\u3063\u305F\u308A"];case"Noun":return[a+"\u3055"];case"StemSou":return[t?a+"\u3055\u305D\u3046":a+"\u305D\u3046"];case"StemNegativeSou":return[a+"\u304F\u306A"+"\u3055\u305D\u3046"];default:P(r)}}switch(r){case"Prenomial":return[e+"\u306A"];case"Present":return["\u3060","\u3067\u3059","\u3067\u3054\u3056\u3044\u307E\u3059"].map(a=>e+a);case"Negative":return["\u3067\u306F\u306A\u3044","\u3067\u306A\u3044","\u3058\u3083\u306A\u3044","\u3067\u306F\u3042\u308A\u307E\u305B\u3093"].map(a=>e+a);case"Past":return["\u3060\u3063\u305F","\u3067\u3057\u305F"].map(a=>e+a);case"NegativePast":return["\u3067\u306F\u306A\u304B\u3063\u305F","\u3067\u306A\u304B\u3063\u305F","\u3058\u3083\u306A\u304B\u3063\u305F","\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F"].map(a=>e+a);case"ConjunctiveTe":return[e+"\u3067"];case"Adverbial":return[e+"\u306B"];case"Conditional":return["\u306A\u3089","\u306A\u3089\u3070"].map(a=>e+a);case"TaraConditional":return["\u3060\u3063\u305F\u3089"].map(a=>e+a);case"Tari":return["\u3060\u3063\u305F\u308A","\u3067\u3057\u305F\u308A"].map(a=>e+a);case"Noun":return[e+"\u3055"];case"StemSou":return[e+"\u305D\u3046"];case"StemNegativeSou":return[e+"\u3058\u3083\u306A\u3055\u305D\u3046"];default:P(r)}throw new Error("unknown conjugation/iAdjective")}function K(e,r,n){let a=[];for(let t of y){let o=A(r,t,n);o.includes(e)&&a.push({conjugation:t,result:o})}return a}var T=["Negative","Conjunctive","Dictionary","Conditional","Imperative","Volitional","Te","Ta","Tara","Tari","Zu"],R=["Potential","Masu","Nai","Tai","Tagaru","Hoshii","Rashii","SoudaHearsay","SoudaConjecture","SeruSaseru","ShortenedCausative","ReruRareru","CausativePassive","ShortenedCausativePassive","Ageru","Sashiageru","Yaru","Morau","Itadaku","Kureru","Kudasaru","TeIru","TeAru","Miru","Iku","Kuru","Oku","Shimau","TeOru"],G=[["\u3042\u308B","Negative",""],["\u3054\u3056\u308B","Conjunctive","\u3054\u3056\u3044"],["\u3044\u3089\u3063\u3057\u3083\u308B","Conjunctive","\u3044\u3089\u3063\u3057\u3083\u3044"],["\u3044\u3089\u3063\u3057\u3083\u308B","Conditional","\u3044\u3089\u3063\u3057\u3083\u3044"],["\u3044\u3089\u3063\u3057\u3083\u308B","Imperative","\u3044\u3089\u3063\u3057\u3083\u3044"]],k=new Map([]);for(let[e,r,n]of G){let a=k.get(e);a?a.set(r,n):k.set(e,new Map([[r,n]]))}var E=new Map(T.filter(e=>e!=="Imperative").map((e,r)=>[e,r])),U;E.set("Zu",(U=E.get("Negative"))!=null?U:-1);var J=[["\u304F",["\u3044\u3066","\u3044\u305F","\u3044\u305F\u3089","\u3044\u305F\u308A"]],["\u3050",["\u3044\u3067","\u3044\u3060","\u3044\u3060\u3089","\u3044\u3060\u308A"]],["\u3059",["\u3057\u3066","\u3057\u305F","\u3057\u305F\u3089","\u3057\u305F\u308A"]],["\u306C",["\u3093\u3067","\u3093\u3060","\u3093\u3060\u3089","\u3093\u3060\u308A"]],["\u3076",["\u3093\u3067","\u3093\u3060","\u3093\u3060\u3089","\u3093\u3060\u308A"]],["\u3080",["\u3093\u3067","\u3093\u3060","\u3093\u3060\u3089","\u3093\u3060\u308A"]],["\u3064",["\u3063\u3066","\u3063\u305F","\u3063\u305F\u3089","\u3063\u305F\u308A"]],["\u308B",["\u3063\u3066","\u3063\u305F","\u3063\u305F\u3089","\u3063\u305F\u308A"]],["\u3046",["\u3063\u3066","\u3063\u305F","\u3063\u305F\u3089","\u3063\u305F\u308A"]]],H=new Map([]);for(let[e,r]of J)H.set(e,r);function C(e,r){{if(e==="\u3059\u308B")return Z(e,r);if(e==="\u304F\u308B"||e==="\u6765\u308B")return O(e,r);if(e==="\u3060")return V(e,r);if(e==="\u3067\u3059")return Y(e,r);if(e.endsWith("\u304F\u3060\u3055\u308B")){if(r==="Dictionary")return[e];if(r==="Conjunctive")return[e.slice(0,-2)+"\u3055\u3044"];throw new Error("unknown conjugation for -kudasaru")}let i=k.get(e);if(i&&i.has(r))return[i.get(r)||""]}let n=e.slice(0,-1),a=e.slice(-1),t=E.get(r==="Imperative"?"Conditional":r);if(typeof t=="undefined")throw new Error("Conjugation not yet implemented");if(t<5)return a==="\u3046"?t===0?[n+"\u308F"]:[n+N("\u3042",t)]:[n+N(a,t)];let o=t-5,u=H.get(e==="\u884C\u304F"||e==="\u3044\u304F"?"\u3064":a);if(!u)throw new Error("Unknown verb ending. Is it in dictionary form?");return[n+u[o]]}function m(e,r){if(e==="\u3059\u308B")return Z(e,r);if(e==="\u304F\u308B"||e==="\u6765\u308B")return O(e,r);if(e==="\u3060")return V(e,r);if(e==="\u3067\u3059")return Y(e,r);let n=e.slice(0,-1);switch(r){case"Negative":case"Zu":return[n];case"Conjunctive":return[n];case"Dictionary":return[e];case"Conditional":return[n+"\u308C"];case"Imperative":return[n+"\u308D",n+"\u3088"];case"Volitional":return[n+"\u3088\u3046"];case"Te":return[n+"\u3066"];case"Ta":return[n+"\u305F"];case"Tara":return[n+"\u305F\u3089"];case"Tari":return[n+"\u305F\u308A"];default:throw new Error("Unhandled conjugation")}}function O(e,r){let n="";switch(r){case"Negative":case"Zu":n="\u3053";break;case"Conjunctive":n="\u304D";break;case"Dictionary":n="\u304F\u308B";break;case"Conditional":n="\u304F\u308C";break;case"Imperative":n="\u3053\u3044";break;case"Volitional":n="\u3053\u3088\u3046";break;case"Te":n="\u304D\u3066";break;case"Ta":n="\u304D\u305F";break;case"Tara":n="\u304D\u305F\u3089";break;case"Tari":n="\u304D\u305F\u308A";break;default:throw new Error("Unhandled conjugation")}let a=e.slice(0,-1);if(a==="\u304F")return[n];if(a==="\u6765")return["\u6765"+n.slice(1)];throw new Error("Expected input to be \u6765\u308B or \u304F\u308B")}function Z(e,r){switch(r){case"Negative":return["\u3057"];case"Conjunctive":return["\u3057"];case"Dictionary":return["\u3059\u308B"];case"Conditional":return["\u3059\u308C"];case"Imperative":return["\u3057\u308D","\u305B\u3088"];case"Volitional":return["\u3057\u3088\u3046"];case"Te":return["\u3057\u3066"];case"Ta":return["\u3057\u305F"];case"Tara":return["\u3057\u305F\u3089"];case"Tari":return["\u3057\u305F\u308A"];case"Zu":return["\u305B\u305A"];default:throw new Error("Unhandled conjugation")}}function V(e,r){switch(r){case"Negative":return["\u3067\u306A\u3044","\u3067\u306F\u306A\u3044","\u3058\u3083\u306A\u3044"];case"Dictionary":return["\u3060"];case"Conditional":return["\u306A\u3089"];case"Te":return["\u3067"];case"Ta":return["\u3060\u3063\u305F"];case"Tara":return["\u3060\u3063\u305F\u3089"];case"Tari":return["\u3060\u3063\u305F\u308A"];default:throw new Error("Unhandled conjugation")}}function Y(e,r){switch(r){case"Negative":return["\u3067\u3042\u308A\u307E\u305B\u3093","\u3067\u306F\u3042\u308A\u307E\u305B\u3093"];case"Dictionary":return["\u3067\u3059"];case"Te":return["\u3067\u3057\u3066"];case"Ta":return["\u3067\u3057\u305F"];case"Tara":return["\u3067\u3057\u305F\u3089"];case"Tari":return["\u3067\u3057\u305F\u308A"];default:throw new Error("Unhandled conjugation")}}function L(e,r,n=!1){return(e.slice(-1)==="\u308B"&&n?m:C)(e,r)}function s(e,r,n=!1){let a=L(e,r,n);return(r==="Negative"||r==="Zu")&&e!=="\u3060"&&e!=="\u3067\u3059"?a.push(a[0]+(r==="Negative"?"\u306A\u3044":"\u305A")):r==="Conjunctive"?a.push(a[0]+"\u307E\u3059"):r==="Conditional"?a.push(a[0]+"\u3070"):r==="Volitional"&&a.push(a[0]+"\u3046"),a}function v(e,r,n,a=!1){if(r.length===0)return s(e,n,a);if(e==="\u3060"||e==="\u3067\u3059"){if(r.length===1&&r[0]==="Nai"){if(n==="Ta")return e==="\u3060"?["\u3067\u306F\u306A\u304B\u3063\u305F","\u3058\u3083\u306A\u304B\u3063\u305F"]:["\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F","\u3067\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F"];if(n==="Te"&&e==="\u3060")return["\u3058\u3083\u306A\u304F\u3066"]}throw new Error("unhandled copula auxiliaries/conjugation")}let t=[e],o=a;for(let[u,i]of r.entries()){let c=u===r.length-1?n:"Dictionary",g=r[u-1];if(u!==r.length-1&&(i==="Masu"||i==="Nai"||i==="Tai"||i=="Hoshii"||i==="Rashii"||i==="SoudaConjecture"||i==="SoudaHearsay"))throw new Error("must be final auxiliary");if(g==="Kuru"){let l=t.map(h=>h.slice(0,-2)),d=p("\u304F\u308B",i,c);t=l.flatMap(h=>d.map(w=>h+w))}else t=t.flatMap(l=>p(l,i,c,o));o=i==="Potential"||i==="SeruSaseru"||i==="ReruRareru"||i==="CausativePassive"||i==="ShortenedCausativePassive"||i==="Ageru"||i==="Sashiageru"||i==="Kureru"||i==="Miru"||i==="TeIru"}return t}function p(e,r,n,a=!1){if(r==="Potential"){let t=C(e,"Conditional")[0]+"\u308B";return s(t,n,!0)}else if(r==="Masu"){let t=s(e,"Conjunctive",a)[0];switch(n){case"Negative":return[t+"\u307E\u305B\u3093",t+"\u307E\u305B\u3093\u3067\u3057\u305F"];case"Dictionary":return[t+"\u307E\u3059"];case"Conditional":return[t+"\u307E\u3059\u308C\u3070"];case"Imperative":return[t+"\u307E\u305B",t+"\u307E\u3057"];case"Volitional":return[t+"\u307E\u3057\u3087\u3046"];case"Te":return[t+"\u307E\u3057\u3066"];case"Ta":return[t+"\u307E\u3057\u305F"];case"Tara":return[t+"\u307E\u3057\u305F\u3089"];default:throw new Error("Unhandled conjugation")}}else if(r==="Nai"){let t=s(e,"Negative",a)[0];switch(n){case"Negative":return[t+"\u306A\u304F\u306F\u306A\u3044"];case"Conjunctive":return[t+"\u306A\u304F"];case"Dictionary":return[t+"\u306A\u3044"];case"Conditional":return[t+"\u306A\u3051\u308C\u3070"];case"Te":return[t+"\u306A\u304F\u3066",t+"\u306A\u3044\u3067"];case"Ta":return[t+"\u306A\u304B\u3063\u305F"];case"Tara":return[t+"\u306A\u304B\u3063\u305F\u3089"];default:throw new Error("Unhandled conjugation")}}else if(r==="Tai"){let t=s(e,"Conjunctive",a)[0];switch(n){case"Negative":return[t+"\u305F\u304F\u306A\u3044"];case"Conjunctive":return[t+"\u305F\u304F"];case"Dictionary":return[t+"\u305F\u3044"];case"Conditional":return[t+"\u305F\u3051\u308C\u3070"];case"Te":return[t+"\u305F\u304F\u3066"];case"Ta":return[t+"\u305F\u304B\u3063\u305F"];case"Tara":return[t+"\u305F\u304B\u3063\u305F\u3089"];default:throw new Error("Unhandled conjugation")}}else if(r==="Tagaru"){switch(n){case"Conditional":case"Imperative":case"Volitional":case"Tari":throw new Error("Unhandled conjugation")}let t=s(e,"Conjunctive",a);return s("\u305F\u304C\u308B",n,!1).map(u=>t[0]+u)}else if(r==="Hoshii"){let t=s(e,"Te",a)[0];switch(n){case"Negative":return[t+"\u307B\u3057\u304F\u306A\u3044"];case"Conjunctive":return[t+"\u307B\u3057\u304F"];case"Dictionary":return[t+"\u307B\u3057\u3044"];case"Conditional":return[t+"\u307B\u3057\u3051\u308C\u3070"];case"Te":return[t+"\u307B\u3057\u304F\u3066"];case"Ta":return[t+"\u307B\u3057\u304B\u3063\u305F"];case"Tara":return[t+"\u307B\u3057\u304B\u3063\u305F\u3089"];default:throw new Error("Unhandled conjugation")}}else if(r==="Rashii"){let t=s(e,"Ta",a)[0],o=e,u=i=>[t,o].map(c=>c+i);switch(n){case"Negative":return[p(e,"Nai","Dictionary")[0]+"\u3089\u3057\u3044"];case"Conjunctive":return u("\u3089\u3057\u304F");case"Dictionary":return u("\u3089\u3057\u3044");case"Te":return u("\u3089\u3057\u304F\u3066");default:throw new Error("Unhandled conjugation")}}else if(r==="SoudaHearsay"){let t=s(e,"Ta",a)[0],o=e,u=i=>[t,o].map(c=>c+i);switch(n){case"Dictionary":return u("\u305D\u3046\u3060");default:throw new Error("Unhandled conjugation")}}else if(r==="SoudaConjecture"){let t=s(e,"Conjunctive",a)[0];switch(n){case"Dictionary":return[t+"\u305D\u3046\u3060",t+"\u305D\u3046\u3067\u3059"];case"Conditional":return[t+"\u305D\u3046\u306A\u3089"];case"Ta":return[t+"\u305D\u3046\u3060\u3063\u305F",t+"\u305D\u3046\u3067\u3057\u305F"];default:throw new Error("Unhandled conjugation")}}else if(r==="SeruSaseru"||r==="ShortenedCausative"){if(n==="Tara"||n==="Tari")throw new Error("Unhandled conjugation");let t;return e==="\u6765\u308B"||e==="\u304F\u308B"?t=(e[0]==="\u6765"?"\u6765":"\u3053")+"\u3055\u305B\u308B":e==="\u3059\u308B"?t="\u3055\u305B\u308B":a?t=m(e,"Negative")[0]+"\u3055\u305B\u308B":t=C(e,"Negative")[0]+"\u305B\u308B",r==="ShortenedCausative"?(t=t.slice(0,-2)+"\u3059",s(t,n,!1)):s(t,n,!0)}else if(r==="ReruRareru"){if(n==="Conditional"||n==="Imperative"||n==="Volitional"||n==="Tara"||n==="Tari")throw new Error("Unhandled conjugation");let t;return e==="\u6765\u308B"||e==="\u304F\u308B"?t=(e[0]==="\u6765"?"\u6765":"\u3053")+"\u3089\u308C\u308B":e==="\u3059\u308B"?t="\u3055\u308C\u308B":a?t=m(e,"Negative")[0]+"\u3089\u308C\u308B":t=C(e,"Negative")[0]+"\u308C\u308B",s(t,n,!0)}else if(r==="CausativePassive"){let t=p(e,"SeruSaseru","Negative",a)[0]+"\u3089\u308C\u308B";return s(t,n,!0)}else if(r==="ShortenedCausativePassive"){let t=p(e,"ShortenedCausative","Negative",a)[0]+"\u308C\u308B";return s(t,n,!0)}else if(r==="Ageru"||r==="Sashiageru"||r==="Yaru"||r==="Morau"||r==="Itadaku"||r==="Kureru"||r==="Kudasaru"||r==="TeIru"||r==="TeAru"||r==="Miru"||r==="Iku"||r==="Kuru"||r==="Oku"||r==="TeOru"){let t=s(e,"Te",a)[0],o=r==="Ageru"?["\u3042\u3052\u308B"]:r==="Sashiageru"?["\u5DEE\u3057\u4E0A\u3052\u308B","\u3055\u3057\u3042\u3052\u308B"]:r==="Yaru"?["\u3084\u308B"]:r==="Morau"?["\u3082\u3089\u3046"]:r==="Itadaku"?["\u3044\u305F\u3060\u304F"]:r==="Kureru"?["\u304F\u308C\u308B"]:r==="Kudasaru"?["\u304F\u3060\u3055\u308B"]:r==="TeIru"?["\u3044\u308B","\u308B"]:r==="TeAru"?["\u3042\u308B"]:r==="Miru"?["\u307F\u308B"]:r==="Iku"?["\u3044\u304F"]:r==="Kuru"?["\u304F\u308B"]:r==="Oku"?["\u304A\u304F"]:r==="TeOru"?["\u304A\u308B"]:[];if(!o[0])throw new Error("missing ternary");if(r==="Kuru")return s(o[0],n).map(c=>t+c);let u=r==="Ageru"||r==="Sashiageru"||r==="Kureru"||r==="TeIru"||r==="Miru",i=o.map(c=>t+c);return r==="Oku"&&i.push(t.slice(0,-1)+"\u3068\u304F"),i.flatMap(c=>s(c,n,u))}else if(r==="Shimau"){let t=s(e,"Te",a)[0],o=s(t+"\u3057\u307E\u3046",n),u=t.slice(0,-1);if(t.endsWith("\u3066")){let g=s(u+"\u3061\u3083\u3046",n),l=s(u+"\u3061\u307E\u3046",n);return o.concat(g).concat(l)}let i=s(u+"\u3058\u307E\u3046",n),c=s(u+"\u3062\u307E\u3046",n);return o.concat(i).concat(c)}throw new Error("Unhandled auxiliary")}function Q(e,r,n=!1,a=1/0){let t=[];for(let g of T)try{let l=s(r,g,n);l.includes(e)&&t.push({conjugation:g,auxiliaries:[],result:l})}catch(l){}if(a<=0)return t;for(let g of R)for(let l of T)try{let d=p(r,g,l,n);d.includes(e)&&t.push({conjugation:l,auxiliaries:[g],result:d})}catch(d){}if(a<=1)return t;let o=["Ageru","Sashiageru","Yaru","Morau","Itadaku","Kureru","Kudasaru","Miru","Iku","Kuru","Oku","Shimau","TeIru","TeAru","TeOru","Potential","ReruRareru","SeruSaseru"],u=["Masu","SoudaConjecture","SoudaHearsay","TeIru","Tai","Nai","Yaru"];for(let g of o)for(let l of u)for(let d of T){let h=[g,l];try{let w=v(r,h,d,n);w.includes(e)&&t.push({conjugation:d,auxiliaries:h,result:w})}catch(w){}}if(a<=2)return t;let i=["SeruSaseru","ReruRareru","Itadaku"],c=["Masu"];for(let g of i)for(let l of o)for(let d of c)for(let h of T){let w=[g,l,d];try{let S=v(r,w,h,n);S.includes(e)&&t.push({conjugation:h,auxiliaries:w,result:S})}catch(S){}}return t}return B(X);})();
//# sourceMappingURL=kamiya.min.js.map