UNPKG

compromise

Version:
160 lines (159 loc) 2.65 kB
'use strict'; //rules for turning a verb into infinitive form let rules = { Participle: [ { reg: /own$/i, to: 'ow' }, { reg: /(.)un([g|k])$/i, to: '$1in$2' } ], Actor: [ { reg: /(er)er$/i, to: '$1' } ], PresentTense: [ { reg: /(ies)$/i, to: 'y' }, { reg: /(tch|sh)es$/i, to: '$1' }, { reg: /(ss|zz)es$/i, to: '$1' }, { reg: /([tzlshicgrvdnkmu])es$/i, to: '$1e' }, { reg: /(n[dtk]|c[kt]|[eo]n|i[nl]|er|a[ytrl])s$/i, to: '$1' }, { reg: /(ow)s$/i, to: '$1' }, { reg: /(op)s$/i, to: '$1' }, { reg: /([eirs])ts$/i, to: '$1t' }, { reg: /(ll)s$/i, to: '$1' }, { reg: /(el)s$/i, to: '$1' }, { reg: /(ip)es$/i, to: '$1e' }, { reg: /ss$/i, to: 'ss' }, { reg: /s$/i, to: '' }], Gerund: [ { reg: /pping$/i, to: 'p' }, { reg: /lling$/i, to: 'll' }, { reg: /tting$/i, to: 't' }, { reg: /ssing$/i, to: 'ss' }, { reg: /gging$/i, to: 'g' }, { reg: /([^aeiou])ying$/i, to: '$1y' }, { reg: /([^ae]i.)ing$/i, to: '$1e' }, { reg: /(ea.)ing$/i, to: '$1' }, { reg: /(u[rtcb]|[bdtpkg]l|n[cg]|a[gdkvtc]|[ua]s|[dr]g|yz|o[rlsp]|cre)ing$/i, to: '$1e' }, { reg: /(ch|sh)ing$/i, to: '$1' }, { reg: /(..)ing$/i, to: '$1' }], PastTense: [ { reg: /(ued)$/i, to: 'ue' }, { reg: /([aeiou]zz)ed$/i, to: '$1' }, { reg: /(e|i)lled$/i, to: '$1ll' }, { reg: /(sh|ch)ed$/i, to: '$1' }, { reg: /(tl|gl)ed$/i, to: '$1e' }, { reg: /(um?pt?)ed$/i, to: '$1' }, { reg: /(ss)ed$/i, to: '$1' }, { reg: /pped$/i, to: 'p' }, { reg: /tted$/i, to: 't' }, { reg: /gged$/i, to: 'g' }, { reg: /(h|ion|n[dt]|ai.|[cs]t|pp|all|ss|tt|int|ail|ld|en|oo.|er|k|pp|w|ou.|rt|ght|rm)ed$/i, to: '$1' }, { reg: /(.ut)ed$/i, to: '$1e' }, { reg: /(us)ed$/i, to: '$1e' }, { reg: /(..[^aeiouy])ed$/i, to: '$1e' }, { reg: /ied$/i, to: 'y' }, { reg: /(.o)ed$/i, to: '$1o' }, { reg: /(.i)ed$/i, to: '$1' }, { reg: /(a[^aeiou])ed$/i, to: '$1' }, { reg: /([rl])ew$/i, to: '$1ow' }, { reg: /([pl])t$/i, to: '$1t' }] }; module.exports = rules;