llt-constants 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/.travis.yml +6 -0
- data/Gemfile +5 -0
- data/LICENSE.txt +22 -0
- data/README.md +52 -0
- data/Rakefile +8 -0
- data/lib/llt/constants.rb +13 -0
- data/lib/llt/constants/abbreviations.rb +13 -0
- data/lib/llt/constants/cardinals.rb +45 -0
- data/lib/llt/constants/conjunctions.rb +27 -0
- data/lib/llt/constants/endings.rb +338 -0
- data/lib/llt/constants/markers.rb +28 -0
- data/lib/llt/constants/numerals.rb +19 -0
- data/lib/llt/constants/particles.rb +18 -0
- data/lib/llt/constants/personal_pronouns.rb +46 -0
- data/lib/llt/constants/phonology.rb +34 -0
- data/lib/llt/constants/prepositions.rb +48 -0
- data/lib/llt/constants/regexps.rb +151 -0
- data/lib/llt/constants/subjunctions.rb +32 -0
- data/lib/llt/constants/verb_endings.rb +148 -0
- data/lib/llt/constants/verb_markers.rb +75 -0
- data/lib/llt/constants/version.rb +5 -0
- data/llt-constants.gemspec +26 -0
- data/spec/lib/llt/constants/endings_spec.rb +23 -0
- data/spec/lib/llt/constants/regexps_spec.rb +372 -0
- data/spec/spec_helper.rb +21 -0
- metadata +147 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9c05c8a5de8d0cba8b834dbb4094662e4da4e396
|
4
|
+
data.tar.gz: a0aedcaf8bd474dbbfc5d1eb38ce98fcc9679489
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 48b5071dcc3a79f0d351794d3f0735ca70d202eb37570131d1f85ccd048c43554404f8a7255106b87f0e007c9802b01ca473a86df0d28861cebad8fabe557fa6
|
7
|
+
data.tar.gz: 3a6d70376ac0344fe1407b3d19046f970a3e51f80c95dfe05d200ed94a0c2e27fafae857b202aa03a12a9225c7b6636ea320a7acbf7e7789ca4dbcce03883c11
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 LFDM
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# LLT::Constants
|
2
|
+
|
3
|
+
[![Version](http://allthebadges.io/latin-language-toolkit/llt-constants/badge_fury.png)](http://allthebadges.io/latin-language-toolkit/llt-constants/badge_fury)
|
4
|
+
[![Build Status](https://travis-ci.org/latin-language-toolkit/llt-constants.png?branch=master)](https://travis-ci.org/latin-language-toolkit/llt-constants)
|
5
|
+
[![Dependencies](http://gemnasium.com/latin-language-toolkit/llt-constants.png)](http://allthebadges.io/latin-language-toolkit/llt-constants/gemnasium)
|
6
|
+
[![Coverage](https://coveralls.io/repos/latin-language-toolkit/llt-constants/badge.png?branch=master)](https://coveralls.io/r/latin-language-toolkit/llt-constants?branch=master)
|
7
|
+
[![Code Climate](https://codeclimate.com/github/latin-language-toolkit/llt-constants.png)](https://codeclimate.com/github/latin-language-toolkit/llt-constants)
|
8
|
+
|
9
|
+
LLT::Constants contains Latin infixes, inflectional endings and Latin
|
10
|
+
phonemes.
|
11
|
+
|
12
|
+
|
13
|
+
List of contents:
|
14
|
+
* **noun endings** for all declension types (e.g. amic - *us*)
|
15
|
+
* **adjective endings** for all declension types (e.g. laet - *um*,
|
16
|
+
fort - *is*)
|
17
|
+
* **adjective comparison signs** (e.g. alt - *ior* - es, alt - *issim* - us)
|
18
|
+
* **verb endings** for all types of conjugation and tenses and moods (active, passive, primary, secondary, imperative)
|
19
|
+
* **verb tempus infixes** (e.g. ama - *ba* - t)
|
20
|
+
* **Latin phonemes** and their 'linguistic values' (e.g. phoneme *d* is a
|
21
|
+
dental)
|
22
|
+
|
23
|
+
Metrical values (encoded in UTF-8) available.
|
24
|
+
|
25
|
+
list to be continued
|
26
|
+
|
27
|
+
|
28
|
+
## Installation
|
29
|
+
|
30
|
+
Add this line to your application's Gemfile:
|
31
|
+
|
32
|
+
gem 'llt-constants'
|
33
|
+
|
34
|
+
And then execute:
|
35
|
+
|
36
|
+
$ bundle
|
37
|
+
|
38
|
+
Or install it yourself as:
|
39
|
+
|
40
|
+
$ gem install llt-constants
|
41
|
+
|
42
|
+
## Usage
|
43
|
+
|
44
|
+
TODO: Write usage instructions here
|
45
|
+
|
46
|
+
## Contributing
|
47
|
+
|
48
|
+
1. Fork it
|
49
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
50
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
51
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
52
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require "llt/constants/version"
|
2
|
+
require "llt/constants/abbreviations"
|
3
|
+
require "llt/constants/cardinals"
|
4
|
+
require "llt/constants/conjunctions"
|
5
|
+
require "llt/constants/markers"
|
6
|
+
require "llt/constants/endings"
|
7
|
+
require "llt/constants/phonology"
|
8
|
+
require "llt/constants/personal_pronouns"
|
9
|
+
require "llt/constants/prepositions"
|
10
|
+
require "llt/constants/regexps"
|
11
|
+
require "llt/constants/subjunctions"
|
12
|
+
require "llt/constants/verb_endings"
|
13
|
+
require "llt/constants/verb_markers"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module LLT
|
2
|
+
module Constants
|
3
|
+
module Abbreviations
|
4
|
+
NAMES = %w{ A D C K L M N P Q S T App Ap Cn Mam M Ser Sex Sp Tib Ti }
|
5
|
+
NAMES_PIPED = NAMES.join('|')
|
6
|
+
|
7
|
+
DATES = %w{ a d Kal Non Id Ian Feb Mar Apr Mai Iun Iul Aug Sep Oct Nov Dec }
|
8
|
+
DATES_PIPED = DATES.join('|')
|
9
|
+
|
10
|
+
ALL_ABBRS_PIPED = "#{NAMES_PIPED}|#{DATES_PIPED}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module LLT
|
2
|
+
module Constants
|
3
|
+
CARDINALS = {
|
4
|
+
"duo" => [[2, 1, :m], [2, 4, :m], [2, 1, :n], [2, 4, :n]],
|
5
|
+
"duorum" => [[2, 2, :m], [2, 2, :n]],
|
6
|
+
"duobus" => [[2, 3, :m], [2, 6, :m], [2, 3, :n], [2, 6, :n]],
|
7
|
+
"duos" => [[2, 4, :m]],
|
8
|
+
"duae" => [[2, 1, :f]],
|
9
|
+
"duarum" => [[2, 2, :f]],
|
10
|
+
"duabus" => [[2, 3, :f], [2, 6, :f]],
|
11
|
+
"duas" => [[2, 4, :f]],
|
12
|
+
"ambo" => [[2, 1, :m], [2, 4, :m], [2, 1, :n], [2, 4, :n]],
|
13
|
+
"amborum" => [[2, 2, :m], [2, 2, :n]],
|
14
|
+
"ambobus" => [[2, 3, :m], [2, 6, :m], [2, 3, :n], [2, 6, :n]],
|
15
|
+
"ambos" => [[2, 4, :m]],
|
16
|
+
"ambae" => [[2, 1, :f]],
|
17
|
+
"ambarum" => [[2, 2, :f]],
|
18
|
+
"ambabus" => [[2, 3, :f], [2, 6, :f]],
|
19
|
+
"ambas" => [[2, 4, :f]],
|
20
|
+
"tres" => [[3, 1, :m], [3, 1, :f], [3, 4, :m], [3, 4, :f]],
|
21
|
+
"trium" => [[3, 2, :m], [3, 2, :f], [3, 2, :n]],
|
22
|
+
"tribus" => [[3, 3, :m], [3, 3, :f], [3, 3, :n], [3, 6, :m], [3, 6, :f], [3, 6, :n]],
|
23
|
+
"tria" => [[3, 1, :n], [3, 4, :n]],
|
24
|
+
"milia" => [[1000, 1, nil], [1000, 4, nil]],
|
25
|
+
"milium" => [[1000, 2, nil]],
|
26
|
+
"milibus" => [[1000, 3, nil], [1000, 6, nil]],
|
27
|
+
"quattuor" => [[4, nil, nil]],
|
28
|
+
"quinque" => [[5, nil, nil]],
|
29
|
+
"sex" => [[6, nil, nil]],
|
30
|
+
"septem" => [[7, nil, nil]],
|
31
|
+
"octo" => [[8, nil, nil]],
|
32
|
+
"novem" => [[9, nil, nil]],
|
33
|
+
"decem" => [[10, nil, nil]],
|
34
|
+
"undecim" => [[11, nil, nil]],
|
35
|
+
"duodecim" => [[12, nil, nil]],
|
36
|
+
"tredecim" => [[13, nil, nil]],
|
37
|
+
"quattuordecim" => [[14, nil, nil]],
|
38
|
+
"quindecim" => [[15, nil, nil]],
|
39
|
+
"sedecim" => [[16, nil, nil]],
|
40
|
+
"septendecim" => [[17, nil, nil]],
|
41
|
+
"mille" => [[1000, nil, nil]],
|
42
|
+
"duodeviginti" => [[18, nil, nil]]
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module LLT
|
2
|
+
module Constants
|
3
|
+
# word => homophonous_forms?
|
4
|
+
|
5
|
+
CONJUNCTIONS = {"et" => false,
|
6
|
+
"-que" => false,
|
7
|
+
"atque" => false,
|
8
|
+
"neque" => false,
|
9
|
+
"nec" => false,
|
10
|
+
"aut" => false,
|
11
|
+
"vel" => false,
|
12
|
+
"sive" => false,
|
13
|
+
"seu" => false,
|
14
|
+
"-ve" => false,
|
15
|
+
"sed" => false,
|
16
|
+
"verum" => true,
|
17
|
+
"at" => false,
|
18
|
+
"attamen"=> false,
|
19
|
+
"tamen" => false,
|
20
|
+
"velut" => false,
|
21
|
+
"ac" => false,
|
22
|
+
"com" => false,
|
23
|
+
"an" => false,
|
24
|
+
"ergo" => false,
|
25
|
+
"atqui" => false}
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,338 @@
|
|
1
|
+
require 'llt/constants/verb_endings'
|
2
|
+
|
3
|
+
module LLT
|
4
|
+
module Constants
|
5
|
+
module Endings
|
6
|
+
|
7
|
+
class Noun
|
8
|
+
A = [:a, :ae, :ae, :am, :a, :a, :ae, :arum, :is, :as, :ae, :is]
|
9
|
+
O = [:us, :i, :o, :um, :e, :o, :i, :orum, :is, :os, :i, :is]
|
10
|
+
ON = [:um, :i, :o, :um, :um, :o, :a, :orum, :is, :a, :a, :is]
|
11
|
+
E = [:es, :ei, :ei, :em, :es, :e, :es, :erum, :ebus, :es, :es, :ebus]
|
12
|
+
U = [:us, :us, :ui, :um, :us, :u, :us, :uum, :ibus, :us, :us, :ibus]
|
13
|
+
UN = [:u, :us, :u, :u, :u, :u, :ua, :uum, :ibus, :ua, :ua, :ibus]
|
14
|
+
C = [nil, :is, :i, :em, nil, :e, :es, :um, :ibus, :es, :es, :ibus]
|
15
|
+
CN = [nil, :is, :i, nil, nil, :e, :a, :um, :ibus, :a, :a, :ibus]
|
16
|
+
M = [nil, :is, :i, :em, nil, :e, :es, :ium, :ibus, :es, :es, :ibus]
|
17
|
+
I = [:is, :is, :i, :im, :is, :i, :es, :ium, :ibus, :es, :es, :ibus]
|
18
|
+
IN = [:e, :is, :i, :e, :e, :i, :ia, :ium, :ibus, :ia, :ia, :ibus]
|
19
|
+
IRREGULARS = [nil, nil, nil, nil, nil, nil, nil, nil, :bus, nil, nil, :bus]
|
20
|
+
|
21
|
+
class Metrical < Noun
|
22
|
+
A = [:ă, :ae, :ae, :ăm, :ă, :ā, :ae, :ārŭm, :īs, :ās, :ae, :īs]
|
23
|
+
O = [:ŭs, :ī, :ō, :ŭm, :ĕ, :ō, :ī, :ōrŭm, :īs, :ōs, :ī, :īs]
|
24
|
+
ON = [:ŭm, :ī, :ō, :ŭm, :ŭm, :ō, :ă, :ōrŭm, :īs, :ă, :ă, :īs]
|
25
|
+
#attention: if final sound of stem is vowel 2sg and 3sg e is long, else short: see diēī but rĕī
|
26
|
+
EL = [:ēs, :ēī, :ēī, :ĕm, :ēs, :ē, :ēs, :ērŭm, :ēbŭs, :ēs, :ēs, :ēbŭs]
|
27
|
+
ES = [:ēs, :ĕī, :ĕī, :ĕm, :ēs, :ē, :ēs, :ērŭm, :ēbŭs, :ēs, :ēs, :ēbŭs]
|
28
|
+
U = [:ŭs, :ūs, :ŭī, :ŭm, :ŭs, :ū, :ūs, :ŭŭm, :ĭbŭs, :ūs, :ūs, :ĭbŭs]
|
29
|
+
UN = [:ū, :ūs, :ū, :ū, :ū, :ū, :ŭă, :ŭŭm, :ĭbŭs, :ŭă, :ŭă, :ĭbŭs]
|
30
|
+
C = [nil, :ĭs, :ī, :ĕm, nil, :ĕ, :ēs, :ŭm, :ĭbŭs, :ēs, :ēs, :ĭbŭs]
|
31
|
+
CN = [nil, :ĭs, :ī, nil, nil, :ĕ, :ă, :ŭm, :ĭbŭs, :ă, :ă, :ĭbŭs]
|
32
|
+
M = [nil, :ĭs, :ī, :ĕm, nil, :ĕ, :ēs, :ĭŭm, :ĭbŭs, :ēs, :ēs, :ĭbŭs]
|
33
|
+
I = [:ĭs, :ĭs, :ī, :ĭm, :ĭs, :ī, :ēs, :ĭŭm, :ĭbŭs, :ēs, :ēs, :ĭbŭs]
|
34
|
+
IN = [:ĕ, :ĭs, :ī, :ĕ, :ĕ, :ī, :ĭă, :ĭŭm, :ĭbŭs, :ĭă, :ĭă, :ĭbŭs]
|
35
|
+
IRREGULARS = [nil, nil, nil, nil, nil, nil, nil, nil, :bŭs, nil, nil, :bŭs]
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.get_ending_for_inflection_class(inflection_class)
|
39
|
+
case inflection_class
|
40
|
+
when 1 then :A
|
41
|
+
when 2 then :O
|
42
|
+
when 3 then :C
|
43
|
+
when 32 then :I
|
44
|
+
when 33 then :M
|
45
|
+
when 4 then :U
|
46
|
+
when 5 then :E
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.get_ending_for_inflection_class_as_neutrum(inflection_class)
|
51
|
+
case inflection_class
|
52
|
+
when 2 then :ON
|
53
|
+
when 3 then :CN
|
54
|
+
when 4 then :UN
|
55
|
+
when 31 then :IN
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.get(inflection_class, sexus = nil)
|
60
|
+
ending = if sexus == :n
|
61
|
+
get_ending_for_inflection_class_as_neutrum(inflection_class)
|
62
|
+
else
|
63
|
+
get_ending_for_inflection_class(inflection_class)
|
64
|
+
end
|
65
|
+
const_get(ending)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
class Adjective
|
70
|
+
A = Noun::A
|
71
|
+
O = Noun::O
|
72
|
+
ON = Noun::ON
|
73
|
+
CMF = Noun::C
|
74
|
+
CN = Noun::CN
|
75
|
+
MMF = [nil, :is, :i, :em, nil, :i, :es, :ium, :ibus, :es, :es, :ibus]
|
76
|
+
MN = [nil, :is, :i, nil, nil, :i, :ia, :ium, :ibus, :ia, :ia, :ibus]
|
77
|
+
PRM = [:us, :ius, :i, :um, :e, :o, :i, :orum, :is, :os, :i, :is]
|
78
|
+
PRF = [:a, :ius, :i, :am, :a, :a, :ae, :arum, :is, :as, :ae, :is]
|
79
|
+
PRN = [:um, :ius, :i, :um, :um, :o, :a, :orum, :is, :a, :a, :is]
|
80
|
+
|
81
|
+
AO = Noun::O + Noun::A + Noun::ON
|
82
|
+
MIXED = MMF + MMF + MN
|
83
|
+
MIXED_1 = MIXED
|
84
|
+
MIXED_2 = MIXED.each_with_index.map do |el, i|
|
85
|
+
case i.to_s
|
86
|
+
when /^(0|4|12|16)$/ then :is
|
87
|
+
when /^(24|27|28)$/ then :e
|
88
|
+
else el
|
89
|
+
end
|
90
|
+
end
|
91
|
+
MIXED_3 = MIXED_2.each_with_index.map do |el, i|
|
92
|
+
case i.to_s
|
93
|
+
when /^(0|4)$/ then nil
|
94
|
+
else el
|
95
|
+
end
|
96
|
+
end
|
97
|
+
CONSONANTIC = CMF + CMF + CN
|
98
|
+
PRONOMINAL = PRM + PRF + PRN
|
99
|
+
|
100
|
+
class Metrical < Adjective
|
101
|
+
A = Noun::Metrical::A
|
102
|
+
O = Noun::Metrical::O
|
103
|
+
ON = Noun::Metrical::ON
|
104
|
+
CMF = Noun::Metrical::C
|
105
|
+
CN = Noun::Metrical::CN
|
106
|
+
MMF = [nil, :ĭs, :ī, :ĕm, nil, :ī, :ēs, :ĭŭm, :ĭbŭs, :ēs, :ēs, :ĭbŭs]
|
107
|
+
MN = [nil, :ĭs, :ī, nil, nil, :ī, :ĭa, :ĭŭm, :ĭbŭs, :ĭa, :ĭa, :ĭbŭs]
|
108
|
+
PRM = [:ŭs, :īŭs, :ī, :ŭm, :ĕ, :ō, :ī, :ōrŭm, :īs, :ōs, :ī, :īs]
|
109
|
+
PRF = [:ă, :īŭs, :ī, :ăm, :ă, :ā, :ae, :ārum, :īs, :ās, :ae, :īs]
|
110
|
+
PRN = [:ŭm, :īŭs, :ī, :ŭm, :ŭm, :ō, :ă, :ōrŭm, :īs, :ă, :ă, :īs]
|
111
|
+
|
112
|
+
AO = Noun::Metrical::O + Noun::Metrical::A + Noun::Metrical::ON
|
113
|
+
MIXED = MMF + MMF + MN
|
114
|
+
MIXED_1 = MIXED
|
115
|
+
MIXED_2 = MIXED.each_with_index.map do |el, i|
|
116
|
+
case i.to_s
|
117
|
+
when /^(0|4|12|16)$/ then :ĭs
|
118
|
+
when /^(24|27|28)$/ then :ĕ
|
119
|
+
else el
|
120
|
+
end
|
121
|
+
end
|
122
|
+
MIXED_3 = MIXED_2.each_with_index.map do |el, i|
|
123
|
+
case i.to_s
|
124
|
+
when /^(0|4)$/ then nil
|
125
|
+
else el
|
126
|
+
end
|
127
|
+
end
|
128
|
+
CONSONANTIC = CMF + CMF + CN
|
129
|
+
PRONOMINAL = PRM + PRF + PRN
|
130
|
+
end
|
131
|
+
|
132
|
+
def self.get(inflection_class, number_of_endings, comparatio = :positivus)
|
133
|
+
const_get(case comparatio
|
134
|
+
when :comparativus
|
135
|
+
:CONSONANTIC
|
136
|
+
when :superlativus
|
137
|
+
:AO
|
138
|
+
else # positivus - or nil if someone has forgotten to provide a value
|
139
|
+
case [inflection_class, number_of_endings]
|
140
|
+
when [1, 3] then :AO
|
141
|
+
when [3, 1] then :MIXED_1
|
142
|
+
when [3, 2] then :MIXED_2
|
143
|
+
when [3, 3] then :MIXED_3
|
144
|
+
when [5, 3] then :PRONOMINAL
|
145
|
+
end
|
146
|
+
end)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
class Adverb
|
151
|
+
E = "e"
|
152
|
+
ITER = "iter"
|
153
|
+
TER = "ter"
|
154
|
+
ER = "er"
|
155
|
+
EMPTY = ""
|
156
|
+
|
157
|
+
def self.get(inflection_class, stem, comparatio)
|
158
|
+
const_get(case comparatio
|
159
|
+
when :comparativus then :EMPTY
|
160
|
+
when :superlativus then :E
|
161
|
+
else positivus_ending(inflection_class, stem)
|
162
|
+
end)
|
163
|
+
end
|
164
|
+
|
165
|
+
def self.positivus_ending(inflection_class, stem)
|
166
|
+
if inflection_class == 3
|
167
|
+
case stem
|
168
|
+
when /nt$/ then :ER
|
169
|
+
when /^facil$/ then :E
|
170
|
+
else :ITER
|
171
|
+
# TER for audacter and sollerter, cf. RH 50
|
172
|
+
end
|
173
|
+
else
|
174
|
+
:E
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
class Pronoun
|
180
|
+
HIC = [:i, :ius, :i, :un, nil, :o, :i, :orum, :is, :os, nil, :is]
|
181
|
+
HAEC = [:ae, :ius, :i, :an, nil, :a, :ae, :arum, :is, :as, nil, :is]
|
182
|
+
HOC = [:o, :ius, :i, :o, nil, :o, :ae, :orum, :is, :ae, nil, :is]
|
183
|
+
|
184
|
+
#ille + iste
|
185
|
+
ILLE = [:e, :ius, :i, :um, nil, :o, :i, :orum, :is, :os, nil, :is]
|
186
|
+
ILLA = [:a, :ius, :i, :am, nil, :a, :ae, :arum, :is, :as, nil, :is]
|
187
|
+
ILLUD = [:ud, :ius, :i, :ud, nil, :o, :a, :orum, :is, :a, nil, :is]
|
188
|
+
|
189
|
+
#ipse
|
190
|
+
IPSE = ILLE
|
191
|
+
IPSA = ILLA
|
192
|
+
IPSUM = [:um, :ius, :i, :um, nil, :o, :a, :orum, :is, :a, nil, :is]
|
193
|
+
|
194
|
+
#is
|
195
|
+
IS = [:s, :ius, :i, :um, nil, :o, :i, :orum, :is, :os, nil, :is]
|
196
|
+
EA = ILLA
|
197
|
+
ID = [:d, :ius, :i, :d, nil, :o, :a, :orum, :is, :a, nil, :is]
|
198
|
+
|
199
|
+
#idem
|
200
|
+
IDEM = [nil, :ius, :i, :un, nil, :o, :i, :orun, :is, :os, nil, :is]
|
201
|
+
EADEM = [:a, :ius, :i, :an, nil, :a, :ae, :arun, :is, :as, nil, :is]
|
202
|
+
IDEM_N = [nil, :ius, :i, nil, nil, :o, :a, :orun, :is, :a, nil, :is]
|
203
|
+
|
204
|
+
#qui
|
205
|
+
QUI = [:i, :ius, :i, :em, nil, :o, :i, :orum, :ibus, :os, nil, :ibus]
|
206
|
+
QUAE = [:ae, :ius, :i, :am, nil, :a, :ae, :arum, :ibus, :as, nil, :ibus]
|
207
|
+
QUOD = [:od, :ius, :i, :od, nil, :o, :ae, :orum, :ibus, :ae, nil, :ibus]
|
208
|
+
QUA = [:a, :ius, :i, :am, nil, :a, :ae, :arum, :ibus, :as, nil, :ibus]
|
209
|
+
|
210
|
+
#quidam - adj
|
211
|
+
QUIDAM = [:i, :ius, :i, :en, nil, :o, :i, :orun, :ibus, :os, nil, :ibus]
|
212
|
+
QUAEDAM = [:ae, :ius, :i, :an, nil, :a, :ae, :arun, :ibus, :as, nil, :ibus]
|
213
|
+
QUODDAM = [:od, :ius, :i, :od, nil, :o, :ae, :orun, :ibus, :ae, nil, :ibus]
|
214
|
+
|
215
|
+
#quis
|
216
|
+
QUIS = [:is, :ius, :i, :em, nil, :o, :i, :orum, :ibus, :os, nil, :ibus]
|
217
|
+
#QUAE
|
218
|
+
QUID = [:id, :ius, :i, :id, nil, :o, :ae, :orum, :ibus, :ae, nil, :ibus]
|
219
|
+
|
220
|
+
#uter + uterque
|
221
|
+
UTER = [nil, :ius, :i, :um, nil, :o, :i, :orum, :is, :os, nil, :is]
|
222
|
+
UTRA = [:a, :ius, :i, :am, nil, :a, :ae, :arum, :is, :as, nil, :is]
|
223
|
+
UTRUM = [:um, :ius, :i, :um, nil, :o, :a, :orum, :is, :a, nil, :is]
|
224
|
+
|
225
|
+
def self.get(pronoun_type)
|
226
|
+
qui_adj = QUI + QUAE + QUOD
|
227
|
+
quis_adj = QUIS + QUAE + QUOD
|
228
|
+
qui_subst = QUIS + QUIS + QUID
|
229
|
+
uter_adj = UTER + UTRA + UTRUM
|
230
|
+
ille_iste = ILLE + ILLA + ILLUD
|
231
|
+
case pronoun_type
|
232
|
+
when :aliqui then QUI + QUA + QUOD
|
233
|
+
when :aliquis then qui_subst
|
234
|
+
when :hic then HIC + HAEC + HOC
|
235
|
+
when :idem then IDEM + EADEM + IDEM_N
|
236
|
+
when :ille then ille_iste
|
237
|
+
when :ipse then IPSE + IPSA + IPSUM
|
238
|
+
when :is then IS + EA + ID
|
239
|
+
when :iste then ille_iste
|
240
|
+
when :qui then qui_adj
|
241
|
+
when :quicumque then qui_adj
|
242
|
+
when :quidam then QUIDAM + QUAEDAM + QUODDAM
|
243
|
+
when :quilibet then qui_adj
|
244
|
+
when :quinam then qui_adj
|
245
|
+
when :quis then qui_subst
|
246
|
+
when :quisquam then qui_subst
|
247
|
+
when :quispiam then qui_subst
|
248
|
+
when :quisque then quis_adj
|
249
|
+
when :quisque_s then qui_subst
|
250
|
+
when :quisquis then qui_subst
|
251
|
+
when :quivis then qui_adj
|
252
|
+
when :unusquisque then quis_adj
|
253
|
+
when :unusquisque_s then qui_subst
|
254
|
+
when :uter then uter_adj
|
255
|
+
when :uterque then uter_adj
|
256
|
+
#when :quilibet then QUI + QUAE + QUID
|
257
|
+
#when :quivis then QUI + QUAE + QUID
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
class PersonalPronoun
|
262
|
+
nils = [nil] * 6
|
263
|
+
EGO = ["ego", "mei", "mihi", "me", nil, "me" ]
|
264
|
+
TU = ["tu", "tui", "tibi", "te", nil, "te" ]
|
265
|
+
SE = [nil, "sui", "sibi", "se", nil, "se"] * 2
|
266
|
+
NOS = nils + ["nos", "nostri", "nobis", "nos", nil, "nobis"] # handle nostrum and vestrum in the builder
|
267
|
+
VOS = nils + ["vos", "vestri", "vobis", "vos", nil, "vobis"]
|
268
|
+
|
269
|
+
def self.get(inflection_class)
|
270
|
+
const_get(inflection_class.upcase)
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
|
275
|
+
class Ppa
|
276
|
+
MMFE = [:s, :is, :i, :em, :s, :e, :es, :ium, :ibus, :es, :es, :ibus]
|
277
|
+
MNE = [:s, :is, :i, :s, :s, :e, :ia, :ium, :ibus, :ia, :ia, :ibus]
|
278
|
+
|
279
|
+
def self.get(*args)
|
280
|
+
MMFE + MMFE + MNE
|
281
|
+
end
|
282
|
+
|
283
|
+
class Metrical < Ppa
|
284
|
+
MMFE = [:s, :ĭs, :ī, :ĕm, :s, :ĕ, :ēs, :ĭŭm, :ĭbŭs, :ēs, :ēs, :ĭbŭs]
|
285
|
+
MNE = [:s, :ĭs, :ī, :s, :s, :ĕ, :ĭa, :ĭŭm, :ĭbŭs, :ĭa, :ĭa, :ĭbŭs]
|
286
|
+
end
|
287
|
+
end
|
288
|
+
|
289
|
+
class AoVerbalNoun
|
290
|
+
AO = Adjective::AO
|
291
|
+
|
292
|
+
def self.get(*args)
|
293
|
+
AO
|
294
|
+
end
|
295
|
+
|
296
|
+
class Metrical < AoVerbalNoun
|
297
|
+
AO = Adjective::Metrical::AO
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
301
|
+
class Gerundive < AoVerbalNoun
|
302
|
+
class Metrical < AoVerbalNoun; end
|
303
|
+
end
|
304
|
+
|
305
|
+
class Ppp < AoVerbalNoun
|
306
|
+
class Metrical < AoVerbalNoun; end
|
307
|
+
end
|
308
|
+
|
309
|
+
class Fp < AoVerbalNoun
|
310
|
+
class Metrical < AoVerbalNoun; end
|
311
|
+
end
|
312
|
+
|
313
|
+
class Gerund
|
314
|
+
GERUND = %i{ i o um o }
|
315
|
+
|
316
|
+
def self.get(*args)
|
317
|
+
GERUND
|
318
|
+
end
|
319
|
+
|
320
|
+
class Metrical < Gerund
|
321
|
+
GERUND = [:ī, :ō, :ŭm, :ō]
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
325
|
+
class Supinum
|
326
|
+
SUPINUM = %i{ u um u }
|
327
|
+
|
328
|
+
def self.get(*args)
|
329
|
+
SUPINUM
|
330
|
+
end
|
331
|
+
|
332
|
+
class Metrical < Supinum
|
333
|
+
SUPINUM = %i{ ū ŭm ū }
|
334
|
+
end
|
335
|
+
end
|
336
|
+
end
|
337
|
+
end
|
338
|
+
end
|