latinverb 0.2.0 → 0.9.2

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.
Files changed (51) hide show
  1. data/.gitignore +0 -1
  2. data/Gemfile +1 -2
  3. data/README.markdown +54 -240
  4. data/etc/irreg_skel.json +104 -0
  5. data/{latinirb.gemspec → latinverb.gemspec} +4 -4
  6. data/lib/latinverb/chart.rb +94 -0
  7. data/lib/latinverb/version.rb +10 -0
  8. data/lib/latinverb.rb +710 -0
  9. data/lib/linguistics/latin/verb/classification_types.rb +59 -0
  10. data/lib/linguistics/latin/verb/constants.rb +201 -0
  11. data/lib/linguistics/latin/verb/deponent_tense_methods.rb +98 -0
  12. data/lib/linguistics/latin/verb/infinitives.rb +212 -0
  13. data/lib/linguistics/latin/verb/irregulars.rb +4393 -0
  14. data/lib/linguistics/latin/verb/latinverb/auxiliary_classes.rb +208 -0
  15. data/lib/linguistics/latin/verb/latinverb/classmethods.rb +215 -0
  16. data/lib/linguistics/latin/verb/latinverb/data.rb +90 -0
  17. data/lib/linguistics/latin/verb/latinverb/display.rb +23 -0
  18. data/lib/linguistics/latin/verb/latinverb/metaprogramming.rb +79 -0
  19. data/lib/linguistics/latin/verb/latinverb/validation.rb +66 -0
  20. data/lib/linguistics/latin/verb/participles.rb +202 -0
  21. data/lib/linguistics/latin/verb/phonographia.rb +109 -0
  22. data/lib/linguistics/latin/verb/supine.rb +42 -0
  23. data/lib/linguistics/latin/verb/tense_methods.rb +950 -0
  24. data/test/testAmbiguousLookups.rb +30 -0
  25. data/test/testClusterResolution.rb +20 -0
  26. data/test/testDataStructures.rb +29 -0
  27. data/test/testDefectSemiImp.rb +111 -0
  28. data/test/testDeponentFirstConjugation.rb +64 -0
  29. data/test/testDeponentFourthConjugation.rb +64 -0
  30. data/test/testDeponentSecondConjugation.rb +64 -0
  31. data/test/testDeponentThirdConjugation.rb +64 -0
  32. data/test/testDeponentThirdIOConjugation.rb +64 -0
  33. data/test/testDeserializeInfinitives.rb +38 -0
  34. data/test/testFirstConjugation.rb +388 -0
  35. data/test/testFourthConjugation.rb +190 -0
  36. data/test/testFreakishVerbs.rb +93 -0
  37. data/test/testImperativeBlock.rb +27 -0
  38. data/test/testIrregularSum.rb +22 -0
  39. data/test/testIrregulars.rb +652 -0
  40. data/test/testLatinVerb.rb +195 -0
  41. data/test/testMacronRules.rb +19 -0
  42. data/test/testSecondConjugation.rb +189 -0
  43. data/test/testThirdConjugation.rb +190 -0
  44. data/test/testThirdIOConjugation.rb +190 -0
  45. metadata +70 -18
  46. data/bin/latinirb.rb +0 -7
  47. data/latinverb.rb +0 -544
  48. data/lib/LatinIRB.rb +0 -172
  49. data/lib/latinirb/paradigmatic_verbs.rb +0 -17
  50. data/lib/latinirb/version.rb +0 -10
  51. data/lib/latirb.rb +0 -20
