1/* language tools */ 2if (typeof(window.bible) == 'undefined') 3 window.bible = {}; 4 5bible.languages = {}; 6bible.languages.Greek = { 7 partsOfSpeech: { 8 N: 'noun', 9 A: 'adjective', 10 T: 'article', 11 V: 'verb', 12 P: 'personal pronoun', 13 R: 'relative pronoun', 14 C: 'reciprocal pronoun', 15 D: 'demonstrative pronoun', 16 K: 'correlative pronoun', 17 I: 'interrogative pronoun', 18 X: 'indefinite pronoun', 19 Q: 'correlative or interrogative pronoun', 20 F: 'reflexive pronoun', 21 S: 'possessive pronoun', 22 ADV: 'adverb', 23 CONJ: 'conjunction', 24 COND: 'cond', 25 PRT: 'particle', 26 PREP: 'preposition', 27 INJ: 'interjection', 28 ARAM: 'aramaic', 29 HEB: 'hebrew' 30 }, 31 32 getPartofSpeech: function(pos) { 33 var full = this.partsOfSpeech[pos.toUpperCase()]; 34 35 return (full != null) ? full : '?'; 36 }, 37 38 nounCases: { 39 'N': 'nominative', 40 'V': 'vocative', 41 'G': 'genitive', 42 'D': 'dative', 43 'A': 'accusative', 44 'P': 'proper name' 45 }, 46 47 wordNumber: { 48 'S': 'singular', 49 'P': 'plural' 50 }, 51 52 wordGender: { 53 'M': 'masculine', 54 'F': 'feminine', 55 'N': 'neuter' 56 }, 57 58 wordPerson: { 59 '1': '1st', 60 '2': '2nd', 61 '3': '3rd' 62 }, 63 64 verbTenses: { 65 'P': 'present', 66 'I': 'imperfect', 67 'F': 'future', 68 '2F': 'second future', 69 'A': 'aorist', 70 '2A': 'second aorist', 71 'R': 'perfect', 72 '2R': 'second perfect', 73 'L': 'pluperfect', 74 '2L': 'second pluperfect', 75 'X': 'no tense stated' 76 }, 77 78 verbVoices: { 79 'A': 'active', 80 'M': 'middle', 81 'P': 'passive', 82 'E': 'middle or passive', 83 'D': 'middle deponent', 84 'O': 'passive deponent', 85 'N': 'middle or passive deponent', 86 'Q': 'impersonal active', 87 'X': 'no voice' 88 }, 89 90 verbMoods: { 91 'I': 'indicative', 92 'S': 'subjunctive', 93 'O': 'optative', 94 'M': 'imperative', 95 'N': 'infinitive', 96 'P': 'participle', 97 'R': 'imperative participle' 98 }, 99 100 getMorphology: function(morph) { 101 102 var firstDash = morph.indexOf('-'); 103 var pos = (firstDash > -1) ? morph.substring(0, firstDash) : morph; 104 var info = (firstDash > -1) ? morph.substring(firstDash+1) : ''; 105 106 switch (pos.toUpperCase()) { 107 case 'T': 108 case 'N': 109 var c = this.nounCases[info.substring(0, 1)]; 110 var n = this.wordNumber[info.substring(1, 2)]; 111 var g = this.wordGender[info.substring(2, 3)]; 112 return c + ((n) ? ',' + n + ((g) ? ', ' + g : '') : ''); 113 case 'A': 114 var c = this.nounCases[info.substring(0, 1)]; 115 var n = this.wordNumber[info.substring(1, 2)]; 116 return c + ', ' + n; 117 case 'V': 118 var t = ''; 119 var rem = '' 120 if (info.substring(0, 1) == '2') { 121 t = this.verbTenses[info.substring(0, 2)]; 122 rem = info.substring(2); 123 } else { 124 t = this.verbTenses[info.substring(0, 1)]; 125 rem = info.substring(1); 126 } 127 var v = this.verbVoices[rem.substring(0, 1)]; 128 var m = this.verbMoods[rem.substring(1, 2)]; 129 130 if (rem.length == 2) { 131 return info + ': ' + t + ', ' + v + ', ' + m; 132 } else if (rem.length == 5) { 133 var p = this.wordPerson[rem.substring(3, 4)]; 134 var n = this.wordNumber[rem.substring(4, 5)]; 135 return t + ', ' + v + ', ' + m + ', ' + p + ', ' + n; 136 137 } else if (rem.length == 6) { 138 var c = this.nounCases[rem.substring(3, 4)]; 139 var n = this.wordNumber[rem.substring(4, 5)]; 140 var g = this.wordGender[rem.substring(5, 6)]; 141 142 return t + ', ' + v + ', ' + m + ', ' + c + ', ' + n + ', ' + g; 143 } 144 145 //m = this.verbMoods[info.substring(2+offset,3+offset)]; 146 147 148 149 default: 150 return info; 151 } 152 } 153}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.