zenlish 0.2.05 → 0.2.06

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +455 -0
  3. data/CHANGELOG.md +11 -0
  4. data/Gemfile +5 -3
  5. data/Rakefile +5 -3
  6. data/lib/zenlish/feature/boolean_domain.rb +6 -4
  7. data/lib/zenlish/feature/boolean_value.rb +3 -2
  8. data/lib/zenlish/feature/enumeration_domain.rb +5 -2
  9. data/lib/zenlish/feature/feature.rb +9 -7
  10. data/lib/zenlish/feature/feature_def.rb +9 -6
  11. data/lib/zenlish/feature/feature_domain.rb +4 -2
  12. data/lib/zenlish/feature/feature_struct.rb +3 -1
  13. data/lib/zenlish/feature/feature_struct_def.rb +5 -1
  14. data/lib/zenlish/feature/feature_struct_def_bearer.rb +6 -4
  15. data/lib/zenlish/feature/feature_value.rb +4 -2
  16. data/lib/zenlish/feature/identifier_domain.rb +5 -3
  17. data/lib/zenlish/feature/identifier_value.rb +3 -2
  18. data/lib/zenlish/feature/symbol_value.rb +3 -1
  19. data/lib/zenlish/inflect/atomic_o_expression.rb +2 -1
  20. data/lib/zenlish/inflect/composite_o_expression.rb +3 -1
  21. data/lib/zenlish/inflect/concatenation.rb +3 -2
  22. data/lib/zenlish/inflect/equals_literal.rb +3 -1
  23. data/lib/zenlish/inflect/feature_heading.rb +2 -5
  24. data/lib/zenlish/inflect/formal_argument.rb +3 -1
  25. data/lib/zenlish/inflect/function_call.rb +4 -1
  26. data/lib/zenlish/inflect/heading.rb +2 -0
  27. data/lib/zenlish/inflect/inflection_rule.rb +2 -0
  28. data/lib/zenlish/inflect/inflection_table.rb +6 -4
  29. data/lib/zenlish/inflect/inflection_table_builder.rb +21 -18
  30. data/lib/zenlish/inflect/input_asis.rb +3 -0
  31. data/lib/zenlish/inflect/input_expression.rb +4 -2
  32. data/lib/zenlish/inflect/literal_asis.rb +4 -1
  33. data/lib/zenlish/inflect/matches_pattern.rb +2 -0
  34. data/lib/zenlish/inflect/membership.rb +2 -0
  35. data/lib/zenlish/inflect/method_heading.rb +3 -6
  36. data/lib/zenlish/inflect/not_equals_literal.rb +2 -0
  37. data/lib/zenlish/inflect/nullary_input_expression.rb +3 -1
  38. data/lib/zenlish/inflect/output_expression.rb +2 -0
  39. data/lib/zenlish/inflect/substitution.rb +3 -1
  40. data/lib/zenlish/inflect/unary_input_expression.rb +4 -1
  41. data/lib/zenlish/inflect/unconditionally_true.rb +4 -2
  42. data/lib/zenlish/lang/dictionary.rb +19 -16
  43. data/lib/zenlish/lang/lemmatizer.rb +40 -0
  44. data/lib/zenlish/lang/zenlish_grammar.rb +6 -4
  45. data/lib/zenlish/lex/empty_lexicon_factory.rb +3 -2
  46. data/lib/zenlish/lex/lexeme.rb +6 -4
  47. data/lib/zenlish/lex/lexical_entry.rb +6 -4
  48. data/lib/zenlish/lex/lexicon.rb +4 -3
  49. data/lib/zenlish/lex/literal.rb +3 -1
  50. data/lib/zenlish/lexer/lexer.rb +144 -0
  51. data/lib/zenlish/trie/base_trie_node.rb +27 -0
  52. data/lib/zenlish/trie/trie.rb +132 -0
  53. data/lib/zenlish/trie/trie_node.rb +21 -0
  54. data/lib/zenlish/trie/trie_root.rb +10 -0
  55. data/lib/zenlish/version.rb +3 -1
  56. data/lib/zenlish/wclasses/adjective.rb +4 -2
  57. data/lib/zenlish/wclasses/adverb.rb +3 -1
  58. data/lib/zenlish/wclasses/adverb_maybe.rb +3 -1
  59. data/lib/zenlish/wclasses/adverb_not.rb +2 -0
  60. data/lib/zenlish/wclasses/all_word_classes.rb +3 -1
  61. data/lib/zenlish/wclasses/article.rb +2 -0
  62. data/lib/zenlish/wclasses/auxiliary.rb +2 -0
  63. data/lib/zenlish/wclasses/auxiliary_be.rb +7 -6
  64. data/lib/zenlish/wclasses/auxiliary_do.rb +6 -5
  65. data/lib/zenlish/wclasses/cardinal.rb +3 -1
  66. data/lib/zenlish/wclasses/common_noun.rb +2 -0
  67. data/lib/zenlish/wclasses/comparative_particle.rb +5 -3
  68. data/lib/zenlish/wclasses/conjunction.rb +2 -0
  69. data/lib/zenlish/wclasses/conjunctive_pronoun.rb +2 -0
  70. data/lib/zenlish/wclasses/coordinator.rb +4 -2
  71. data/lib/zenlish/wclasses/definite_article.rb +2 -0
  72. data/lib/zenlish/wclasses/degree_adverb.rb +2 -0
  73. data/lib/zenlish/wclasses/demonstrative_determiner.rb +6 -4
  74. data/lib/zenlish/wclasses/demonstrative_pronoun.rb +2 -0
  75. data/lib/zenlish/wclasses/determiner.rb +3 -1
  76. data/lib/zenlish/wclasses/distributive_determiner.rb +2 -0
  77. data/lib/zenlish/wclasses/existential_there.rb +2 -0
  78. data/lib/zenlish/wclasses/fronting_quantifier.rb +3 -1
  79. data/lib/zenlish/wclasses/indefinite_article.rb +2 -0
  80. data/lib/zenlish/wclasses/indefinite_pronoun.rb +3 -1
  81. data/lib/zenlish/wclasses/irregular_linking_verb.rb +3 -1
  82. data/lib/zenlish/wclasses/irregular_verb.rb +13 -15
  83. data/lib/zenlish/wclasses/irregular_verb_be.rb +8 -7
  84. data/lib/zenlish/wclasses/irregular_verb_can.rb +8 -7
  85. data/lib/zenlish/wclasses/irregular_verb_do.rb +7 -6
  86. data/lib/zenlish/wclasses/irregular_verb_extension.rb +8 -6
  87. data/lib/zenlish/wclasses/irregular_verb_have.rb +12 -11
  88. data/lib/zenlish/wclasses/irregular_verb_know.rb +3 -1
  89. data/lib/zenlish/wclasses/irregular_verb_say.rb +3 -1
  90. data/lib/zenlish/wclasses/irregular_verb_think.rb +3 -1
  91. data/lib/zenlish/wclasses/lexical_verb.rb +3 -4
  92. data/lib/zenlish/wclasses/linking_adverb.rb +2 -0
  93. data/lib/zenlish/wclasses/modal_verb_can.rb +7 -5
  94. data/lib/zenlish/wclasses/noun.rb +4 -2
  95. data/lib/zenlish/wclasses/numeral.rb +2 -0
  96. data/lib/zenlish/wclasses/personal_pronoun.rb +8 -6
  97. data/lib/zenlish/wclasses/possessive_determiner.rb +13 -12
  98. data/lib/zenlish/wclasses/preposition.rb +3 -1
  99. data/lib/zenlish/wclasses/preposition_of.rb +2 -0
  100. data/lib/zenlish/wclasses/preposition_than.rb +2 -0
  101. data/lib/zenlish/wclasses/pronoun.rb +3 -1
  102. data/lib/zenlish/wclasses/proper_noun.rb +10 -8
  103. data/lib/zenlish/wclasses/quantifier.rb +3 -1
  104. data/lib/zenlish/wclasses/regular_verb.rb +9 -9
  105. data/lib/zenlish/wclasses/regular_verb_want.rb +4 -2
  106. data/lib/zenlish/wclasses/relative_pronoun.rb +4 -2
  107. data/lib/zenlish/wclasses/subordinating_conjunction.rb +7 -5
  108. data/lib/zenlish/wclasses/verb.rb +5 -3
  109. data/lib/zenlish/wclasses/word_class.rb +7 -5
  110. data/spec/spec_helper.rb +3 -1
  111. data/spec/zenlish/feature/boolean_domain_spec.rb +2 -2
  112. data/spec/zenlish/feature/boolean_value_spec.rb +1 -1
  113. data/spec/zenlish/feature/enumeration_domain_spec.rb +7 -7
  114. data/spec/zenlish/feature/feature_spec.rb +3 -3
  115. data/spec/zenlish/feature/feature_struct_def_bearer_spec.rb +10 -8
  116. data/spec/zenlish/feature/feature_struct_def_spec.rb +3 -2
  117. data/spec/zenlish/feature/identifier_domain_spec.rb +3 -3
  118. data/spec/zenlish/feature/identifier_value_spec.rb +4 -4
  119. data/spec/zenlish/feature/symbol_value_spec.rb +3 -3
  120. data/spec/zenlish/inflect/concatenation_spec.rb +7 -7
  121. data/spec/zenlish/inflect/feature_heading_spec.rb +9 -9
  122. data/spec/zenlish/inflect/formal_argument_spec.rb +2 -2
  123. data/spec/zenlish/inflect/function_call_spec.rb +4 -4
  124. data/spec/zenlish/inflect/inflection_rule_spec.rb +9 -5
  125. data/spec/zenlish/inflect/inflection_table_builder_spec.rb +26 -21
  126. data/spec/zenlish/inflect/inflection_table_spec.rb +18 -16
  127. data/spec/zenlish/inflect/input_asis_spec.rb +2 -6
  128. data/spec/zenlish/inflect/literal_asis_spec.rb +3 -3
  129. data/spec/zenlish/inflect/matches_pattern_spec.rb +1 -1
  130. data/spec/zenlish/inflect/membership_spec.rb +2 -2
  131. data/spec/zenlish/inflect/method_heading_spec.rb +3 -3
  132. data/spec/zenlish/inflect/substitution_spec.rb +1 -1
  133. data/spec/zenlish/inflect/unconditionally_true_spec.rb +2 -2
  134. data/spec/zenlish/lang/dictionary_spec.rb +11 -12
  135. data/spec/zenlish/lang/lemmatizer_spec.rb +43 -0
  136. data/spec/zenlish/lang/zenlish_grammar_spec.rb +2 -2
  137. data/spec/zenlish/lex/lexeme_spec.rb +11 -12
  138. data/spec/zenlish/lex/lexical_entry_spec.rb +1 -2
  139. data/spec/zenlish/lex/lexicon_spec.rb +9 -8
  140. data/spec/zenlish/lex/literal_spec.rb +2 -2
  141. data/spec/zenlish/lexer/lexer_spec.rb +52 -0
  142. data/spec/zenlish/parser/lesson1_spec.rb +2 -2
  143. data/spec/zenlish/parser/lesson2_spec.rb +31 -36
  144. data/spec/zenlish/parser/lesson3_spec.rb +98 -138
  145. data/spec/zenlish/parser/zparser_spec.rb +2 -1
  146. data/spec/zenlish/support/minimal_lexicon.rb +2 -0
  147. data/spec/zenlish/support/var2word.rb +18 -9
  148. data/spec/zenlish/trie/base_trie_node_spec.rb +33 -0
  149. data/spec/zenlish/trie/trie_spec.rb +108 -0
  150. data/spec/zenlish/wclasses/common_noun_spec.rb +6 -10
  151. data/spec/zenlish/wclasses/demonstrative_determiner_spec.rb +2 -2
  152. data/spec/zenlish/wclasses/irregular_verb_can_spec.rb +9 -9
  153. data/spec/zenlish/wclasses/irregular_verb_spec.rb +9 -9
  154. data/spec/zenlish/wclasses/lexical_verb_spec.rb +3 -3
  155. data/spec/zenlish/wclasses/modal_verb_can_spec.rb +4 -4
  156. data/spec/zenlish/wclasses/personal_pronoun_spec.rb +6 -9
  157. data/spec/zenlish/wclasses/possessive_determiner_spec.rb +19 -22
  158. data/spec/zenlish/wclasses/regular_verb_spec.rb +20 -20
  159. data/spec/zenlish/wclasses/regular_verb_want_spec.rb +30 -0
  160. data/spec/zenlish_spec.rb +3 -1
  161. data/zenlish.gemspec +17 -14
  162. metadata +26 -9