@@ -0,0 +1,59 @@
1
+ # encoding: UTF-8
2
+ module Linguistics
3
+ module Latin
4
+ module Verb
5
+ =begin rdoc
6
+
7
+ == NAME
8
+
9
+ VerbTypes
10
+
11
+ == DESCRIPTION
12
+
13
+ A VerbType is a parent, _conceptually abstract_ class for tracking
14
+ classifications of verbs. At the present time it is an empty class. It is
15
+ foreseeable, however, that in the future, it may be advantagous to associate
16
+ specific behaviors to it. It is subclassed into the various types of Verbs
17
+ identified in Latin pedagogy: First, Second, Third, ThirdIO, Fourth,
18
+ Irregular, and Deponent. These classes, effectively, behave as strings as
19
+ attributes to the classification attribute within a LatinVerb.
20
+
21
+ VerbTypes, therefore, is the module containing these VerbTypes.
22
+
23
+ =end
24
+ module VerbTypes
25
+ ##
26
+ #--
27
+ # == DESCRIPTION
28
+ #
29
+ # Abstract ancestor class that defines the various subclass Verb Types
30
+ # ++
31
+ #
32
+ ##
33
+ class VerbType # :nodoc:
34
+ end
35
+ class First < VerbType # :nodoc:
36
+ end
37
+ class Second < VerbType # :nodoc:
38
+ end
39
+ class Third < VerbType # :nodoc:
40
+ end
41
+ class ThirdIO < VerbType # :nodoc:
42
+ end
43
+ class Fourth < VerbType # :nodoc:
44
+ end
45
+ class Irregular < VerbType # :nodoc:
46
+ end
47
+ class Deponent < VerbType # :nodoc:
48
+ end
49
+ class Defective < VerbType # :nodoc:
50
+ end
51
+ class Impersonal < VerbType # :nodoc:
52
+ end
53
+ class Semideponent < VerbType # :nodoc:
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+
@@ -0,0 +1,201 @@
1
+ # encoding: UTF-8
2
+ module Linguistics
3
+ module Latin
4
+ module Verb
5
+ class LatinVerb
6
+ # :stopdoc:
7
+ # active_present_endings: ("ap_"-prefixed)
8
+ AP_FIRST_AND_SECOND_CONJUG_PERS_ENDINGS = %w(s t mus tis nt)
9
+ AP_THIRD_CONJUG_PERS_ENDINGS = %w(ō is it imus itis unt)
10
+ AP_THIRDIO_CONJG_PERS_ENDINGS = %w(is it imus itis iunt)
11
+
12
+ # active_imperfect_endings: ("ai_"-prefixed)
13
+ AI_FIRST_AND_SECOND_CONJUG_PERS_ENDINGS = %w(bam bās bat bāmus bātis bant)
14
+ AI_THIRD_CONJUG_PERS_ENDINGS = %w(ēbam ēbās ēbat ēbāmus ēbātis ēbant)
15
+
16
+ # active_future_endings: ("af_"-prefixed)
17
+ AF_ONE_TWO_ENDINGS = %w(bō bis bit bimus bitis bunt)
18
+ AF_OTHER_ENDINGS = %w(am ēs et ēmus ētis ent)
19
+
20
+ # active_perfect_present: ("aperf"-prefixed)
21
+ APERF_ENDINGS = %w(istī it imus istis ērunt)
22
+ APERF_PAST_ENDINGS = PLUPERF_ENDINGS =
23
+ %w(eram erās erat erāmus erātis erant)
24
+ APERF_FUTURE_ENDINGS = %w(erō eris erit erimus eritis erint)
25
+
26
+ # passive endings
27
+ PASSIVE_ENDINGS_FIRST_AND_SECOND_CONJG =
28
+ %w(r ris tur mur minī ntur)
29
+ PASSIVE_ENDINGS_OTHER =
30
+ %w(r eris itur imur iminī untur)
31
+
32
+ PASS_PERF_PRESENT_ENDINGS = %w(sum es est sumus estis sunt)
33
+ PASS_PERF_PAST_ENDINGS = %w(eram erās erat erāmus erātis erant)
34
+ PASS_PERF_FUTURE_ENDINGS = %w(erō eris erit erimus eritis erint)
35
+
36
+ PASS_PERF_SUBJ_ENDINGS = %w(sim sis sit simus sitis sint)
37
+ PASS_PLUPERF_PAST_ENDINGS = %w(essem essēs esset essēmus essētis essent)
38
+
39
+ # subjunctive tools
40
+ # hash for getting a verb's subjunctive stem
41
+ # based off the W[e] F[ea]r [A] L[ia]r mnemonic
42
+ ACTIVE_PRESENT_SUBJUNCTIVE_ENDINGS = {
43
+ :First => lambda { |x| return x + "ē" },
44
+ :Second => lambda { |x| return x + "eā" },
45
+ :Third => lambda { |x| return x + "ā" },
46
+ :Fourth => lambda { |x| return x + "iā" },
47
+ :ThirdIO => lambda { |x| return x + "iā" }
48
+ }
49
+
50
+ # Listing of all defective verbs
51
+ # See A&G Sec. 205
52
+ DEFECTIVE_VERBS = %w{
53
+ addormisco
54
+ adolesco
55
+ aio
56
+ albesco
57
+ arboresco
58
+ aresco
59
+ assenesco
60
+ auresco
61
+ candesco
62
+ canesco
63
+ celebresco
64
+ cornesco
65
+ crudesco
66
+ dulcesco
67
+ effor
68
+ erubesco
69
+ extollo
70
+ grandesco
71
+ inquam
72
+ languesco
73
+ latesco
74
+ longisco
75
+ lucesco
76
+ marcesco
77
+ matresco
78
+ mollesco
79
+ remollesco
80
+ siccesco
81
+ sterto
82
+ tenebresco
83
+ tremesco
84
+ tumesco
85
+ veteresco
86
+ }
87
+
88
+ # Listing of all impersonal verbs
89
+ # See A&G #207
90
+ IMPERSONAL_VERBS = %w{
91
+ accidit
92
+ addecet
93
+ advesperascit
94
+ certum est
95
+ condecet
96
+ constat
97
+ contingit
98
+ cōnstat
99
+ decet
100
+ dedecet
101
+ dēlecat
102
+ evenit
103
+ fit
104
+ fulgerat
105
+ grandinat
106
+ ifvat
107
+ interest
108
+ licet
109
+ lūcīscit hōc
110
+ miseret
111
+ necesse est
112
+ ningit
113
+ obtingit
114
+ obvenit
115
+ oportet
116
+ paenitet
117
+ piget
118
+ placet
119
+ pluit
120
+ pluo
121
+ praestat
122
+ pudet
123
+ restat
124
+ rēfert
125
+ rōrat
126
+ superest
127
+ taedet
128
+ tonat
129
+ vacat
130
+ vesperāscit
131
+ vidētur
132
+ ēvenit
133
+ }
134
+
135
+ # Present system only. See A&G206
136
+ # There are probably more of these, but A&G only lists these two.
137
+ PRESENT_ONLY = %w{
138
+ maēre
139
+ ferīre
140
+ aiō
141
+ inquam
142
+ for
143
+ quaesō
144
+ ovāre
145
+ }
146
+
147
+ # See A&G # 192
148
+ SEMI_DEPONENTS = {
149
+ 'audeō' => %w(audēre ausus),
150
+ 'fidō' => %w(fidere fīsus),
151
+ 'gaudeō' => %w(gaudēre gāvīsus),
152
+ 'soleō' => %w(solēre solitus),
153
+ }
154
+
155
+ # Irregular Verbs. See A&G 197
156
+ IRREGULAR_VERBS = {
157
+ 'sum' => 'SUM_ESSE_FUĪ_FUTŪRUS',
158
+ 'possum' => 'POSSUM_POSSE_POTUĪ',
159
+ 'ferō' => 'FERŌ_FERRE_TULĪ_LĀTUM',
160
+ 'eō' => 'EŌ_ĪRE_IVĪ_ITUM',
161
+ 'nōlō' => 'NŌLŌ_NŌLLE_NŌLUĪ',
162
+ 'volō' => 'VOLŌ_VELLE_VOLUĪ',
163
+ 'mālō' => 'MĀLŌ_MĀLLE_MĀLUĪ',
164
+ 'dō' => 'DŌ_DĀRE_DEDĪ_DATUM',
165
+ 'edō' => 'EDŌ_ĒSSE_ĒDĪ_ĒSUM',
166
+ 'queō' => 'QUEŌ_QUĪRE_QUĪVĪ',
167
+ 'fiō' => 'FIŌ_FIĒRĪ_FACTUS',
168
+ 'prōsum' => 'PRŌSUM_PRŌDESSE_PRŌFUĪ_PRŌFUTŪRUS',
169
+ 'meminī' => 'MEMINĪ_MEMINISSE',
170
+ 'ōdī' => 'ODĪ_ŌDISSE',
171
+ 'coepī' => 'COEPĪ_COEPISSE_COEPTUM'
172
+ }
173
+
174
+ MEANINGS = {
175
+ :active_voice_imperative_mood_future_tense => "Command that something be done in the future",
176
+ :active_voice_indicative_mood_future_tense=> "Action to take place in the future: 'I will eat a hamburger.'" ,
177
+ :active_voice_indicative_mood_futureperfect_tense => "Action to be completed in the future: 'I will have eaten a hamburger.'" ,
178
+ :active_voice_indicative_mood_imperfect_tense => "Sustained, habitual action in the past: 'I was eating hamburgers daily when I was a freshman.'" ,
179
+ :active_voice_indicative_mood_pastperfect_tense => "Action completed prior to a point in the past under discussion: 'I had eaten all the hamburgers (before my mother found out).'" ,
180
+ :active_voice_indicative_mood_perfect_tense => "Action completed in the past: 'I ate a hamburger.'" ,
181
+ :active_voice_indicative_mood_present_tense => "Present, possibly ongoing action relative to the speaker: 'I am eating a hamburger. I eat a hamburger.'" ,
182
+ :active_voice_subjunctive_mood_imperfect_tense => "Subjunctive uses apply: commands, contrary to fact wishes, etc." ,
183
+ :active_voice_subjunctive_mood_pastperfect_tense => "Subjunctive uses apply: commands, contrary to fact wishes, etc." ,
184
+ :active_voice_subjunctive_mood_perfect_tense => "Subjunctive uses apply: commands, contrary to fact wishes, etc." ,
185
+ :active_voice_subjunctive_mood_present_tense => "Subjunctive uses apply: commands, contrary to fact wishes, etc." ,
186
+ :passive_voice_indicative_mood_future_tense => "Action to be performed on conjugant in future: 'The hamburger will be eaten.'" ,
187
+ :passive_voice_indicative_mood_futureperfect_tense => "Action is to be performed to completion on conjugant in future: 'The hamburger will have been eaten.'" ,
188
+ :passive_voice_indicative_mood_imperfect_tense => "Habitual action performed on the conjugant in the past: 'The hamburger was being eaten slowly by the BurgerHoarder.'" ,
189
+ :passive_voice_indicative_mood_pastperfect_tense => "Action was fully completed upon the conjugant at a time prior to a time in the past: 'The hamburger had been eaten before my mom came home.'" ,
190
+ :passive_voice_indicative_mood_perfect_tense => "Action was completed upon the conjugant in the past: 'The hamburger was eaten.'" ,
191
+ :passive_voice_indicative_mood_present_tense => "Conjugant is presently undergoing action in the present time: 'The hamburger is being eaten.'" ,
192
+ :passive_voice_subjunctive_mood_imperfect_tense => "Subjunctive uses apply: commands, contrary to fact wishes, etc." ,
193
+ :passive_voice_subjunctive_mood_pastperfect_tense => "Subjunctive uses apply: commands, contrary to fact wishes, etc." ,
194
+ :passive_voice_subjunctive_mood_perfect_tense => "Subjunctive uses apply: commands, contrary to fact wishes, etc." ,
195
+ :passive_voice_subjunctive_mood_present_tense => "Subjunctive uses apply: commands, contrary to fact wishes, etc."
196
+ }
197
+ # :startdoc:
198
+ end
199
+ end
200
+ end
201
+ end
@@ -0,0 +1,98 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'linguistics/latin/verb/phonographia'
4
+ require 'linguistics/latin/verb/latinverb/auxiliary_classes'
5
+ require 'linguistics/latin/verb/deponent_tense_methods'
6
+ require 'yaml'
7
+
8
+ module Linguistics
9
+ module Latin
10
+ module Verb
11
+ ##
12
+ #
13
+ # Applies mutations to the method calls for semi-deponents.
14
+ # Reference A&G 192:
15
+ #
16
+ # "A few verbs having no perfect stem are regular in the present, but
17
+ # appear in the tenses of completed action as deponents. These are
18
+ # called Semi-deponents."
19
+ ##
20
+ module DeponentTenseMethods
21
+ # There's really no good reason that these should be re-defined here,
22
+ # the methods that result from the verbector operation should be
23
+ # sufficient. The only snare is that if you look at the method call
24
+ # in =tense_methods.rb=, your @classification is set to
25
+ # =Semideponent=. This means that the conditional lookup fails. So
26
+ # the choices are to blanket overwrite here, or add another
27
+ # conditional to each TenseBlock returning method, OR break the model
28
+ # of TenseBlock construction. I think the last is the best option,
29
+ # but this current implementation is the second best.
30
+
31
+ def active_voice_indicative_mood_present_tense
32
+ return @proxyVerb.send :active_voice_indicative_mood_present_tense
33
+ end
34
+
35
+ def active_voice_indicative_mood_imperfect_tense
36
+ return @proxyVerb.send :active_voice_indicative_mood_imperfect_tense
37
+ end
38
+
39
+ def active_voice_indicative_mood_future_tense
40
+ return @proxyVerb.send :active_voice_indicative_mood_future_tense
41
+ end
42
+
43
+ # These methods handle the strangeness of semi-deponents, it masks
44
+ # passive perfects to active perfects
45
+
46
+ def active_voice_indicative_mood_perfect_tense
47
+ return @proxyVerb.send :passive_voice_indicative_mood_perfect_tense
48
+ end
49
+ def active_voice_indicative_mood_pastperfect_tense
50
+ return @proxyVerb.send :passive_voice_indicative_mood_pastperfect_tense
51
+ end
52
+ def active_voice_indicative_mood_futureperfect_tense
53
+ return @proxyVerb.send :passive_voice_indicative_mood_futureperfect_tense
54
+ end
55
+
56
+ # These should return nothing
57
+ def passive_voice_indicative_mood_perfect_tense
58
+ return TenseBlock.new ['', '', '', '', '', '']
59
+ end
60
+
61
+ def passive_voice_indicative_mood_pastperfect_tense
62
+ return TenseBlock.new ['', '', '', '', '', '']
63
+ #return @proxyVerb.send :passive_voice_indicative_mood_pastperfect_tense
64
+ end
65
+ def passive_voice_indicative_mood_futureperfect_tense
66
+ return TenseBlock.new ['', '', '', '', '', '']
67
+ #return @proxyVerb.send :passive_voice_indicative_mood_futureperfect_tense
68
+ end
69
+
70
+ # Subjunctives: 2 active, 2 passive
71
+
72
+ def active_voice_subjunctive_mood_present_tense
73
+ return @proxyVerb.send :active_voice_subjunctive_mood_present_tense
74
+ end
75
+
76
+ def active_voice_subjunctive_mood_imperfect_tense
77
+ return @proxyVerb.send :active_voice_subjunctive_mood_imperfect_tense
78
+ end
79
+
80
+ def active_voice_subjunctive_mood_perfect_tense
81
+ return @proxyVerb.send :passive_voice_subjunctive_mood_perfect_tense
82
+ end
83
+ def active_voice_subjunctive_mood_pastperfect_tense
84
+ return @proxyVerb.send :passive_voice_subjunctive_mood_pastperfect_tense
85
+ end
86
+ def passive_voice_subjunctive_mood_perfect_tense
87
+ return TenseBlock.new ['', '', '', '', '', '']
88
+ #return @proxyVerb.send :passive_voice_subjunctive_mood_perfect_tense
89
+ end
90
+ def passive_voice_subjunctive_mood_pastperfect_tense
91
+ return TenseBlock.new ['', '', '', '', '', '']
92
+ #return @proxyVerb.send :passive_voice_subjunctive_mood_pastperfect_tense
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+
@@ -0,0 +1,212 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'latinverb'
4
+ require 'linguistics/latin/verb/phonographia'
5
+
6
+ module Linguistics
7
+ module Latin
8
+ module Verb
9
+ ##
10
+ # == NAME
11
+ #
12
+ # Infinitives
13
+ #
14
+ # == DESCRIPTION
15
+ #
16
+ # This module contains the methods that, when mixed into a LatinVerb,
17
+ # will provide it the ability to resolve its infinitives (verbal nouns).
18
+ #
19
+ # == REFERENCE
20
+ #
21
+ # Allen and Greenough Se. 155:
22
+ #
23
+ # <em>From the footnotes</em>
24
+ #
25
+ # 1. The Infinitive is strictly the locative case of an abstract
26
+ # noun, expressing the action of the verb (cf. sec. 451)
27
+ #
28
+ #
29
+ ##
30
+ module Infinitives
31
+
32
+ ##########################################
33
+ # Infinitives
34
+ ##########################################
35
+ # Some very handy getter and setters, for serialization
36
+ ##
37
+
38
+ def infinitives
39
+ return {
40
+ :present_active_infinitive => present_active_infinitive,
41
+ :perfect_active_infinitive => perfect_active_infinitive,
42
+ :future_active_infinitive => future_active_infinitive,
43
+ :present_passive_infinitive => present_passive_infinitive,
44
+ :perfect_passive_infinitive => perfect_passive_infinitive,
45
+ :future_passive_infinitive => future_passive_infinitive
46
+ }
47
+ end
48
+
49
+ ##
50
+ #
51
+ # === GRAMMATICAL FUNCTION
52
+ #
53
+ # A&G, 157,d:
54
+ #
55
+ # The Infinitive is used chiefly as an indeclinable noun, as the subject
56
+ # or complement of another ver ( 452, 456.n)
57
+ #
58
+ # "To X"
59
+ #
60
+ # === ARGUMENTS
61
+ #
62
+ # None
63
+ #
64
+ # === RETURNS
65
+ #
66
+ # Array of participles
67
+ #
68
+ ###
69
+ def present_active_infinitive
70
+ return @pres_act_inf
71
+ end
72
+
73
+ ##
74
+ #
75
+ # === GRAMMATICAL FUNCTION
76
+ #
77
+ # A&G, 157,d:
78
+ #
79
+ # The Infinitive is used chiefly as an indeclinable noun, as the subject
80
+ # or complement of another ver ( 452, 456.n)
81
+ #
82
+ # "To have X-d"
83
+ #
84
+ # === ARGUMENTS
85
+ #
86
+ # None
87
+ #
88
+ # === RETURNS
89
+ #
90
+ # Array of participles
91
+ #
92
+ ###
93
+ def perfect_active_infinitive
94
+ return @first_pers_perf+"sse"
95
+ end
96
+
97
+ ##
98
+ #
99
+ # === GRAMMATICAL FUNCTION
100
+ #
101
+ # A&G, 157,d:
102
+ #
103
+ # The Infinitive is used chiefly as an indeclinable noun, as the subject
104
+ # or complement of another ver ( 452, 456.n)
105
+ #
106
+ # "To be about to X"
107
+ #
108
+ # === ARGUMENTS
109
+ #
110
+ # None
111
+ #
112
+ # === RETURNS
113
+ #
114
+ # Array of participles
115
+ #
116
+ ###
117
+ def future_active_infinitive
118
+ return future_active_participle.sub(/,.*/,'') + " esse"
119
+ end
120
+
121
+ ##
122
+ #
123
+ # === GRAMMATICAL FUNCTION
124
+ #
125
+ # A&G, 157,d:
126
+ #
127
+ # The Infinitive is used chiefly as an indeclinable noun, as the subject
128
+ # or complement of another ver ( 452, 456.n)
129
+ #
130
+ # "To be X-d"
131
+ #
132
+ # === ARGUMENTS
133
+ #
134
+ # None
135
+ #
136
+ # === RETURNS
137
+ #
138
+ # Array of participles
139
+ #
140
+ ###
141
+ def present_passive_infinitive
142
+ if @classification == Linguistics::Latin::Verb::VerbTypes::First
143
+ return @pres_act_inf.gsub(/(.*)e$/,"\\1\xc4\xab")
144
+ end
145
+ if @classification == Linguistics::Latin::Verb::VerbTypes::Second
146
+ return @pres_act_inf.gsub(/(.*)e$/,"\\1\xc4\xab")
147
+ end
148
+ if @classification == Linguistics::Latin::Verb::VerbTypes::ThirdIO
149
+ return @pres_act_inf.gsub(/(.*)ere$/,"\\1\xc4\xab")
150
+ end
151
+ if @classification == Linguistics::Latin::Verb::VerbTypes::Third
152
+ return @pres_act_inf.gsub(/(.*)ere$/,"\\1\xc4\xab")
153
+ end
154
+ if @classification == Linguistics::Latin::Verb::VerbTypes::Fourth
155
+ return @pres_act_inf.gsub(/(.*)e$/,"\\1\xc4\xab")
156
+ end
157
+ end
158
+
159
+ ##
160
+ #
161
+ # === GRAMMATICAL FUNCTION
162
+ #
163
+ # A&G, 157,d:
164
+ #
165
+ # The Infinitive is used chiefly as an indeclinable noun, as the subject
166
+ # or complement of another ver ( 452, 456.n)
167
+ #
168
+ # "To have been X-d"
169
+ #
170
+ # === ARGUMENTS
171
+ #
172
+ # None
173
+ #
174
+ # === RETURNS
175
+ #
176
+ # Array of participles
177
+ #
178
+ ###
179
+ def perfect_passive_infinitive
180
+ return perfect_passive_participle + " esse"
181
+ end
182
+
183
+ ##
184
+ #
185
+ # === GRAMMATICAL FUNCTION
186
+ #
187
+ # A&G, 157,d:
188
+ #
189
+ # The Infinitive is used chiefly as an indeclinable noun, as the subject
190
+ # or complement of another ver ( 452, 456.n)
191
+ #
192
+ # "To be about to be X-d"
193
+ #
194
+ # <b>Note:</b> This form is exceedingly rare. Wheelock notes that
195
+ # Romans preferred to use the 4th principal part + <b>fore</b>.
196
+ #
197
+ # === ARGUMENTS
198
+ #
199
+ # None
200
+ #
201
+ # === RETURNS
202
+ #
203
+ # Array of participles
204
+ #
205
+ ###
206
+ def future_passive_infinitive
207
+ return supine[:accusative] + " īrī"
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end