zenlish 0.1.23 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,223 @@
1
+ require_relative 'minimal_lexicon'
2
+ require_relative '../../../lib/zenlish/lex/literal'
3
+
4
+ module Zenlish
5
+ # Utility module. It defines variables that each are assgned a
6
+ # Literal object.
7
+ module Var2Word
8
+ def get_lexeme(aLemma, aWordClass = nil)
9
+ Zenlish::Lang::Dictionary.get_lexeme(aLemma, aWordClass)
10
+ end
11
+
12
+ def self.literal2var(aLemma, aLiteral, aSuffix = '')
13
+ mth_name = aLiteral.downcase + aSuffix
14
+ define_method(mth_name.to_sym) do
15
+ Lex::Literal.new(aLiteral, get_lexeme(aLemma), 0)
16
+ end
17
+ end
18
+
19
+ # In absence of a POS tagger/lemmatizer, we map input words
20
+ # to variables that themselves return Literal objects.
21
+ # For instance, next line will create a variable called 'alive'
22
+ literal2var('a', 'a', '_as_art')
23
+ literal2var('a', 'an')
24
+ literal2var('about', 'about')
25
+ literal2var('above', 'above')
26
+ def after_adverb ; Lex::Literal.new('after', get_lexeme('after', WClasses::Adverb), 0) ; end
27
+ def after_ ; Lex::Literal.new('after', get_lexeme('after', WClasses::SubordinatingConjunction), 0) ; end
28
+ literal2var('alive', 'alive')
29
+ literal2var('all', 'all')
30
+ def am ; Lex::Literal.new('am', get_lexeme('be', WClasses::IrregularVerbBe), 0) ; end
31
+ literal2var('and', 'and', '_')
32
+ literal2var('animal', 'animal')
33
+ literal2var('animal', 'animals')
34
+ literal2var('another', 'another')
35
+ def are ; Lex::Literal.new('are', get_lexeme('be', WClasses::IrregularVerbBe), 0) ; end
36
+ literal2var('as', 'as')
37
+ literal2var('at', 'at')
38
+ literal2var('bad', 'bad')
39
+ def be_ ; Lex::Literal.new('be', get_lexeme('be', WClasses::IrregularVerbBe), 0) ; end
40
+ literal2var('because', 'because')
41
+ literal2var('become', 'became')
42
+ literal2var('become', 'become')
43
+ literal2var('become', 'becomes')
44
+ def before_adverb ; Lex::Literal.new('before', get_lexeme('before', WClasses::Adverb), 0) ; end
45
+ def before_as_adj ; Lex::Literal.new('before', get_lexeme('before', WClasses::Adjective), 0) ; end
46
+ def before ; Lex::Literal.new('before', get_lexeme('before', WClasses::SubordinatingConjunction), 0) ; end
47
+ literal2var('belong', 'belong')
48
+ literal2var('belong', 'belongs')
49
+ literal2var('below', 'below')
50
+ literal2var('big', 'big')
51
+ literal2var('big', 'bigger')
52
+ literal2var('body', 'body')
53
+ literal2var('but', 'but')
54
+ literal2var('can', 'can')
55
+ literal2var('cause', 'cause')
56
+ literal2var('cause', 'caused')
57
+ literal2var('cause', 'causes')
58
+ literal2var('change', 'change', '_')
59
+ literal2var('change', 'changed')
60
+ literal2var('change', 'changes')
61
+ literal2var('contain', 'contain')
62
+ literal2var('contain', 'contains')
63
+ literal2var('container', 'container')
64
+ literal2var('container', 'containers')
65
+ literal2var('could', 'could')
66
+ def did ; Lex::Literal.new('did', get_lexeme('do', WClasses::IrregularVerbDo), 0) ; end
67
+ literal2var('die', 'die')
68
+ literal2var('die', 'died')
69
+ literal2var('die', 'dies')
70
+ literal2var('different', 'different')
71
+ def do_ ; Lex::Literal.new('do', get_lexeme('do', WClasses::IrregularVerbDo), 0) ; end
72
+ def do_aux ; Lex::Literal.new('do', get_lexeme('do', WClasses::AuxiliaryDo), 0) ; end
73
+ def does ; Lex::Literal.new('does', get_lexeme('do', WClasses::IrregularVerbDo), 0) ; end
74
+ def does_aux ; Lex::Literal.new('does', get_lexeme('do', WClasses::AuxiliaryDo), 0) ; end
75
+ literal2var('each', 'each', '_')
76
+ def each_ ; Lex::Literal.new('each', get_lexeme('each', WClasses::DistributiveDeterminer), 0) ; end
77
+ def each_as_pronoun ; Lex::Literal.new('each', get_lexeme('each', WClasses::Pronoun), 0) ; end
78
+ literal2var('exist', 'exist')
79
+ literal2var('exist', 'existed')
80
+ literal2var('exist', 'exists')
81
+ literal2var('false', 'false', '_')
82
+ literal2var('far', 'far')
83
+ literal2var('far from', 'far_from')
84
+ literal2var('feel', 'feel')
85
+ literal2var('feel', 'feels')
86
+ literal2var('feel', 'felt')
87
+ literal2var('for', 'for', '_')
88
+ literal2var('from', 'from')
89
+ literal2var('good', 'good')
90
+ literal2var('happen', 'happen')
91
+ literal2var('happen', 'happened')
92
+ literal2var('happen', 'happening')
93
+ literal2var('happen', 'happens')
94
+ literal2var('have', 'has')
95
+ literal2var('have', 'have')
96
+ literal2var('hear', 'hear')
97
+ literal2var('hear', 'heard')
98
+ literal2var('hear', 'hears')
99
+ def here ; Lex::Literal.new('here', get_lexeme('here', WClasses::Adverb), 0) ; end
100
+ def here_as_noun ; Lex::Literal.new('here', get_lexeme('here', WClasses::CommonNoun), 0) ; end
101
+ def i_pronoun ; Lex::Literal.new('I', get_lexeme('I'), 0) ; end
102
+ literal2var('if', 'if', '_')
103
+ literal2var('in', 'in', '_')
104
+ literal2var('inside', 'inside')
105
+ literal2var('it', 'it', '_')
106
+ literal2var('its', 'its')
107
+ literal2var('J', 'j', '_')
108
+ def is ; Lex::Literal.new('is', get_lexeme('be', WClasses::IrregularVerbBe), 0) ; end
109
+ def is_aux ; Lex::Literal.new('is', get_lexeme('be', WClasses::AuxiliaryBe), 0) ; end
110
+ literal2var('K', 'k', '_')
111
+ literal2var('kind', 'kind')
112
+ literal2var('kind', 'kinds')
113
+ literal2var('know', 'knew')
114
+ literal2var('know', 'know')
115
+ literal2var('know', 'knows')
116
+ literal2var('like', 'like')
117
+ literal2var('Lisa', 'Lisa')
118
+ literal2var('live', 'lived')
119
+ literal2var('living', 'living')
120
+ literal2var('long', 'long')
121
+ literal2var('make', 'made')
122
+ literal2var('make', 'make')
123
+ literal2var('many', 'many')
124
+ literal2var('maybe', 'maybe')
125
+ literal2var('me', 'me')
126
+ literal2var('moment', 'moment')
127
+ def more ; Lex::Literal.new('more', get_lexeme('more', WClasses::Adjective), 0) ; end
128
+ def more_as_adverb ; Lex::Literal.new('more', get_lexeme('more', WClasses::Adverb), 0) ; end
129
+ literal2var('move', 'move')
130
+ literal2var('move', 'moved')
131
+ literal2var('move', 'moving')
132
+ literal2var('move', 'moves')
133
+ literal2var('much', 'much')
134
+ literal2var('my', 'my')
135
+ literal2var('near', 'near')
136
+ literal2var('near to', 'near_to')
137
+ literal2var('not', 'not', '_')
138
+ def now ; Lex::Literal.new('now', get_lexeme('now', WClasses::Adverb), 0) ; end
139
+ def now_as_noun ; Lex::Literal.new('now', get_lexeme('now', WClasses::CommonNoun), 0) ; end
140
+ literal2var('of', 'of')
141
+ literal2var('on', 'on')
142
+ def one ; Lex::Literal.new('one', get_lexeme('one', WClasses::Cardinal), 0) ; end
143
+ def one_as_adj ; Lex::Literal.new('one', get_lexeme('one', WClasses::Adjective), 0) ; end
144
+ def one_as_pronoun ; Lex::Literal.new('one', get_lexeme('one', WClasses::IndefinitePronoun), 0) ; end
145
+ literal2var('or', 'or', '_')
146
+ literal2var('other', 'other')
147
+ literal2var('part', 'part')
148
+ literal2var('part', 'parts')
149
+ literal2var('people', 'people')
150
+ literal2var('person', 'person')
151
+ literal2var('place', 'place')
152
+ def same ; Lex::Literal.new('same', get_lexeme('same', WClasses::Adjective), 0) ; end
153
+ def same_as_pronoun ; Lex::Literal.new('same', get_lexeme('same', WClasses::Pronoun), 0) ; end
154
+ literal2var('see', 'saw')
155
+ literal2var('short', 'short')
156
+ literal2var('side', 'side')
157
+ literal2var('small', 'small')
158
+ literal2var('small', 'smaller')
159
+ literal2var('some', 'some')
160
+ literal2var('say', 'say')
161
+ literal2var('say', 'said')
162
+ literal2var('say', 'says')
163
+ literal2var('see', 'see')
164
+ literal2var('see', 'sees')
165
+ literal2var('someone', 'someone')
166
+ literal2var('someplace', 'someplace')
167
+ literal2var('something', 'something')
168
+ literal2var('surface', 'surface')
169
+ literal2var('the', 'the')
170
+ literal2var('their', 'their')
171
+ literal2var('them', 'them')
172
+ literal2var('then', 'then', '_')
173
+ literal2var('they', 'they')
174
+ literal2var('than', 'than')
175
+ literal2var('that', 'that')
176
+ literal2var('there', 'there')
177
+ literal2var('thing', 'thing')
178
+ literal2var('thing', 'things')
179
+ literal2var('think', 'think')
180
+ literal2var('think', 'thinking')
181
+ literal2var('think', 'thinks')
182
+ literal2var('think', 'thought')
183
+ def these ; Lex::Literal.new('these', get_lexeme('this', WClasses::DemonstrativeDeterminer), 0) ; end
184
+ def these_as_pronoun ; Lex::Literal.new('these', get_lexeme('this', WClasses::DemonstrativePronoun), 0) ; end
185
+ def this ; Lex::Literal.new('this', get_lexeme('this', WClasses::DemonstrativeDeterminer), 0) ; end
186
+ def this_as_pronoun ; Lex::Literal.new('this', get_lexeme('this', WClasses::DemonstrativePronoun), 0) ; end
187
+ literal2var('this one', 'this_one')
188
+ literal2var('time', 'time')
189
+ literal2var('to', 'to')
190
+ literal2var('Tony', 'Tony')
191
+ literal2var('touch', 'touch')
192
+ literal2var('touch', 'touched')
193
+ literal2var('touch', 'touching')
194
+ literal2var('try', 'tried')
195
+ literal2var('true', 'true', '_')
196
+ literal2var('try', 'tries')
197
+ literal2var('try', 'try', '_')
198
+ def two ; Lex::Literal.new('two', get_lexeme('two', WClasses::Cardinal), 0) ; end
199
+ def two_as_pronoun ; Lex::Literal.new('two', get_lexeme('two', WClasses::IndefinitePronoun), 0) ; end
200
+ literal2var('use', 'use')
201
+ literal2var('use', 'used')
202
+ literal2var('very', 'very')
203
+ literal2var('want', 'want')
204
+ literal2var('want', 'wants')
205
+ def was ; Lex::Literal.new('was', get_lexeme('be', WClasses::IrregularVerbBe), 0) ; end
206
+ def were ; Lex::Literal.new('were', get_lexeme('be', WClasses::IrregularVerbBe), 0) ; end
207
+ literal2var('what', 'what')
208
+ literal2var('when', 'when', '_')
209
+ def where ; Lex::Literal.new('where', get_lexeme('where', WClasses::Adverb), 0) ; end
210
+ def where_conjunction ; Lex::Literal.new('where', get_lexeme('where', WClasses::SubordinatingConjunction), 0) ; end
211
+ literal2var('who', 'who')
212
+ literal2var('with', 'with')
213
+ literal2var('word', 'words')
214
+ def x_as_noun ; Lex::Literal.new('X', get_lexeme('X'), 0) ; end
215
+ literal2var('you', 'you')
216
+ literal2var('you', 'your')
217
+
218
+ def colon ; Lex::Literal.new(':', get_lexeme(':'), 0) ; end
219
+ def comma ; Lex::Literal.new(',', get_lexeme(','), 0) ; end
220
+ def dot ; Lex::Literal.new('.', get_lexeme('.'), 0) ; end
221
+ def quote ; Lex::Literal.new('"', get_lexeme('"'), 0) ; end
222
+ end # module
223
+ end # module
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zenlish
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.23
4
+ version: 0.1.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimitri Geshef
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-04 00:00:00.000000000 Z
11
+ date: 2019-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rley
@@ -130,6 +130,7 @@ files:
130
130
  - lib/zenlish/wclasses/lexical_verb.rb