@@ -1,12 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'irregular_verb'
2
4
 
3
5
  module Zenlish
4
6
  module WClasses
5
7
  # The `be` verb used as a lexical verb (as opposed auxiliary verb).
6
8
  class IrregularVerbBe < IrregularVerb
7
- def initialize
8
- super()
9
- end
9
+ # rubocop: disable Layout/SpaceInsideArrayLiteralBrackets
10
10
 
11
11
  # The mix-in module used to extend the lexeme
12
12
  # @return [Module, NilClass]
@@ -18,10 +18,10 @@ module Zenlish
18
18
 
19
19
  def init_feature_defs
20
20
  super
21
- # Create standard feature definitions for irregular verbs.
22
- feature_def_dsl {
21
+ # Create standard feature definitiofor irregular verbs.
22
+ feature_def_dsl do
23
23
  feature_def 'PARADIGM' => [identifier, 'Verb_be_inflection'] # 2nd item is default value
24
- }
24
+ end
25
25
  end
26
26
 
27
27
  def init_paradigms
@@ -43,6 +43,7 @@ module Zenlish
43
43
  end
44
44
  add_paradigm(table)
45
45
  end
46
+ # rubocop: enable Layout/SpaceInsideArrayLiteralBrackets
46
47
  end # class
47
48
  end # module
