Sha256: b827a95ba107a8893cf06a747aa4b85d6e42502ce175182c98c64b5f618a2346

Contents?: true

Size: 1.11 KB

Versions: 3

Compression:

Stored size: 1.11 KB

Contents

require_relative 'word_class'
require_relative '../inflect/inflection_table_builder'

module Zenlish
  module WClasses
    # Abstract class. In traditional grammar, the verb is often defined 
    # notionally as a 'doing' word (i.e. a word that describes the action
    # in a clause).
    class Verb < WordClass
      def initialize
        super()
        init_feature_defs
      end    
    
      # As all verbs inflect, or change form, to reflect changes in tense,
      # person, number, and voice, they are, by definition, variable.
      def invariable?
        false
      end

      private

      def init_feature_defs
        # Create standard feature definitions for lexical verbs.
        feature_def_dsl {
          feature_def 'NUMBER' => enumeration(:singular, :plural)
          feature_def 'PERSON' => enumeration(:first, :second, :third)
          feature_def 'TIME' => enumeration(:present, :progressive, :past_simple, :past_participle)          
          feature_def 'PARADIGM' => [identifier, 'Regular_inflection'] # 2nd item is default value
        }
      end       
    end # class
  end # module
end # module

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
zenlish-0.2.03 lib/zenlish/wclasses/verb.rb
zenlish-0.2.02 lib/zenlish/wclasses/verb.rb
zenlish-0.2.01 lib/zenlish/wclasses/verb.rb