131
131
  - lib/zenlish/wclasses/linking_adverb.rb
132
132
  - lib/zenlish/wclasses/modal_verb_can.rb
133
+ - lib/zenlish/wclasses/modal_verb_could.rb
133
134
  - lib/zenlish/wclasses/noun.rb
134
135
  - lib/zenlish/wclasses/numeral.rb
135
136
  - lib/zenlish/wclasses/personal_pronoun.rb
@@ -153,8 +154,12 @@ files:
153
154
  - spec/zenlish/lex/lexical_entry_spec.rb
154
155
  - spec/zenlish/lex/lexicon_spec.rb
155
156
  - spec/zenlish/lex/literal_spec.rb
157
+ - spec/zenlish/parser/lesson1_spec.rb
158
+ - spec/zenlish/parser/lesson2_spec.rb
159
+ - spec/zenlish/parser/lesson3_spec.rb
156
160
  - spec/zenlish/parser/zparser_spec.rb
157
161
  - spec/zenlish/support/minimal_lexicon.rb
162
+ - spec/zenlish/support/var2word.rb
158
163
  - spec/zenlish/wclasses/common_noun_spec.rb
159
164
  - spec/zenlish/wclasses/irregular_verb_spec.rb
160
165
  - spec/zenlish/wclasses/proper_noun_spec.rb
@@ -191,6 +196,9 @@ test_files:
191
196
  - spec/zenlish/lex/lexical_entry_spec.rb
192
197
  - spec/zenlish/lex/lexicon_spec.rb
193
198
  - spec/zenlish/lex/literal_spec.rb
199
+ - spec/zenlish/parser/lesson1_spec.rb
200
+ - spec/zenlish/parser/lesson2_spec.rb
201
+ - spec/zenlish/parser/lesson3_spec.rb
194
202
  - spec/zenlish/parser/zparser_spec.rb
195
203
  - spec/zenlish/wclasses/common_noun_spec.rb
196
204
  - spec/zenlish/wclasses/irregular_verb_spec.rb