48
- end # module
49
+ end # module
@@ -1,22 +1,22 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'irregular_verb'
2
4
 
3
5
  module Zenlish
4
6
  module WClasses
5
7
  # Irregular verb can
6
8
  class IrregularVerbCan < IrregularVerb
7
- def initialize
8
- super()
9
- end
9
+ # rubocop: disable Layout/SpaceInsideArrayLiteralBrackets
10
10
 
11
11
  private
12
12
 
13
13
  def init_feature_defs
14
14
  super
15
15
  # Create standard feature definitions for modal verb can.
16
- feature_def_dsl {
16
+ feature_def_dsl do
17
17
  feature_def 'TIME' => enumeration(:present, :past_simple)
18
18
  feature_def 'PARADIGM' => [identifier, 'Verb_can_inflection'] # 2nd item is default value
19
- }
19
+ end
20
20
  end
21
21
 
22
22
  def init_paradigms
@@ -28,7 +28,8 @@ module Zenlish
28
28
  rule([equals(:past_simple) ], literal('could'))
29
29
  end
30
30
  add_paradigm(table)
31
- end
31
+ end
32
+ # rubocop: enable Layout/SpaceInsideArrayLiteralBrackets
32
33
  end # class
33
34
  end # module
34
- end # module
35
+ end # module
@@ -1,12 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'irregular_verb'
2
4
 
