Sha256: b40a3e7bf444714b457e830d425829db9c59c692b754f1ef55655f4e26739d58

Contents?: true

Size: 1.66 KB

Versions: 2

Compression:

Stored size: 1.66 KB

Contents

require_relative 'auxiliary'

module Zenlish
  module WClasses
    class AuxiliaryBe < Auxiliary
      def initialize
        super()
      end

      private

      def init_feature_defs
        super
        # Create standard feature definitions for modal verb can.
        feature_def_dsl {
          feature_def 'PARADIGM' => [identifier, 'Verb_be_inflection'] # 2nd item is default value
        }
      end

      def init_paradigms
        builder = Inflect::InflectionTableBuilder.new
        table = builder.build('Verb_be_inflection') do
          feature_heading 'PERSON'
          feature_heading 'NUMBER'
          feature_heading 'TIME'
          #     PERSON               NUMBER             TIME
          rule([equals(:first),      equals(:singular), equals(:present)        ], literal('am'))
          rule([equals(:second),     equals(:singular), equals(:present)        ], literal('are'))
          rule([equals(:third),      equals(:singular), equals(:present)        ], literal('is'))
          rule([dont_care,           equals(:plural),   equals(:present)        ], literal('are'))
          rule([dont_care,           dont_care,         equals(:progressive)    ], literal('being'))
          rule([in?(:first, :third), equals(:singular), equals(:past_simple)    ], literal('was'))
          rule([equals(:second),     equals(:singular), equals(:past_simple)    ], literal('were'))
          rule([dont_care,           equals(:plural),   equals(:past_simple)    ], literal('were'))
          rule([dont_care,           dont_care,         equals(:past_participle)], literal('been'))
        end
        add_paradigm(table)
      end    
    end # class
  end # module
end # module

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
zenlish-0.2.05 lib/zenlish/wclasses/auxiliary_be.rb
zenlish-0.2.04 lib/zenlish/wclasses/auxiliary_be.rb