Commit b36a79ad authored by di68kap's avatar di68kap
Browse files

- MLW ergänzt

parent d3ad3d2e
LEMMA facitergula LEMMA facitergula
fascitergula fascitergula, facietergula, facistergula, facitercula
facietergula
facistergula
facitercula
ZUSATZ sim. ZUSATZ sim.
...@@ -23,7 +20,7 @@ SCHREIBWEISE ...@@ -23,7 +20,7 @@ SCHREIBWEISE
BEDEUTUNG BEDEUTUNG
pannus, faciale, sudarium -- Gesichts-, Schweißtuch [usu liturg.; de re v. p. 32, 63]: LAT pannus, faciale, sudarium -- DEU Gesichts-, Schweißtuch [usu liturg.: de re v. p. 32, 63]:
* Catal.: thes. Germ.; 28,11 (post 851) "-um III." * Catal.: thes. Germ.; 28,11 (post 851) "-um III."
* Form.: Sangall.; {ibi 2} 39 p. 421,16 "munuscula ... direximus, hoc est palliolum ... , * Form.: Sangall.; {ibi 2} 39 p. 421,16 "munuscula ... direximus, hoc est palliolum ... ,
...@@ -38,7 +35,7 @@ pannus, faciale, sudarium -- Gesichts-, Schweißtuch [usu liturg.; de re v. p. 3 ...@@ -38,7 +35,7 @@ pannus, faciale, sudarium -- Gesichts-, Schweißtuch [usu liturg.; de re v. p. 3
BEDEUTUNG BEDEUTUNG
capital, rica -- Kopftuch: LAT capital, rica -- DEU Kopftuch:
* Transl.: Libor. I; 32 "raptis feminarum -is (fa[s]citergiis var. l.)." * Transl.: Libor. I; 32 "raptis feminarum -is (fa[s]citergiis var. l.)."
* Transl.: Libor. II; 20 "nuditatem membrorum illius (puellae) tegere festinarunt fideles * Transl.: Libor. II; 20 "nuditatem membrorum illius (puellae) tegere festinarunt fideles
......
# TODO: Schreibe Skript um die Anführungsstriche in imperium.mlw hinzu zu fügen
m = re.search('\*.*\d\s*(.*\n)', imperium)
...@@ -35,7 +35,7 @@ BEDEUTUNG ...@@ -35,7 +35,7 @@ BEDEUTUNG
UNTER_UNTER_BEDEUTUNG in univ.: UNTER_UNTER_BEDEUTUNG in univ.:
BELEGE BELEGE
* Leg.: Burgund. Rom. 38,1 si quis ... nullo metu aut imperio ad pacta venire conpellitur, sed libera voluntate pactum inisse cognuscitur eqs. * Leg.: Burgund. Rom. 38,1 si quis ... nullo metu aut imperio ad pacta venire conpellitur, sed libera voluntate pactum inisse cognuscitur eqs.
* Ionas: Bob. Co­lumb. 1,17 p. 185,9 quae (sc. ferae) ad imperium eius statim veniebant. * Ionas: Bob. Columb. 1,17 p. 185,9 quae (sc. ferae) ad imperium eius statim veniebant.
* Lex: Baiuv. 1,10 hoc (sc. lex) per inperium regis vel iudicis fiat. * Lex: Baiuv. 1,10 hoc (sc. lex) per inperium regis vel iudicis fiat.
* Arbeo: Emm. 16 p. 49,17 ex imperio principis ... in ospiti sui scuriam ... deductus est episcopus. persaepe. v. et p. 1407, 57. * Arbeo: Emm. 16 p. 49,17 ex imperio principis ... in ospiti sui scuriam ... deductus est episcopus. persaepe. v. et p. 1407, 57.
...@@ -54,8 +54,7 @@ BEDEUTUNG ...@@ -54,8 +54,7 @@ BEDEUTUNG
BEDEUTUNG BEDEUTUNG
LATEINISCH potestas, dominatio, dicio LATEINISCH potestas, dominatio, dicio
DEUTSCH Macht, Herrschaft(sgewalt; plur. sensu sing. : v. ibi. al.) DEUTSCH Macht, Herrschaft, Herrschaftsgewalt [plur. sensu sing. : -> { v. ibi. al. }]
UNTER_BEDEUTUNG proprie: UNTER_BEDEUTUNG proprie:
...@@ -69,8 +68,7 @@ BEDEUTUNG ...@@ -69,8 +68,7 @@ BEDEUTUNG
* Chart.: Mekl. 783 quo (tempore) ... dominus Iohannes gubernavit eiusdem imperium civitatis. al. v. et p. 1402, 47. * Chart.: Mekl. 783 quo (tempore) ... dominus Iohannes gubernavit eiusdem imperium civitatis. al. v. et p. 1402, 47.
UNTER_UNTER_BEDEUTUNG UNTER_UNTER_BEDEUTUNG imperatorum [regum, ducum : -> { v. ibi. al. }]:
LATEINISCH imperatorum (regum, ducum : v. ibi. al.)
UUU_BEDEUTUNG usu communi: UUU_BEDEUTUNG usu communi:
BELEGE BELEGE
......
...@@ -33,7 +33,7 @@ Lemma = [< klassisch | gesichert >] LemmaWort ...@@ -33,7 +33,7 @@ Lemma = [< klassisch | gesichert >] LemmaWort
LemmaWort = LAT_WORT LemmaWort = LAT_WORT
LemmaVarianten = LemmaVariante { [TR] LemmaVariante } LemmaVarianten = LemmaVariante { [","] [ZW] LemmaVariante }
[[TR] Zusatz] [[TR] Zusatz]
LemmaVariante = LAT_WORT LemmaVariante = LAT_WORT
...@@ -100,25 +100,25 @@ Gegenstand = EINZEILER ...@@ -100,25 +100,25 @@ Gegenstand = EINZEILER
#### BEDEUTUNGS-POSITION ##################################################### #### BEDEUTUNGS-POSITION #####################################################
BedeutungsPosition = { ZWW "BEDEUTUNG" [LZ] §Bedeutung [U1Bedeutung] }+ BedeutungsPosition = { ZWW "BEDEUTUNG" [LZ] §Bedeutung [U1Bedeutung] }+
U1Bedeutung = { ZWW ("U_BEDEUTUNG" | "UNTERBEDEUTUNG") [LZ] §Bedeutung [U2Bedeutung] }+ U1Bedeutung = { ZWW ("U_BEDEUTUNG" | "UNTER_BEDEUTUNG") [LZ] §Bedeutung [U2Bedeutung] }+
U2Bedeutung = { ZWW ("UU_BEDEUTUNG" | "UNTERUNTERBEDEUTUNG") [LZ] §Bedeutung [U3Bedeutung] }+ U2Bedeutung = { ZWW ("UU_BEDEUTUNG" | "UNTER_UNTER_BEDEUTUNG") [LZ] §Bedeutung [U3Bedeutung] }+
U3Bedeutung = { ZWW "UUU_BEDEUTUNG" [LZ] §Bedeutung [U4Bedeutung] }+ U3Bedeutung = { ZWW "UUU_BEDEUTUNG" [LZ] §Bedeutung [U4Bedeutung] }+
U4Bedeutung = { ZWW "UUUU_BEDEUTUNG" [LZ] §Bedeutung [U5Bedeutung] }+ U4Bedeutung = { ZWW "UUUU_BEDEUTUNG" [LZ] §Bedeutung [U5Bedeutung] }+
U5Bedeutung = { ZWW "UUUUU_BEDEUTUNG" [LZ] §UntersteBedeutung }+ U5Bedeutung = { ZWW "UUUUU_BEDEUTUNG" [LZ] §UntersteBedeutung }+
Bedeutung = (Interpretamente | Bedeutungskategorie) [BelegPosition] Bedeutung = (Interpretamente | Bedeutungskategorie) [BelegPosition]
UntersteBedeutung = Interpretamente [BelegPosition] UntersteBedeutung = Interpretamente [BelegPosition]
Bedeutungskategorie = EINZEILER §":" [LZ] Bedeutungskategorie = EINZEILER [[LZ] BedeutungsQualifikation] §":"
Interpretamente = LateinischeBedeutung [LZ] §DeutscheBedeutung Interpretamente = LateinischeBedeutung ("--"| LZ) §DeutscheBedeutung [":"]
LateinischeBedeutung = [LZ] LateinischerAusdruck { <","|ZW> LateinischerAusdruck } LateinischeBedeutung = LAT [LZ] LateinischerAusdruck { <","|ZW> LateinischerAusdruck }
DeutscheBedeutung = [LZ] DeutscherAusdruck { <","|ZW> DeutscherAusdruck } DeutscheBedeutung = DEU [LZ] DeutscherAusdruck { <","|ZW> DeutscherAusdruck }
LateinischerAusdruck = LAT_WORT { //~ LAT_WORT } [/\s*/ BedeutungsQualifikation] LateinischerAusdruck = LAT_WORT_ERW { //~ LAT_WORT_ERW } [[LZ] BedeutungsQualifikation]
DeutscherAusdruck = DEU_WORT { //~ DEU_WORT } [/\s*/ BedeutungsQualifikation] DeutscherAusdruck = DEU_WORT_ERW { //~ DEU_WORT_ERW } [[LZ] BedeutungsQualifikation]
BedeutungsQualifikation = "[" EINZEILER { <SEM|ZW> EINZEILER } §"]" BedeutungsQualifikation = "[" Gegenstand DPP (Verweis | EINZEILER) §"]"
BelegPosition = ZWW "BELEGE" ZWW Belege BelegPosition = ZWW ["BELEGE" [LZ]] Belege
#### VERWEIS-POSITION ##################################################### #### VERWEIS-POSITION #####################################################
...@@ -181,37 +181,39 @@ NAMENS_ABKÜRZUNG = /[A-ZÄÖÜÁÀÂÓÒÔÚÙÛ]\./~ ...@@ -181,37 +181,39 @@ NAMENS_ABKÜRZUNG = /[A-ZÄÖÜÁÀÂÓÒÔÚÙÛ]\./~
NAME = /[A-ZÄÖÜÁÀÓÒÚÙÂÔÛ][a-zäöüßáàâóòôúùû]+/~ NAME = /[A-ZÄÖÜÁÀÓÒÚÙÂÔÛ][a-zäöüßáàâóòôúùû]+/~
DEU_WORT = DEU_GROSS | DEU_KLEIN | GROSSBUCHSTABE DEU_WORT = DEU_GROSS | DEU_KLEIN | GROSSBUCHSTABE
DEU_WORT_ERW = DEU_WORT | ( "(" DEU_WORT ")" )
DEU_GROSS = /[A-ZÄÖÜ][a-zäöüßę_\-]+/~ DEU_GROSS = /[A-ZÄÖÜ][a-zäöüßę_\-]+/~
GROSSBUCHSTABE = /[A-ZÄÖÜ](?=[ \t\n])/~ GROSSBUCHSTABE = /[A-ZÄÖÜ](?=[ \t\n])/~
KLEINBUCHSTABE = /[a-zäöü](?=[ \t\n])/~ KLEINBUCHSTABE = /[a-zäöü](?=[ \t\n])/~
GRI_BUCHSTABE = /[αβγδεζηθικλμνξοπρςστυφχψω]/ GRI_BUCHSTABE = /[αβγδεζηθικλμνξοπρςστυφχψω]/
DEU_KLEIN = /(?!-)[a-zäöüßę_\-]+/~ DEU_KLEIN = /(?!-)[a-zäöüßę_\-]+/~
LAT_WORT = /(?!-)[a-z|\-_]+/~ LAT_WORT = /(?!-)[a-z|\-_]+/~
LAT_WORT_ERW = LAT_WORT | ( "(" LAT_WORT ")" )
GROSSSCHRIFT = /(?!-)[A-ZÄÖÜ_\-]+/~ GROSSSCHRIFT = /(?!-)[A-ZÄÖÜ_\-]+/~
ZAHL = /[\d_]+/~ ZAHL = /[\d_]+/~
ROEMISCHE_ZAHL = /(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*)(?=[^\w])/~ ROEMISCHE_ZAHL = /(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*)(?=[^\w])/~
SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|[.()\[\]\-]+)/~ # div. Satzzeichen, aber keine doppelten ,, ;; oder :: SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|(?:-(?!-))|[.()\[\]]+)/~ # div. Satzzeichen, aber keine doppelten ,, ;; oder ::
TEIL_SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)/~ # Satzeichen bis auf Doppelpunkt ":", Semikolon ";" und eckige Klammern
BUCHSTABENFOLGE = /\w+/~ BUCHSTABENFOLGE = /\w+/~
ZEICHENFOLGE = /[\w()-]+/~ ZEICHENFOLGE = /[\w()-]+/~
# EINZEILER = /[\w()-. \t]+/~ # EINZEILER = /[\w()-. \t]+/~
TEXTELEMENT = DEU_WORT | ZAHL | ROEMISCHE_ZAHL TEXTELEMENT = DEU_WORT | ZAHL | ROEMISCHE_ZAHL
EINZEILER = { TEXTELEMENT | /(?!->)[.()\-]+/~ | /,(?!,)/~ }+ EINZEILER = { TEXTELEMENT | TEIL_SATZZEICHEN }+
FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+ FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+
MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+ MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+
TR = ABS | LZ # (beliebiger) Trenner TR = ABS | LZ # (beliebiger) Trenner
ABS = /\s*;;?\s*/ | ZWW # Abschluss (durch Semikolon oder Zeilenwechsel) ABS = /\s*;;?\s*/ | ZWW # Abschluss (durch Semikolon oder Zeilenwechsel)
# ZW = /\n/~ # Zeilenwechsel # ZW = /\n/~ # Zeilenwechsel
LZ = /\s+/ # Leerzeichen oder -zeilen LZ = { COMMENT__ | /\s+/ }+ # Leerzeichen oder -zeilen
DPP = /::?/~ # Doppelpunkt als Trenner DPP = /::?/~ # Doppelpunkt als Trenner
SEM = /;;?/~ # Semikolon als Trenner SEM = /;;?/~ # Semikolon als Trenner
ZW = !LÜCKE ZEILENSPRUNG # Zeilenwechsel, aber keine Leerzeile(n) ZW = !LÜCKE ZEILENSPRUNG # Zeilenwechsel, aber keine Leerzeile(n)
ZWW = ZEILENSPRUNG [ LEERRAUM ] # mindestens ein Zeilenwechsel ZWW = ZEILENSPRUNG [ LZ ] # mindestens ein Zeilenwechsel
LÜCKE = KOMMENTARZEILEN LEERZEILE [LEERRAUM] # Leerraum mit mindestens einer echten Leerzeile LÜCKE = KOMMENTARZEILEN LEERZEILE [LZ] # Leerraum mit mindestens einer echten Leerzeile
LEERRAUM = { COMMENT__ | /\s+/ }+ # beliebiger horizontaler oder vertikaler Leerraum
LEERZEILE = /[ \t]*(?:\n[ \t]*)+\n/ ~/\n?/ # eine oder mehrere echte LEERZEILEN LEERZEILE = /[ \t]*(?:\n[ \t]*)+\n/ ~/\n?/ # eine oder mehrere echte LEERZEILEN
RZS = /\s*?\n|$/ # Rückwärtiger Zeilensprung oder Textanfang RZS = /\s*?\n|$/ # Rückwärtiger Zeilensprung oder Textanfang
......
...@@ -85,7 +85,7 @@ class MLWGrammar(Grammar): ...@@ -85,7 +85,7 @@ class MLWGrammar(Grammar):
LemmaWort = LAT_WORT LemmaWort = LAT_WORT
LemmaVarianten = LemmaVariante { [TR] LemmaVariante } LemmaVarianten = LemmaVariante { [","] [ZW] LemmaVariante }
[[TR] Zusatz] [[TR] Zusatz]
LemmaVariante = LAT_WORT LemmaVariante = LAT_WORT
...@@ -152,25 +152,25 @@ class MLWGrammar(Grammar): ...@@ -152,25 +152,25 @@ class MLWGrammar(Grammar):
#### BEDEUTUNGS-POSITION ##################################################### #### BEDEUTUNGS-POSITION #####################################################
BedeutungsPosition = { ZWW "BEDEUTUNG" [LZ] §Bedeutung [U1Bedeutung] }+ BedeutungsPosition = { ZWW "BEDEUTUNG" [LZ] §Bedeutung [U1Bedeutung] }+
U1Bedeutung = { ZWW ("U_BEDEUTUNG" | "UNTERBEDEUTUNG") [LZ] §Bedeutung [U2Bedeutung] }+ U1Bedeutung = { ZWW ("U_BEDEUTUNG" | "UNTER_BEDEUTUNG") [LZ] §Bedeutung [U2Bedeutung] }+
U2Bedeutung = { ZWW ("UU_BEDEUTUNG" | "UNTERUNTERBEDEUTUNG") [LZ] §Bedeutung [U3Bedeutung] }+ U2Bedeutung = { ZWW ("UU_BEDEUTUNG" | "UNTER_UNTER_BEDEUTUNG") [LZ] §Bedeutung [U3Bedeutung] }+
U3Bedeutung = { ZWW "UUU_BEDEUTUNG" [LZ] §Bedeutung [U4Bedeutung] }+ U3Bedeutung = { ZWW "UUU_BEDEUTUNG" [LZ] §Bedeutung [U4Bedeutung] }+
U4Bedeutung = { ZWW "UUUU_BEDEUTUNG" [LZ] §Bedeutung [U5Bedeutung] }+ U4Bedeutung = { ZWW "UUUU_BEDEUTUNG" [LZ] §Bedeutung [U5Bedeutung] }+
U5Bedeutung = { ZWW "UUUUU_BEDEUTUNG" [LZ] §UntersteBedeutung }+ U5Bedeutung = { ZWW "UUUUU_BEDEUTUNG" [LZ] §UntersteBedeutung }+
Bedeutung = (Interpretamente | Bedeutungskategorie) [BelegPosition] Bedeutung = (Interpretamente | Bedeutungskategorie) [BelegPosition]
UntersteBedeutung = Interpretamente [BelegPosition] UntersteBedeutung = Interpretamente [BelegPosition]
Bedeutungskategorie = EINZEILER §":" [LZ] Bedeutungskategorie = EINZEILER [[LZ] BedeutungsQualifikation] §":"
Interpretamente = LateinischeBedeutung [LZ] §DeutscheBedeutung Interpretamente = LateinischeBedeutung ("--"| LZ) §DeutscheBedeutung [":"]
LateinischeBedeutung = LAT [LZ] LateinischerAusdruck { <","|ZW> LateinischerAusdruck } LateinischeBedeutung = LAT [LZ] LateinischerAusdruck { <","|ZW> LateinischerAusdruck }
DeutscheBedeutung = DEU [LZ] DeutscherAusdruck { <","|ZW> DeutscherAusdruck } DeutscheBedeutung = DEU [LZ] DeutscherAusdruck { <","|ZW> DeutscherAusdruck }
LateinischerAusdruck = LAT_WORT { //~ LAT_WORT } [/\s*/ BedeutungsQualifikation] LateinischerAusdruck = LAT_WORT_ERW { //~ LAT_WORT_ERW } [[LZ] BedeutungsQualifikation]
DeutscherAusdruck = DEU_WORT { //~ DEU_WORT } [/\s*/ BedeutungsQualifikation] DeutscherAusdruck = DEU_WORT_ERW { //~ DEU_WORT_ERW } [[LZ] BedeutungsQualifikation]
BedeutungsQualifikation = "[" EINZEILER { <SEM|ZW> EINZEILER } §"]" BedeutungsQualifikation = "[" Gegenstand DPP (Verweis | EINZEILER) §"]"
BelegPosition = ZWW "BELEGE" ZWW Belege BelegPosition = ZWW ["BELEGE" [LZ]] Belege
#### VERWEIS-POSITION ##################################################### #### VERWEIS-POSITION #####################################################
...@@ -233,37 +233,39 @@ class MLWGrammar(Grammar): ...@@ -233,37 +233,39 @@ class MLWGrammar(Grammar):
NAME = /[A-ZÄÖÜÁÀÓÒÚÙÂÔÛ][a-zäöüßáàâóòôúùû]+/~ NAME = /[A-ZÄÖÜÁÀÓÒÚÙÂÔÛ][a-zäöüßáàâóòôúùû]+/~
DEU_WORT = DEU_GROSS | DEU_KLEIN | GROSSBUCHSTABE DEU_WORT = DEU_GROSS | DEU_KLEIN | GROSSBUCHSTABE
DEU_WORT_ERW = DEU_WORT | ( "(" DEU_WORT ")" )
DEU_GROSS = /[A-ZÄÖÜ][a-zäöüßę_\-]+/~ DEU_GROSS = /[A-ZÄÖÜ][a-zäöüßę_\-]+/~
GROSSBUCHSTABE = /[A-ZÄÖÜ](?=[ \t\n])/~ GROSSBUCHSTABE = /[A-ZÄÖÜ](?=[ \t\n])/~
KLEINBUCHSTABE = /[a-zäöü](?=[ \t\n])/~ KLEINBUCHSTABE = /[a-zäöü](?=[ \t\n])/~
GRI_BUCHSTABE = /[αβγδεζηθικλμνξοπρςστυφχψω]/ GRI_BUCHSTABE = /[αβγδεζηθικλμνξοπρςστυφχψω]/
DEU_KLEIN = /(?!-)[a-zäöüßę_\-]+/~ DEU_KLEIN = /(?!-)[a-zäöüßę_\-]+/~
LAT_WORT = /(?!-)[a-z|\-_]+/~ LAT_WORT = /(?!-)[a-z|\-_]+/~
LAT_WORT_ERW = LAT_WORT | ( "(" LAT_WORT ")" )
GROSSSCHRIFT = /(?!-)[A-ZÄÖÜ_\-]+/~ GROSSSCHRIFT = /(?!-)[A-ZÄÖÜ_\-]+/~
ZAHL = /[\d_]+/~ ZAHL = /[\d_]+/~
ROEMISCHE_ZAHL = /(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*)(?=[^\w])/~ ROEMISCHE_ZAHL = /(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*)(?=[^\w])/~
SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|[.()\[\]\-]+)/~ # div. Satzzeichen, aber keine doppelten ,, ;; oder :: SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|(?:-(?!-))|[.()\[\]]+)/~ # div. Satzzeichen, aber keine doppelten ,, ;; oder ::
TEIL_SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)/~ # Satzeichen bis auf Doppelpunkt ":", Semikolon ";" und eckige Klammern
BUCHSTABENFOLGE = /\w+/~ BUCHSTABENFOLGE = /\w+/~
ZEICHENFOLGE = /[\w()-]+/~ ZEICHENFOLGE = /[\w()-]+/~
# EINZEILER = /[\w()-. \t]+/~ # EINZEILER = /[\w()-. \t]+/~
TEXTELEMENT = DEU_WORT | ZAHL | ROEMISCHE_ZAHL TEXTELEMENT = DEU_WORT | ZAHL | ROEMISCHE_ZAHL
EINZEILER = { TEXTELEMENT | /(?!->)[.()\-]+/~ | /,(?!,)/~ }+ EINZEILER = { TEXTELEMENT | TEIL_SATZZEICHEN }+
FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+ FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+
MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+ MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+
TR = ABS | LZ # (beliebiger) Trenner TR = ABS | LZ # (beliebiger) Trenner
ABS = /\s*;;?\s*/ | ZWW # Abschluss (durch Semikolon oder Zeilenwechsel) ABS = /\s*;;?\s*/ | ZWW # Abschluss (durch Semikolon oder Zeilenwechsel)
# ZW = /\n/~ # Zeilenwechsel # ZW = /\n/~ # Zeilenwechsel
LZ = /\s+/ # Leerzeichen oder -zeilen LZ = { COMMENT__ | /\s+/ }+ # Leerzeichen oder -zeilen
DPP = /::?/~ # Doppelpunkt als Trenner DPP = /::?/~ # Doppelpunkt als Trenner
SEM = /;;?/~ # Semikolon als Trenner SEM = /;;?/~ # Semikolon als Trenner
ZW = !LÜCKE ZEILENSPRUNG # Zeilenwechsel, aber keine Leerzeile(n) ZW = !LÜCKE ZEILENSPRUNG # Zeilenwechsel, aber keine Leerzeile(n)
ZWW = ZEILENSPRUNG [ LEERRAUM ] # mindestens ein Zeilenwechsel ZWW = ZEILENSPRUNG [ LZ ] # mindestens ein Zeilenwechsel
LÜCKE = KOMMENTARZEILEN LEERZEILE [LEERRAUM] # Leerraum mit mindestens einer echten Leerzeile LÜCKE = KOMMENTARZEILEN LEERZEILE [LZ] # Leerraum mit mindestens einer echten Leerzeile
LEERRAUM = { COMMENT__ | /\s+/ }+ # beliebiger horizontaler oder vertikaler Leerraum
LEERZEILE = /[ \t]*(?:\n[ \t]*)+\n/ ~/\n?/ # eine oder mehrere echte LEERZEILEN LEERZEILE = /[ \t]*(?:\n[ \t]*)+\n/ ~/\n?/ # eine oder mehrere echte LEERZEILEN
RZS = /\s*?\n|$/ # Rückwärtiger Zeilensprung oder Textanfang RZS = /\s*?\n|$/ # Rückwärtiger Zeilensprung oder Textanfang
...@@ -280,9 +282,13 @@ class MLWGrammar(Grammar): ...@@ -280,9 +282,13 @@ class MLWGrammar(Grammar):
DEU_WORT = Forward() DEU_WORT = Forward()
FREITEXT = Forward() FREITEXT = Forward()
GROSSSCHRIFT = Forward() GROSSSCHRIFT = Forward()
Gegenstand = Forward()
Kategorien = Forward() Kategorien = Forward()
LAT_WORT = Forward()
LZ = Forward()
ROEMISCHE_ZAHL = Forward() ROEMISCHE_ZAHL = Forward()
SATZZEICHEN = Forward() SATZZEICHEN = Forward()
TEIL_SATZZEICHEN = Forward()
TEXTELEMENT = Forward() TEXTELEMENT = Forward()
ZAHL = Forward() ZAHL = Forward()
ZWW = Forward() ZWW = Forward()
...@@ -290,7 +296,7 @@ class MLWGrammar(Grammar): ...@@ -290,7 +296,7 @@ class MLWGrammar(Grammar):
flexion = Forward() flexion = Forward()
genus = Forward() genus = Forward()
wortart = Forward() wortart = Forward()
source_hash__ = "3791f32280610295f3748a8a0ed0aa4b" source_hash__ = "ddde3c1be13790163321ea72d6d5cf14"
parser_initialization__ = "upon instantiation" parser_initialization__ = "upon instantiation"
COMMENT__ = r'#.*' COMMENT__ = r'#.*'
WHITESPACE__ = r'[\t ]*' WHITESPACE__ = r'[\t ]*'
...@@ -306,31 +312,33 @@ class MLWGrammar(Grammar): ...@@ -306,31 +312,33 @@ class MLWGrammar(Grammar):
ZEILENSPRUNG = RE('[ \\t]*\\n') ZEILENSPRUNG = RE('[ \\t]*\\n')
RZS = RegExp('\\s*?\\n|$') RZS = RegExp('\\s*?\\n|$')
LEERZEILE = Series(RegExp('[ \\t]*(?:\\n[ \\t]*)+\\n'), RE('\\n?', wR='', wL=WSP__)) LEERZEILE = Series(RegExp('[ \\t]*(?:\\n[ \\t]*)+\\n'), RE('\\n?', wR='', wL=WSP__))
LEERRAUM = OneOrMore(Alternative(RegExp(COMMENT__), RegExp('\\s+'))) LÜCKE = Series(KOMMENTARZEILEN, LEERZEILE, Option(LZ))
LÜCKE = Series(KOMMENTARZEILEN, LEERZEILE, Option(LEERRAUM)) ZWW.set(Series(ZEILENSPRUNG, Option(LZ)))
ZWW.set(Series(ZEILENSPRUNG, Option(LEERRAUM)))
ZW = Series(NegativeLookahead(LÜCKE), ZEILENSPRUNG) ZW = Series(NegativeLookahead(LÜCKE), ZEILENSPRUNG)
SEM = RE(';;?') SEM = RE(';;?')
DPP = RE('::?') DPP = RE('::?')
LZ = RegExp('\\s+') LZ.set(OneOrMore(Alternative(RegExp(COMMENT__), RegExp('\\s+'))))
ABS = Alternative(RegExp('\\s*;;?\\s*'), ZWW) ABS = Alternative(RegExp('\\s*;;?\\s*'), ZWW)
TR = Alternative(ABS, LZ) TR = Alternative(ABS, LZ)
MEHRZEILER = OneOrMore(Alternative(FREITEXT, RegExp('\\s+(?=[\\w,;:.\\(\\)\\-])'))) MEHRZEILER = OneOrMore(Alternative(FREITEXT, RegExp('\\s+(?=[\\w,;:.\\(\\)\\-])')))
FREITEXT.set(OneOrMore(Alternative(TEXTELEMENT, SATZZEICHEN, GROSSSCHRIFT))) FREITEXT.set(OneOrMore(Alternative(TEXTELEMENT, SATZZEICHEN, GROSSSCHRIFT)))
EINZEILER = OneOrMore(Alternative(TEXTELEMENT, RE('(?!->)[.()\\-]+'), RE(',(?!,)'))) EINZEILER = OneOrMore(Alternative(TEXTELEMENT, TEIL_SATZZEICHEN))
TEXTELEMENT.set(Alternative(DEU_WORT, ZAHL, ROEMISCHE_ZAHL)) TEXTELEMENT.set(Alternative(DEU_WORT, ZAHL, ROEMISCHE_ZAHL))
ZEICHENFOLGE = RE('[\\w()-]+') ZEICHENFOLGE = RE('[\\w()-]+')
BUCHSTABENFOLGE = RE('\\w+') BUCHSTABENFOLGE = RE('\\w+')
SATZZEICHEN.set(RE('(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|[.()\\[\\]\\-]+)')) TEIL_SATZZEICHEN.set(RE('(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)'))
SATZZEICHEN.set(RE('(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|(?:-(?!-))|[.()\\[\\]]+)'))
ROEMISCHE_ZAHL.set(RE('(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*)(?=[^\\w])')) ROEMISCHE_ZAHL.set(RE('(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*)(?=[^\\w])'))
ZAHL.set(RE('[\\d_]+')) ZAHL.set(RE('[\\d_]+'))
GROSSSCHRIFT.set(RE('(?!-)[A-ZÄÖÜ_\\-]+')) GROSSSCHRIFT.set(RE('(?!-)[A-ZÄÖÜ_\\-]+'))
LAT_WORT = RE('(?!-)[a-z|\\-_]+') LAT_WORT_ERW = Alternative(LAT_WORT, Series(Token("("), LAT_WORT, Token(")")))
LAT_WORT.set(RE('(?!-)[a-z|\\-_]+'))
DEU_KLEIN = RE('(?!-)[a-zäöüßę_\\-]+') DEU_KLEIN = RE('(?!-)[a-zäöüßę_\\-]+')
GRI_BUCHSTABE = RegExp('[αβγδεζηθικλμνξοπρςστυφχψω]') GRI_BUCHSTABE = RegExp('[αβγδεζηθικλμνξοπρςστυφχψω]')
KLEINBUCHSTABE = RE('[a-zäöü](?=[ \\t\\n])') KLEINBUCHSTABE = RE('[a-zäöü](?=[ \\t\\n])')
GROSSBUCHSTABE = RE('[A-ZÄÖÜ](?=[ \\t\\n])') GROSSBUCHSTABE = RE('[A-ZÄÖÜ](?=[ \\t\\n])')
DEU_GROSS = RE('[A-ZÄÖÜ][a-zäöüßę_\\-]+') DEU_GROSS = RE('[A-ZÄÖÜ][a-zäöüßę_\\-]+')
DEU_WORT_ERW = Alternative(DEU_WORT, Series(Token("("), DEU_WORT, Token(")")))
DEU_WORT.set(Alternative(DEU_GROSS, DEU_KLEIN, GROSSBUCHSTABE)) DEU_WORT.set(Alternative(DEU_GROSS, DEU_KLEIN, GROSSBUCHSTABE))
NAME = RE('[A-ZÄÖÜÁÀÓÒÚÙÂÔÛ][a-zäöüßáàâóòôúùû]+') NAME = RE('[A-ZÄÖÜÁÀÓÒÚÙÂÔÛ][a-zäöüßáàâóòôúùû]+')
NAMENS_ABKÜRZUNG = RE('[A-ZÄÖÜÁÀÂÓÒÔÚÙÛ]\\.') NAMENS_ABKÜRZUNG = RE('[A-ZÄÖÜÁÀÂÓÒÔÚÙÛ]\\.')
...@@ -358,23 +366,23 @@ class MLWGrammar(Grammar): ...@@ -358,23 +366,23 @@ class MLWGrammar(Grammar):
ArtikelVerfasser = Series(ZWW, Alternative(Token("AUTORIN"), Token("AUTOR")), Name) ArtikelVerfasser = Series(ZWW, Alternative(Token("AUTORIN"), Token("AUTOR")), Name)
UnterArtikel = Series(ZWW, Token("UNTER-ARTIKEL")) UnterArtikel = Series(ZWW, Token("UNTER-ARTIKEL"))
VerweisPosition = Series(ZWW, Token("VERWEISE")) VerweisPosition = Series(ZWW, Token("VERWEISE"))
BelegPosition = Series(ZWW, Token("BELEGE"), ZWW, Belege) BelegPosition = Series(ZWW, Option(Series(Token("BELEGE"), Option(LZ))), Belege)
BedeutungsQualifikation = Series(Token("["), EINZEILER, ZeroOrMore(Series(SomeOf(SEM, ZW), EINZEILER)), Token("]"), mandatory=3) BedeutungsQualifikation = Series(Token("["), Gegenstand, DPP, Alternative(Verweis, EINZEILER), Token("]"), mandatory=4)
DeutscherAusdruck = Series(DEU_WORT, ZeroOrMore(Series(RE(''), DEU_WORT)), Option(Series(RegExp('\\s*'), BedeutungsQualifikation))) DeutscherAusdruck = Series(DEU_WORT_ERW, ZeroOrMore(Series(RE(''), DEU_WORT_ERW)), Option(Series(Option(LZ), BedeutungsQualifikation)))
LateinischerAusdruck = Series(LAT_WORT, ZeroOrMore(Series(RE(''), LAT_WORT)), Option(Series(RegExp('\\s*'), BedeutungsQualifikation))) LateinischerAusdruck = Series(LAT_WORT_ERW, ZeroOrMore(Series(RE(''), LAT_WORT_ERW)), Option(Series(Option(LZ), BedeutungsQualifikation)))
DeutscheBedeutung = Series(DEU, Option(LZ), DeutscherAusdruck, ZeroOrMore(Series(SomeOf(Token(","), ZW), DeutscherAusdruck))) DeutscheBedeutung = Series(DEU, Option(LZ), DeutscherAusdruck, ZeroOrMore(Series(SomeOf(Token(","), ZW), DeutscherAusdruck)))
LateinischeBedeutung = Series(LAT, Option(LZ), LateinischerAusdruck, ZeroOrMore(Series(SomeOf(Token(","), ZW), LateinischerAusdruck))) LateinischeBedeutung = Series(LAT, Option(LZ), LateinischerAusdruck, ZeroOrMore(Series(SomeOf(Token(","), ZW), LateinischerAusdruck)))
Interpretamente = Series(LateinischeBedeutung, Option(LZ), DeutscheBedeutung, mandatory=2) Interpretamente = Series(LateinischeBedeutung, Alternative(Token("--"), LZ), DeutscheBedeutung, Option(Token(":")), mandatory=2)
Bedeutungskategorie = Series(EINZEILER, Token(":"), Option(LZ), mandatory=1) Bedeutungskategorie = Series(EINZEILER, Option(Series(Option(LZ), BedeutungsQualifikation)), Token(":"), mandatory=2)
UntersteBedeutung = Series(Interpretamente, Option(BelegPosition)) UntersteBedeutung = Series(Interpretamente, Option(BelegPosition))
Bedeutung = Series(Alternative(Interpretamente, Bedeutungskategorie), Option(BelegPosition)) Bedeutung = Series(Alternative(Interpretamente, Bedeutungskategorie), Option(BelegPosition))
U5Bedeutung = OneOrMore(Series(ZWW, Token("UUUUU_BEDEUTUNG"), Option(LZ), UntersteBedeutung, mandatory=3)) U5Bedeutung = OneOrMore(Series(ZWW, Token("UUUUU_BEDEUTUNG"), Option(LZ), UntersteBedeutung, mandatory=3))
U4Bedeutung = OneOrMore(Series(ZWW, Token("UUUU_BEDEUTUNG"), Option(LZ), Bedeutung, Option(U5Bedeutung), mandatory=3)) U4Bedeutung = OneOrMore(Series(ZWW, Token("UUUU_BEDEUTUNG"), Option(LZ), Bedeutung, Option(U5Bedeutung), mandatory=3))
U3Bedeutung = OneOrMore(Series(ZWW, Token("UUU_BEDEUTUNG"), Option(LZ), Bedeutung, Option(U4Bedeutung), mandatory=3)) U3Bedeutung = OneOrMore(Series(ZWW, Token("UUU_BEDEUTUNG"), Option(LZ), Bedeutung, Option(U4Bedeutung), mandatory=3))
U2Bedeutung = OneOrMore(Series(ZWW, Alternative(Token("UU_BEDEUTUNG"), Token("UNTERUNTERBEDEUTUNG")), Option(LZ), Bedeutung, Option(U3Bedeutung), mandatory=3)) U2Bedeutung = OneOrMore(Series(ZWW, Alternative(Token("UU_BEDEUTUNG"), Token("UNTER_UNTER_BEDEUTUNG")), Option(LZ), Bedeutung, Option(U3Bedeutung), mandatory=3))
U1Bedeutung = OneOrMore(Series(ZWW, Alternative(Token("U_BEDEUTUNG"), Token("UNTERBEDEUTUNG")), Option(LZ), Bedeutung, Option(U2Bedeutung), mandatory=3)) U1Bedeutung = OneOrMore(Series(ZWW, Alternative(Token("U_BEDEUTUNG"), Token("UNTER_BEDEUTUNG")), Option(LZ), Bedeutung, Option(U2Bedeutung), mandatory=3))
BedeutungsPosition = OneOrMore(Series(ZWW, Token("BEDEUTUNG"), Option(LZ), Bedeutung, Option(U1Bedeutung), mandatory=3)) BedeutungsPosition = OneOrMore(Series(ZWW, Token("BEDEUTUNG"), Option(LZ), Bedeutung, Option(U1Bedeutung), mandatory=3))
Gegenstand = Synonym(EINZEILER) Gegenstand.set(Synonym(EINZEILER))
Variante = Series(NegativeLookahead(KATEGORIENZEILE), Gegenstand, DPP, Belege) Variante = Series(NegativeLookahead(KATEGORIENZEILE), Gegenstand, DPP, Belege)
Varianten = Series(Variante, ZeroOrMore(Series(ZWW, Variante))) Varianten = Series(Variante, ZeroOrMore(Series(ZWW, Variante)))
Besonderheit = Synonym(EINZEILER) Besonderheit = Synonym(EINZEILER)
...@@ -401,7 +409,7 @@ class MLWGrammar(Grammar): ...@@ -401,7 +409,7 @@ class MLWGrammar(Grammar):
Grammatik = Series(wortart, ABS, flexion, Option(genus), mandatory=1) Grammatik = Series(wortart, ABS, flexion, Option(genus), mandatory=1)
GrammatikPosition = Series(ZWW, Token("GRAMMATIK"), Option(LZ), Grammatik, ZeroOrMore(Series(ABS, GrammatikVariante)), mandatory=3) GrammatikPosition = Series(ZWW, Token("GRAMMATIK"), Option(LZ), Grammatik, ZeroOrMore(Series(ABS, GrammatikVariante)), mandatory=3)
LemmaVariante = Synonym(LAT_WORT) LemmaVariante = Synonym(LAT_WORT)
LemmaVarianten = Series(LemmaVariante, ZeroOrMore(Series(Option(TR), LemmaVariante)), Option(Series(Option(TR), Zusatz))) LemmaVarianten = Series(LemmaVariante, ZeroOrMore(Series(Option(Token(",")), Option(ZW), LemmaVariante)), Option(Series(Option(TR), Zusatz)))
LemmaWort = Synonym(LAT_WORT) LemmaWort = Synonym(LAT_WORT)
gesichert = Token("$") gesichert = Token("$")
klassisch = Token("*") klassisch = Token("*")
......
...@@ -74,7 +74,7 @@ F4: """ \#Kommentar ...@@ -74,7 +74,7 @@ F4: """ \#Kommentar
\# Kommentar""" \# Kommentar"""
[match:LEERRAUM] [match:LZ]
M1: " " M1: " "
M2: " # Kommentar" M2: " # Kommentar"
M3: " " M3: " "
...@@ -93,7 +93,7 @@ M7: """ ...@@ -93,7 +93,7 @@ M7: """
""" """
[fail:LEERRAUM] [fail:LZ]
F1: "X" F1: "X"
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
2: "fascitergula" 2: "fascitergula"
3: """fascitergula facietergula ZUSATZ sim.""" 3: """fascitergula facietergula ZUSATZ sim."""
4: """fascitergula, facietergula, fascistergula ZUSATZ sim."""
[fail:LemmaVarianten] [fail:LemmaVarianten]
99: * fascitergula 99: * fascitergula
......
[match:BedeutungsPosition] [match:BedeutungsPosition]
M1: """ M1: """
BEDEUTUNG BEDEUTUNG
LAT pannus, faciale, sudarium LAT pannus, faciale, sudarium
DEU Gesichts-, Schweißtuch [usu liturg.; de re v. p. 32, 63]""" DEU Gesichts-, Schweißtuch [usu liturg.: de re v. p. 32, 63]:"""
[match:Bedeutung] [match:Bedeutung]
M1: """LAT capital, rica M1: """LAT capital, rica -- DEU Kopftuch:
DEU Kopftuch
BELEGE
* Transl.: Libor. I; 32 "raptis feminarum -is (fa[s]citergiis var. l.)." * Transl.: Libor. I; 32 "raptis feminarum -is (fa[s]citergiis var. l.)."
* Transl.: Libor. II; 20 "nuditatem membrorum illius (puellae) tegere festinarunt fideles * Transl.: Libor. II; 20 "nuditatem membrorum illius (puellae) tegere festinarunt fideles
clerici et laici inprimis cum eorum -cula, dein vestibus solitis."""" clerici et laici inprimis cum eorum -cula, dein vestibus solitis.""""
M2: """in univ.:
* Leg.: Burgund. Rom. 38,1 si quis ... nullo metu aut imperio ad pacta venire conpellitur, sed libera voluntate pactum inisse cognuscitur eqs.
* Ionas: Bob. Columb. 1,17 p. 185,9 quae (sc. ferae) ad imperium eius statim veniebant.
* Lex: Baiuv. 1,10 hoc (sc. lex) per inperium regis vel iudicis fiat.
* Arbeo: Emm. 16 p. 49,17 ex imperio principis ... in ospiti sui scuriam ... deductus est episcopus. persaepe. v. et p. 1407, 57."""
[fail:Bedeutung]
F1: """capital, rica -- Kopftuch:
* Transl.: Libor. I; 32 "raptis feminarum -is (fa[s]citergiis var. l.)."
* Transl.: Libor. II; 20 "nuditatem membrorum illius (puellae) tegere festinarunt fideles
clerici et laici inprimis cum eorum -cula, dein vestibus solitis." """
[match:Interpretamente] [match:Interpretamente]
M1: """LAT capital, rica M1: """LAT capital, rica -- DEU Kopftuch:"""
DEU Kopftuch""" M2: """LAT capital, rica
DEU Kopftuch:"""
M3: """LAT capital, rica -- DEU Kopftuch"""
[fail:Interpretamente]
F1: """capital, rica -- DEU Kopftuch:"""
[match:LateinischeBedeutung] [match:LateinischeBedeutung]
M1: """LAT pannus, faciale, sudarium""" M1: """LAT pannus, faciale, sudarium"""
M2: """LAT capital, rica""" M2: """LATEINISCH capital, rica"""
[match:DeutscheBedeutung] [match:DeutscheBedeutung]
M1: """DEU Gesichts-, M1: """DEU Gesichts-, Schweißtuch [usu liturg.: de re v. p. 32, 63]"""
Schweißtuch [usu liturg.; de re v. p. 32, 63]""" M2: """DEUTSCH Kopftuch"""
M2: """DEU Kopftuch"""