3
5
  module Zenlish
4
6
  module WClasses
5
7
  # The `do` verb used as a lexical verb (as opposed auxiliary verb).
6
8
  class IrregularVerbDo < IrregularVerb
7
- def initialize
8
- super()
9
- end
9
+ # rubocop: disable Layout/SpaceInsideArrayLiteralBrackets
10
10
 
11
11
  # The mix-in module used to extend the lexeme
12
12
  # @return [Module, NilClass]
@@ -19,9 +19,9 @@ module Zenlish
19
19
  def init_feature_defs
20
20
  super
21
21
  # Create standard feature definitions for irregular verbs.
22
- feature_def_dsl {
22
+ feature_def_dsl do
23
23
  feature_def 'PARADIGM' => [identifier, 'Verb_do_inflection'] # 2nd item is default value
24
- }
24
+ end
25
25
  end
26
26
 
27
27
  def init_paradigms
@@ -40,6 +40,7 @@ module Zenlish
40
40
  end
41
41
  add_paradigm(table)
42
42
  end
43
+ # rubocop: enable Layout/SpaceInsideArrayLiteralBrackets
43
44
  end # class
44
45
  end # module
45
- end # module
46
+ end # module
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'lexical_verb'
2
4
  require_relative 'irregular_verb_extension'
