class Zenlish::WClasses::IrregularVerb
Attributes
forms[W]
@return [Array<String>] [the past simple form, past participle form].
Public Instance Methods
extension()
click to toggle source
The mix-in module used to extend the lexeme @return [Module, NilClass]
# File lib/zenlish/wclasses/irregular_verb.rb, line 14 def extension IrregularVerbExtension end
Private Instance Methods
init_feature_defs()
click to toggle source
Calls superclass method
# File lib/zenlish/wclasses/irregular_verb.rb, line 20 def init_feature_defs super # Create standard feature definitions for irregular verbs. feature_def_dsl do feature_def 'PARADIGM' => [identifier, 'Irregular_inflection'] # 2nd item is default value end end
init_paradigms()
click to toggle source
# File lib/zenlish/wclasses/irregular_verb.rb, line 28 def init_paradigms builder = Inflect::InflectionTableBuilder.new table = builder.build('Irregular_inflection') do feature_heading 'PERSON' feature_heading 'NUMBER' feature_heading 'TIME' method_heading 'base_form' # PERSON NUMBER TIME base_form rule([not_equal(:third), equals(:singular), equals(:present), dont_care], col('base_form')) rule([equals(:third), equals(:singular), equals(:present), matches(/[^aeiouy]y$/)], sub(col('base_form'), /y$/, 'ies')) rule([equals(:third), equals(:singular), equals(:present), matches(/(?:[osxz]|ch|sh)$/)], concat(col('base_form'), 'es')) rule([equals(:third), equals(:singular), equals(:present), dont_care], concat(col('base_form'), 's')) rule([dont_care, equals(:plural), equals(:present), dont_care], col('base_form')) rule([dont_care, dont_care, equals(:progressive), matches(/ie$/)], sub(col('base_form'), /ie$/, 'ying')) rule([dont_care, dont_care, equals(:progressive), matches(/[^eoy]e$/)], sub(col('base_form'), /e$/, 'ing')) rule([dont_care, dont_care, equals(:progressive), dont_care], concat(col('base_form'), 'ing')) rule([dont_care, dont_care, equals(:past_simple), dont_care], func('past_simple')) rule([dont_care, dont_care, equals(:past_participle), dont_care], func('past_participle')) end add_paradigm(table) end