3
5
 
@@ -10,10 +12,10 @@ module Zenlish
10
12
  def init_extension(host)
11
13
  host.instance_variable_set(:@forms, [])
12
14
  end
13
-
15
+
14
16
  # @param theForm [Hash{Symbol => String}]
15
17
  def forms(theForms)
16
- valid_symbols = [:past_simple, :past_participle]
18
+ valid_symbols = %i[past_simple past_participle]
17
19
  actual_symbols = theForms.keys
18
20
  actual_symbols.each do |symb|
19
21
  raise StandardError, "Invalid verb form #{symb}" unless valid_symbols.include?(symb)
@@ -26,14 +28,14 @@ module Zenlish
26
28
  @forms[0] = theForms[valid_symbols[0]]
27
29
  @forms[1] = theForms[valid_symbols[1]]
28
30
  end
29
-
31
+
30
32
  def past_simple
31
33
  @forms.first
32
34
  end
33
-
35
+
34
36
  def past_participle
35
37
  @forms.last
36
- end
38
+ end
37
39
  end # class
38
40
  end # module
39
- end # module
41
+ end # module
@@ -1,27 +1,27 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'irregular_verb'
2
4
 
3
5
  module Zenlish
4
6
  module WClasses
5
7
  # The `have` verb used as a lexical verb (as opposed auxiliary verb).
6
8
  class IrregularVerbHave < IrregularVerb
7
- def initialize
8
- super()
9
- end
10
-
9
+ # rubocop: disable Layout/SpaceInsideArrayLiteralBrackets
10
+
11
11
  # The mix-in module used to extend the lexeme
12
12
  # @return [Module, NilClass]
13
13
  def extension
14
14
  nil
15
- end
15
+ end
16
16
 
17
17
  private
18
18
 
19
19
  def init_feature_defs
20
20
  super
21
21
  # Create standard feature definitions for irregular verbs.
22
- feature_def_dsl {
22
+ feature_def_dsl do
23
23
  feature_def 'PARADIGM' => [identifier, 'Verb_have_inflection'] # 2nd item is default value
24
- }
24
+ end
25
25
  end
26
26
 
27
27
  def init_paradigms
@@ -31,15 +31,16 @@ module Zenlish
31
31
  feature_heading 'NUMBER'
32
32
  feature_heading 'TIME'
33
33
  # PERSON NUMBER TIME
34
- rule([not_equal(:third), equals(:singular), equals(:present) ], literal('have'))
34
+ rule([not_equal(:third), equals(:singular), equals(:present) ], literal('have'))
35
35
  rule([equals(:third), equals(:singular), equals(:present) ], literal('has'))
36
36
  rule([dont_care, equals(:plural), equals(:present) ], literal('have'))
37
37
  rule([dont_care, dont_care, equals(:progressive) ], literal('having'))
38
- rule([dont_care, dont_care, equals(:past_simple) ], literal('had'))
38
+ rule([dont_care, dont_care, equals(:past_simple) ], literal('had'))
39
39
  rule([dont_care, dont_care, equals(:past_participle)], literal('had'))
40
40
  end
41
41
  add_paradigm(table)
42
- end
42
+ end
43
+ # rubocop: enable Layout/SpaceInsideArrayLiteralBrackets
43
44
  end # class
44
45
  end # module
45
- end # module
46
+ end # module
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'irregular_verb'
2
4
 
3
5
  module Zenlish
@@ -6,4 +8,4 @@ module Zenlish
6
8
  class IrregularVerbKnow < IrregularVerb
7
9
  end # class
8
10
  end # module
9
- end # module
11
+ end # module
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'irregular_verb'
2
4
 
3
5
  module Zenlish
@@ -6,4 +8,4 @@ module Zenlish
6
8
  class IrregularVerbSay < IrregularVerb
7
9
  end # class
8
10
  end # module
9
- end # module
11
+ end # module
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'irregular_verb'
2
4
 
3
5
  module Zenlish
@@ -6,4 +8,4 @@ module Zenlish
6
8
  class IrregularVerbThink < IrregularVerb
7
9
  end # class
8
10
  end # module
9
- end # module
11
+ end # module
@@ -1,11 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'verb'
2
4
 
3
5
  module Zenlish
4
6
  module WClasses
5
7
  class LexicalVerb < Verb
6
- def initialize
7
- super
8
- end
9
8
  end # class
10
9
  end # module
11
- end # module
10
+ end # module
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'adverb'
2
4
 
3
5
  module Zenlish
@@ -1,24 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'auxiliary'
2
4
 
3
5
  module Zenlish
4
6
  module WClasses
5
7
  # The modal verb `can`
6
8
  class ModalVerbCan < Auxiliary
7
- def initialize
8
- super()
9
- end
9
+ # Comment requested by Rubocop
10
10
 
11
11
  private
12
12
 
13
13
  def init_feature_defs
14
14
  super
15
15
  # Create standard feature definitions for modal verb can.
16
- feature_def_dsl {
16
+ feature_def_dsl do
17
17
  feature_def 'TIME' => enumeration(:present, :past_simple)
18
18
  feature_def 'PARADIGM' => [identifier, 'Verb_can_inflection'] # 2nd item is default value
19
- }
19
+ end
20
20
  end
21
21
 
22
+ # rubocop: disable Layout/SpaceInsideArrayLiteralBrackets
22
23
  def init_paradigms
23
24
  builder = Inflect::InflectionTableBuilder.new
24
25
  table = builder.build('Verb_can_inflection') do
@@ -29,6 +30,7 @@ module Zenlish
29
30
  end
30
31
  add_paradigm(table)
31
32
  end
33
+ # rubocop: enable Layout/SpaceInsideArrayLiteralBrackets
32
34
  end # class
33
35
  end # module
34
36
  end # module
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'word_class'
2
4
 
3
5
  module Zenlish
@@ -21,11 +23,11 @@ module Zenlish
21
23
 
22
24
  def init_feature_defs
23
25
  # Create standard feature definitions for nouns.
24
- feature_def_dsl {
26
+ feature_def_dsl do
25
27
  feature_def 'NUMBER' => enumeration(:singular, :plural)
26
28
  feature_def 'COUNTABILITY' => enumeration(:count, :non_count)
27
29
  feature_def 'PARADIGM' => [identifier, 'Common_form'] # 2nd item is default value
28
- }
30
+ end
29
31
  end
30
32
  end # class
31
33
  end # module
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'determiner'
2
4
 
3
5
  module Zenlish
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'pronoun'
2
4
  require_relative '../inflect/inflection_table_builder'
3
5
 
@@ -23,13 +25,13 @@ module Zenlish
23
25
 
24
26
  def init_feature_defs
25
27
  # Create standard feature definitions for irregular verbs.
26
- feature_def_dsl {
28
+ feature_def_dsl do
27
29
  feature_def 'NUMBER' => enumeration(:singular, :plural)
28
30
  feature_def 'PERSON' => enumeration(:first, :second, :third)
29
31
  feature_def 'GENDER' => enumeration(:feminine, :masculine, :neuter)
30
32
  feature_def 'CASE' => enumeration(:subject, :object)
31
33
  feature_def 'PARADIGM' => [identifier, 'ppn_1st_paradigm'] # 2nd item is default value
32
- }
34
+ end
33
35
  end
34
36
 
35
37
  def init_paradigms
@@ -57,14 +59,14 @@ module Zenlish
57
59
  rule([equals(:second), dont_care, not_equal(:neuter), dont_care], func('base_form'))
58
60
  end
59
61
  add_paradigm(table)
60
-
62
+
61
63
  table = builder.build('ppn_3rd_paradigm') do
62
64
  feature_heading 'PERSON'
63
65
  feature_heading 'NUMBER'
64
66
  feature_heading 'GENDER'
65
67
  feature_heading 'CASE'
66
68
  # PERSON NUMBER GENDER CASE
67
- rule([equals(:third), equals(:singular), equals(:neuter), dont_care], func('base_form'))
69
+ rule([equals(:third), equals(:singular), equals(:neuter), dont_care], func('base_form'))
68
70
  rule([equals(:third), equals(:singular), equals(:feminine), equals(:subject)], literal('she'))
69
71
  rule([equals(:third), equals(:singular), equals(:masculine), equals(:subject)], literal('he'))
70
72
  rule([equals(:third), equals(:plural), dont_care, equals(:subject)], literal('they'))
@@ -72,8 +74,8 @@ module Zenlish
72
74
  rule([equals(:third), equals(:singular), equals(:masculine), equals(:object)], literal('him'))
73
75
  rule([equals(:third), equals(:plural), dont_care, equals(:object)], literal('them'))
74
76
  end
75
- add_paradigm(table)
77
+ add_paradigm(table)
76
78
  end
77
79
  end # class
78
80
  end # module
79
- end # module
81
+ end # module
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'determiner'
2
4
  require_relative '../inflect/inflection_table_builder'
3
5
 
@@ -11,7 +13,7 @@ module Zenlish
11
13
  super()
12
14
  init_feature_defs
13
15
  init_paradigms
14
- end
16
+ end
15
17
 
16
18
  # @return [FalseClass] Indicates that demonstrative determiners inflects.
17
19
  def invariable?
@@ -22,12 +24,12 @@ module Zenlish
22
24
 
23
25
  def init_feature_defs
24
26
  # Create standard feature definitions for irregular verbs.
25
- feature_def_dsl {
27
+ feature_def_dsl do
26
28
  feature_def 'NUMBER' => enumeration(:singular, :plural)
27
29
  feature_def 'PERSON' => enumeration(:first, :second, :third)
28
30
  feature_def 'GENDER' => enumeration(:feminine, :masculine, :neuter)
29
31
  feature_def 'PARADIGM' => [identifier, 'possdet_1st_paradigm'] # 2nd item is default value
30
- }
32
+ end
31
33
  end
32
34
 
33
35
  def init_paradigms
@@ -37,7 +39,7 @@ module Zenlish
37
39
  feature_heading 'PERSON'
38
40
  feature_heading 'NUMBER'
39
41
  feature_heading 'GENDER'
40
- # PERSON NUMBER GENDER
42
+ # PERSON NUMBER GENDER
41
43
  rule([equals(:first), equals(:singular), not_equal(:neuter)], func('base_form'))
42
44
  rule([equals(:first), equals(:plural), not_equal(:neuter)], literal('our'))
43
45
  end
@@ -47,24 +49,23 @@ module Zenlish
47
49
  feature_heading 'PERSON'
48
50
  feature_heading 'NUMBER'
49
51
  feature_heading 'GENDER'
50
- # PERSON NUMBER GENDER
51
- rule([equals(:second), dont_care, not_equal(:neuter)], func('base_form'))
52
-
52
+ # PERSON NUMBER GENDER
53
+ rule([equals(:second), dont_care, not_equal(:neuter)], func('base_form'))
53
54
  end
54
55
  add_paradigm(table)
55
-
56
+
56
57
  table = builder.build('possdet_3rd_paradigm') do
57
58
  feature_heading 'PERSON'
58
59
  feature_heading 'NUMBER'
59
60
  feature_heading 'GENDER'
60
- # PERSON NUMBER GENDER
61
+ # PERSON NUMBER GENDER
61
62
  rule([equals(:third), equals(:singular), equals(:neuter)], func('base_form'))
62
63
  rule([equals(:third), equals(:singular), equals(:feminine)], literal('her'))
63
64
  rule([equals(:third), equals(:singular), equals(:masculine)], literal('his'))
64
- rule([equals(:third), equals(:plural), dont_care], literal('their'))
65
+ rule([equals(:third), equals(:plural), dont_care], literal('their'))
65
66
  end
66
- add_paradigm(table)
67
- end
67
+ add_paradigm(table)
68
+ end
68
69
  end # class
69
70
  end # module
70
71
  end # module