2.12.2021, 9:00 - 11:00: Due to updates GitLab may be unavailable for some minutes between 09:00 and 11:00.

Commit e4813a41 authored by di68kap's avatar di68kap
Browse files

- MLW ergänzt...

parent 2b713018
LEMMA *facitergula LEMMA *facitergula
fascitergula, facietergula, facistergula, facitercula {sim.} fascitergula
facietergula
facistergula
facitercula {sim.}
GRAMMATIK GRAMMATIK
...@@ -18,8 +21,8 @@ SCHREIBWEISE ...@@ -18,8 +21,8 @@ SCHREIBWEISE
BEDEUTUNG BEDEUTUNG
LAT pannus, faciale, sudarium -- LAT pannus, faciale, sudarium
DEU Gesichts-, Schweißtuch {usu liturg.; de re v. {=> eintrag/ibi_X}}: DEU Gesichts-, Schweißtuch {usu liturg.; de re v. {=> eintrag/ibi_X}}
* 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 * Form.: Sangall.; {#ibi_2} 39 p. 421,16
...@@ -34,7 +37,8 @@ DEU Gesichts-, Schweißtuch {usu liturg.; de re v. {=> eintrag/ibi_X}}: ...@@ -34,7 +37,8 @@ DEU Gesichts-, Schweißtuch {usu liturg.; de re v. {=> eintrag/ibi_X}}:
BEDEUTUNG BEDEUTUNG
LAT capital, rica -- DEU Kopftuch: LAT capital, rica
DEU Kopftuch
* Transl.: Libor. I; 32 * Transl.: Libor. I; 32
"raptis feminarum -is (fa[s]citergiis {var. l.})." "raptis feminarum -is (fa[s]citergiis {var. l.})."
...@@ -42,3 +46,24 @@ LAT capital, rica -- DEU Kopftuch: ...@@ -42,3 +46,24 @@ LAT capital, rica -- DEU Kopftuch:
"nuditatem membrorum illius {puellae} tegere festinarunt fideles clerici et laici inprimis cum eorum -cula, dein vestibus solitis." "nuditatem membrorum illius {puellae} tegere festinarunt fideles clerici et laici inprimis cum eorum -cula, dein vestibus solitis."
AUTORIN Weber AUTORIN Weber
// Der folgende Teil wird bis auf die URLs automatisch generiert!
// Kann auch in eine eigene Datei ausgelagert werden.
STELLENVERZEICHNIS fascitergula
* Form.: Sangall.; 39 p. 421,16 {=> URL_1}
* Libri: confrat. I; app. A 6 p. 137,30 {-} // {-} bedeutet: keine URL vorhanden
* Catal.: thes. Germ.;
18,7 {=> URL_3}
28,11 (post 851) {=> URL_4}
76,15 {=> URL_5}
40,5 {=> URL_6}
129a,5 {=> URL_7}
24,8 {=> URL_8}
114,8 {=> URL_9}
6,24 {-}
92,6 {-}
21,20 IIII {=> URL_10}
...@@ -19,7 +19,8 @@ Artikel = [LZ] ...@@ -19,7 +19,8 @@ Artikel = [LZ]
[VerweisPosition] [VerweisPosition]
{ UnterArtikel } { UnterArtikel }
ArtikelVerfasser ArtikelVerfasser
[LZ] DATEI_ENDE [Stellenverzeichnis]
[LZ] DATEI_ENDE
#### LEMMA-POSITION ########################################################## #### LEMMA-POSITION ##########################################################
...@@ -33,7 +34,7 @@ Lemma = [< klassisch | gesichert >] LemmaWort ...@@ -33,7 +34,7 @@ Lemma = [< klassisch | gesichert >] LemmaWort
LemmaWort = LAT_WORT LemmaWort = LAT_WORT
LemmaVarianten = LemmaVariante { [","] [ZW] LemmaVariante } LemmaVarianten = LemmaVariante { [";" | ","] [ZW] LemmaVariante } [ ABS Zusatz ]
LemmaVariante = LAT_WORT [Zusatz] LemmaVariante = LAT_WORT [Zusatz]
...@@ -120,7 +121,7 @@ BedeutungsQualifikation = Zusatz # "[" Gegenstand DPP (Verweis | EINZEILER) §"] ...@@ -120,7 +121,7 @@ BedeutungsQualifikation = Zusatz # "[" Gegenstand DPP (Verweis | EINZEILER) §"]
BelegPosition = ZWW ["BELEGE" [LZ]] Belege BelegPosition = ZWW ["BELEGE" [LZ]] Belege
#### VERWEIS-POSITION ##################################################### #### VERWEIS-POSITION ########################################################
VerweisPosition = ZWW "VERWEISE" VerweisPosition = ZWW "VERWEISE"
...@@ -136,9 +137,12 @@ ArtikelVerfasser = ZWW ("AUTORIN" | "AUTOR") Name ...@@ -136,9 +137,12 @@ ArtikelVerfasser = ZWW ("AUTORIN" | "AUTOR") Name
Name = { NAME | NAMENS_ABKÜRZUNG }+ Name = { NAME | NAMENS_ABKÜRZUNG }+
#### STELLENVERWEISE ######################################################### #### STELLENVERZEICHNIS ######################################################
# TODO: Syntax für Stellenverweise Stellenverzeichnis = ZWW "STELLENVERZEICHNIS" [LemmaWort] ZWW Verweisliste
Verweisliste = { [LZ] "*" Stellenverweis }
Stellenverweis = BelegQuelle { [ABS] Stelle (NullVerweis | Verweis) }
NullVerweis = "{" "-" "}"
#### Schlüsselwörter ######################################################### #### Schlüsselwörter #########################################################
...@@ -150,7 +154,6 @@ GRI = "GRIECHISCH" | "GRIECH" | "GRIE" | "GRI" ...@@ -150,7 +154,6 @@ GRI = "GRIECHISCH" | "GRIECH" | "GRIE" | "GRI"
SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/ SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/
#### ZUSATZ an verschiedenen Stellen der Struktur ############################ #### ZUSATZ an verschiedenen Stellen der Struktur ############################
Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}" }+ Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}" }+
...@@ -163,10 +166,10 @@ Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "} ...@@ -163,10 +166,10 @@ Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}
#### BELEGE ################################################################## #### BELEGE ##################################################################
Belege = ["*"] Beleg { [LZ] "*" Beleg } Belege = ["*"] Beleg { [LZ] "*" Beleg }
Beleg = [Zusatz] (Verweis [Zitat]) | Zitat ["."] Beleg = [Zusatz] ((Verweis [Zitat]) | Zitat) [ABS Zusatz] ["."]
Zitat = Quellenangabe Zitat = Quellenangabe
{ SEM [ZW] [Anker] [Zusatz] <Stelle | Verweis> { SEM [ZW] [Anker] [Zusatz] <Stelle | Verweis>
[[ZW] BelegText] [[TR] Zusatz] } [[ZW] BelegText] [[LZ] Zusatz] }
Quellenangabe = [Anker] < BelegQuelle | Verweis > Quellenangabe = [Anker] < BelegQuelle | Verweis >
BelegQuelle = Autor DPP Werk BelegQuelle = Autor DPP Werk
...@@ -208,7 +211,8 @@ DEU_KLEIN = /(?!-)[a-zäöüßę_\-]+/~ ...@@ -208,7 +211,8 @@ DEU_KLEIN = /(?!-)[a-zäöüßę_\-]+/~
LAT_WORT = /(?!-)[a-z|\-_]+/~ LAT_WORT = /(?!-)[a-z|\-_]+/~
LAT_WORT_ERW = LAT_WORT | ( "(" LAT_WORT ")" ) LAT_WORT_ERW = LAT_WORT | ( "(" LAT_WORT ")" )
GROSSSCHRIFT = /(?!-)[A-ZÄÖÜ_\-]+/~ GROSSSCHRIFT = /(?!-)[A-ZÄÖÜ_\-]+/~
ZAHL = /[\d_]+/~ ZAHL = /[\d]+/~
SEITENZAHL = /[\d]+(?:\^(?:(?:\{[\d\w.]+\})|\w))?/~ # Zahl mit optionale folgendem hochgestelltem Buchstaben oder Text
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 ::
...@@ -217,7 +221,7 @@ TEIL_SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)/~ # Satzeichen bis au ...@@ -217,7 +221,7 @@ TEIL_SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)/~ # Satzeichen bis au
BUCHSTABENFOLGE = /\w+/~ BUCHSTABENFOLGE = /\w+/~
ZEICHENFOLGE = /[\w()-]+/~ ZEICHENFOLGE = /[\w()-]+/~
# EINZEILER = /[\w()-. \t]+/~ # EINZEILER = /[\w()-. \t]+/~
TEXTELEMENT = DEU_WORT | ZAHL | ROEMISCHE_ZAHL TEXTELEMENT = DEU_WORT | SEITENZAHL | ROEMISCHE_ZAHL
EINZEILER = { TEXTELEMENT | TEIL_SATZZEICHEN }+ EINZEILER = { TEXTELEMENT | TEIL_SATZZEICHEN }+
FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+ FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+
MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+ MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+
...@@ -243,4 +247,3 @@ FORTSETZUNG = !(ZWW /[^:\n]+[:]/) ...@@ -243,4 +247,3 @@ FORTSETZUNG = !(ZWW /[^:\n]+[:]/)
DATEI_ENDE = !/./ DATEI_ENDE = !/./
NIEMALS = /(?!.)/ NIEMALS = /(?!.)/
DUMMY = "EBNF-Grammatik an dieser Stelle noch nicht definiert!"
...@@ -71,7 +71,8 @@ class MLWGrammar(Grammar): ...@@ -71,7 +71,8 @@ class MLWGrammar(Grammar):
[VerweisPosition] [VerweisPosition]
{ UnterArtikel } { UnterArtikel }
ArtikelVerfasser ArtikelVerfasser
[LZ] DATEI_ENDE [Stellenverzeichnis]
[LZ] DATEI_ENDE
#### LEMMA-POSITION ########################################################## #### LEMMA-POSITION ##########################################################
...@@ -85,7 +86,7 @@ class MLWGrammar(Grammar): ...@@ -85,7 +86,7 @@ class MLWGrammar(Grammar):
LemmaWort = LAT_WORT LemmaWort = LAT_WORT
LemmaVarianten = LemmaVariante { [","] [ZW] LemmaVariante } LemmaVarianten = LemmaVariante { [";" | ","] [ZW] LemmaVariante } [ ABS Zusatz ]
LemmaVariante = LAT_WORT [Zusatz] LemmaVariante = LAT_WORT [Zusatz]
...@@ -172,7 +173,7 @@ class MLWGrammar(Grammar): ...@@ -172,7 +173,7 @@ class MLWGrammar(Grammar):
BelegPosition = ZWW ["BELEGE" [LZ]] Belege BelegPosition = ZWW ["BELEGE" [LZ]] Belege
#### VERWEIS-POSITION ##################################################### #### VERWEIS-POSITION ########################################################
VerweisPosition = ZWW "VERWEISE" VerweisPosition = ZWW "VERWEISE"
...@@ -188,9 +189,12 @@ class MLWGrammar(Grammar): ...@@ -188,9 +189,12 @@ class MLWGrammar(Grammar):
Name = { NAME | NAMENS_ABKÜRZUNG }+ Name = { NAME | NAMENS_ABKÜRZUNG }+
#### STELLENVERWEISE ######################################################### #### STELLENVERZEICHNIS ######################################################
# TODO: Syntax für Stellenverweise Stellenverzeichnis = ZWW "STELLENVERZEICHNIS" [LemmaWort] ZWW Verweisliste
Verweisliste = { [LZ] "*" Stellenverweis }
Stellenverweis = BelegQuelle { [ABS] Stelle (NullVerweis | Verweis) }
NullVerweis = "{" "-" "}"
#### Schlüsselwörter ######################################################### #### Schlüsselwörter #########################################################
...@@ -202,7 +206,6 @@ class MLWGrammar(Grammar): ...@@ -202,7 +206,6 @@ class MLWGrammar(Grammar):
SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/ SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/
#### ZUSATZ an verschiedenen Stellen der Struktur ############################ #### ZUSATZ an verschiedenen Stellen der Struktur ############################
Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}" }+ Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}" }+
...@@ -215,10 +218,10 @@ class MLWGrammar(Grammar): ...@@ -215,10 +218,10 @@ class MLWGrammar(Grammar):
#### BELEGE ################################################################## #### BELEGE ##################################################################
Belege = ["*"] Beleg { [LZ] "*" Beleg } Belege = ["*"] Beleg { [LZ] "*" Beleg }
Beleg = [Zusatz] (Verweis [Zitat]) | Zitat ["."] Beleg = [Zusatz] ((Verweis [Zitat]) | Zitat) [ABS Zusatz] ["."]
Zitat = Quellenangabe Zitat = Quellenangabe
{ SEM [ZW] [Anker] [Zusatz] <Stelle | Verweis> { SEM [ZW] [Anker] [Zusatz] <Stelle | Verweis>
[[ZW] BelegText] [[TR] Zusatz] } [[ZW] BelegText] [[LZ] Zusatz] }
Quellenangabe = [Anker] < BelegQuelle | Verweis > Quellenangabe = [Anker] < BelegQuelle | Verweis >
BelegQuelle = Autor DPP Werk BelegQuelle = Autor DPP Werk
...@@ -260,7 +263,8 @@ class MLWGrammar(Grammar): ...@@ -260,7 +263,8 @@ class MLWGrammar(Grammar):
LAT_WORT = /(?!-)[a-z|\-_]+/~ LAT_WORT = /(?!-)[a-z|\-_]+/~
LAT_WORT_ERW = LAT_WORT | ( "(" LAT_WORT ")" ) LAT_WORT_ERW = LAT_WORT | ( "(" LAT_WORT ")" )
GROSSSCHRIFT = /(?!-)[A-ZÄÖÜ_\-]+/~ GROSSSCHRIFT = /(?!-)[A-ZÄÖÜ_\-]+/~
ZAHL = /[\d_]+/~ ZAHL = /[\d]+/~
SEITENZAHL = /[\d]+(?:\^(?:(?:\{[\d\w.]+\})|\w))?/~ # Zahl mit optionale folgendem hochgestelltem Buchstaben oder Text
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 ::
...@@ -269,7 +273,7 @@ class MLWGrammar(Grammar): ...@@ -269,7 +273,7 @@ class MLWGrammar(Grammar):
BUCHSTABENFOLGE = /\w+/~ BUCHSTABENFOLGE = /\w+/~
ZEICHENFOLGE = /[\w()-]+/~ ZEICHENFOLGE = /[\w()-]+/~
# EINZEILER = /[\w()-. \t]+/~ # EINZEILER = /[\w()-. \t]+/~
TEXTELEMENT = DEU_WORT | ZAHL | ROEMISCHE_ZAHL TEXTELEMENT = DEU_WORT | SEITENZAHL | ROEMISCHE_ZAHL
EINZEILER = { TEXTELEMENT | TEIL_SATZZEICHEN }+ EINZEILER = { TEXTELEMENT | TEIL_SATZZEICHEN }+
FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+ FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+
MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+ MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+
...@@ -294,8 +298,6 @@ class MLWGrammar(Grammar): ...@@ -294,8 +298,6 @@ class MLWGrammar(Grammar):
DATEI_ENDE = !/./ DATEI_ENDE = !/./
NIEMALS = /(?!.)/ NIEMALS = /(?!.)/
DUMMY = "EBNF-Grammatik an dieser Stelle noch nicht definiert!"
""" """
DEU_WORT = Forward() DEU_WORT = Forward()
FREITEXT = Forward() FREITEXT = Forward()
...@@ -303,24 +305,24 @@ class MLWGrammar(Grammar): ...@@ -303,24 +305,24 @@ class MLWGrammar(Grammar):
Kategorien = Forward() Kategorien = Forward()
LAT_WORT = Forward() LAT_WORT = Forward()
LZ = Forward() LZ = Forward()
LemmaWort = Forward()
ROEMISCHE_ZAHL = Forward() ROEMISCHE_ZAHL = Forward()
SATZZEICHEN = Forward() SATZZEICHEN = Forward()
SEITENZAHL = Forward()
TEIL_SATZZEICHEN = Forward() TEIL_SATZZEICHEN = Forward()
TEXTELEMENT = Forward() TEXTELEMENT = Forward()
ZAHL = Forward()
ZWW = Forward() ZWW = Forward()
Zusatz = Forward() Zusatz = Forward()
flexion = Forward() flexion = Forward()
genus = Forward() genus = Forward()
wortart = Forward() wortart = Forward()
source_hash__ = "cf6864469af6da5c73aae7ea82cdceef" source_hash__ = "5acd793ecc09621740b44d8005c673d0"
parser_initialization__ = "upon instantiation" parser_initialization__ = "upon instantiation"
COMMENT__ = r'(?:\/\/.*)|(?:\/\*(?:.|\n)*?\*\/)' COMMENT__ = r'(?:\/\/.*)|(?:\/\*(?:.|\n)*?\*\/)'
WHITESPACE__ = r'[\t ]*' WHITESPACE__ = r'[\t ]*'
WSP__ = mixin_comment(whitespace=WHITESPACE__, comment=COMMENT__) WSP__ = mixin_comment(whitespace=WHITESPACE__, comment=COMMENT__)
wspL__ = '' wspL__ = ''
wspR__ = WSP__ wspR__ = WSP__
DUMMY = Token("EBNF-Grammatik an dieser Stelle noch nicht definiert!")
NIEMALS = RegExp('(?!.)') NIEMALS = RegExp('(?!.)')
DATEI_ENDE = NegativeLookahead(RegExp('.')) DATEI_ENDE = NegativeLookahead(RegExp('.'))
FORTSETZUNG = NegativeLookahead(Series(ZWW, RegExp('[^:\\n]+[:]'))) FORTSETZUNG = NegativeLookahead(Series(ZWW, RegExp('[^:\\n]+[:]')))
...@@ -340,13 +342,14 @@ class MLWGrammar(Grammar): ...@@ -340,13 +342,14 @@ class MLWGrammar(Grammar):
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, TEIL_SATZZEICHEN)) EINZEILER = OneOrMore(Alternative(TEXTELEMENT, TEIL_SATZZEICHEN))
TEXTELEMENT.set(Alternative(DEU_WORT, ZAHL, ROEMISCHE_ZAHL)) TEXTELEMENT.set(Alternative(DEU_WORT, SEITENZAHL, ROEMISCHE_ZAHL))
ZEICHENFOLGE = RE('[\\w()-]+') ZEICHENFOLGE = RE('[\\w()-]+')
BUCHSTABENFOLGE = RE('\\w+') BUCHSTABENFOLGE = RE('\\w+')
TEIL_SATZZEICHEN.set(RE('(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)')) TEIL_SATZZEICHEN.set(RE('(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)'))
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_]+')) SEITENZAHL.set(RE('[\\d]+(?:\\^(?:(?:\\{[\\d\\w.]+\\})|\\w))?'))
ZAHL = RE('[\\d]+')
GROSSSCHRIFT.set(RE('(?!-)[A-ZÄÖÜ_\\-]+')) GROSSSCHRIFT.set(RE('(?!-)[A-ZÄÖÜ_\\-]+'))
LAT_WORT_ERW = Alternative(LAT_WORT, Series(Token("("), LAT_WORT, Token(")"))) LAT_WORT_ERW = Alternative(LAT_WORT, Series(Token("("), LAT_WORT, Token(")")))
LAT_WORT.set(RE('(?!-)[a-z|\\-_]+')) LAT_WORT.set(RE('(?!-)[a-z|\\-_]+'))
...@@ -376,8 +379,8 @@ class MLWGrammar(Grammar): ...@@ -376,8 +379,8 @@ class MLWGrammar(Grammar):
BelegText = Series(RegExp('"'), ZeroOrMore(Alternative(MEHRZEILER, Zusatz)), RE('"'), Option(Token(".")), mandatory=2) BelegText = Series(RegExp('"'), ZeroOrMore(Alternative(MEHRZEILER, Zusatz)), RE('"'), Option(Token(".")), mandatory=2)
BelegQuelle = Series(Autor, DPP, Werk) BelegQuelle = Series(Autor, DPP, Werk)
Quellenangabe = Series(Option(Anker), SomeOf(BelegQuelle, Verweis)) Quellenangabe = Series(Option(Anker), SomeOf(BelegQuelle, Verweis))
Zitat = Series(Quellenangabe, ZeroOrMore(Series(SEM, Option(ZW), Option(Anker), Option(Zusatz), SomeOf(Stelle, Verweis), Option(Series(Option(ZW), BelegText)), Option(Series(Option(TR), Zusatz))))) Zitat = Series(Quellenangabe, ZeroOrMore(Series(SEM, Option(ZW), Option(Anker), Option(Zusatz), SomeOf(Stelle, Verweis), Option(Series(Option(ZW), BelegText)), Option(Series(Option(LZ), Zusatz)))))
Beleg = Alternative(Series(Option(Zusatz), Series(Verweis, Option(Zitat))), Series(Zitat, Option(Token(".")))) Beleg = Series(Option(Zusatz), Alternative(Series(Verweis, Option(Zitat)), Zitat), Option(Series(ABS, Zusatz)), Option(Token(".")))
Belege = Series(Option(Token("*")), Beleg, ZeroOrMore(Series(Option(LZ), Token("*"), Beleg))) Belege = Series(Option(Token("*")), Beleg, ZeroOrMore(Series(Option(LZ), Token("*"), Beleg)))
FreierZusatz = OneOrMore(Alternative(FREITEXT, VerweisKern, Verweis)) FreierZusatz = OneOrMore(Alternative(FREITEXT, VerweisKern, Verweis))
GemischterZusatz = Series(Alternative(Token("usu"), Token("plur. sensu sing.")), FreierZusatz) GemischterZusatz = Series(Alternative(Token("usu"), Token("plur. sensu sing.")), FreierZusatz)
...@@ -388,6 +391,10 @@ class MLWGrammar(Grammar): ...@@ -388,6 +391,10 @@ class MLWGrammar(Grammar):
GRI = Alternative(Token("GRIECHISCH"), Token("GRIECH"), Token("GRIE"), Token("GRI")) GRI = Alternative(Token("GRIECHISCH"), Token("GRIECH"), Token("GRIE"), Token("GRI"))
DEU = Alternative(Token("DEUTSCH"), Token("DEU")) DEU = Alternative(Token("DEUTSCH"), Token("DEU"))
LAT = Alternative(Token("LATEINISCH"), Token("LAT")) LAT = Alternative(Token("LATEINISCH"), Token("LAT"))
NullVerweis = Series(Token("{"), Token("-"), Token("}"))
Stellenverweis = Series(BelegQuelle, ZeroOrMore(Series(Option(ABS), Stelle, Alternative(NullVerweis, Verweis))))
Verweisliste = ZeroOrMore(Series(Option(LZ), Token("*"), Stellenverweis))
Stellenverzeichnis = Series(ZWW, Token("STELLENVERZEICHNIS"), Option(LemmaWort), ZWW, Verweisliste)
Name = OneOrMore(Alternative(NAME, NAMENS_ABKÜRZUNG)) Name = OneOrMore(Alternative(NAME, NAMENS_ABKÜRZUNG))
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"))
...@@ -435,13 +442,13 @@ class MLWGrammar(Grammar): ...@@ -435,13 +442,13 @@ 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 = Series(LAT_WORT, Option(Zusatz)) LemmaVariante = Series(LAT_WORT, Option(Zusatz))
LemmaVarianten = Series(LemmaVariante, ZeroOrMore(Series(Option(Token(",")), Option(ZW), LemmaVariante))) LemmaVarianten = Series(LemmaVariante, ZeroOrMore(Series(Option(Alternative(Token(";"), Token(","))), Option(ZW), LemmaVariante)), Option(Series(ABS, Zusatz)))
LemmaWort = Synonym(LAT_WORT) LemmaWort.set(Synonym(LAT_WORT))
gesichert = Token("$") gesichert = Token("$")
klassisch = Token("*") klassisch = Token("*")
Lemma = Series(Option(SomeOf(klassisch, gesichert)), LemmaWort) Lemma = Series(Option(SomeOf(klassisch, gesichert)), LemmaWort)
LemmaPosition = Series(Option(ABS), Token("LEMMA"), Option(LZ), Lemma, TR, Option(LemmaVarianten), GrammatikPosition, Option(Zusatz), mandatory=3) LemmaPosition = Series(Option(ABS), Token("LEMMA"), Option(LZ), Lemma, TR, Option(LemmaVarianten), GrammatikPosition, Option(Zusatz), mandatory=3)
Artikel = Series(Option(LZ), OneOrMore(LemmaPosition), Option(EtymologiePosition), Option(ArtikelKopf), BedeutungsPosition, Option(VerweisPosition), ZeroOrMore(UnterArtikel), ArtikelVerfasser, Option(LZ), DATEI_ENDE, mandatory=1) Artikel = Series(Option(LZ), OneOrMore(LemmaPosition), Option(EtymologiePosition), Option(ArtikelKopf), BedeutungsPosition, Option(VerweisPosition), ZeroOrMore(UnterArtikel), ArtikelVerfasser, Option(Stellenverzeichnis), Option(LZ), DATEI_ENDE, mandatory=1)
root__ = Artikel root__ = Artikel
def get_grammar() -> MLWGrammar: def get_grammar() -> MLWGrammar:
...@@ -498,6 +505,7 @@ MLW_AST_transformation_table = { ...@@ -498,6 +505,7 @@ MLW_AST_transformation_table = {
"Zusatz": [], "Zusatz": [],
"ArtikelVerfasser": [], "ArtikelVerfasser": [],
"Name": [], "Name": [],
"Stelle": [reduce_single_child],
"SW_LAT": [replace_or_reduce], "SW_LAT": [replace_or_reduce],
"SW_DEU": [replace_or_reduce], "SW_DEU": [replace_or_reduce],
"SW_GRIECH": [replace_or_reduce], "SW_GRIECH": [replace_or_reduce],
......
...@@ -141,4 +141,12 @@ F1: """ ...@@ -141,4 +141,12 @@ F1: """
""" """
[fail:FREITEXT] [fail:FREITEXT]
F1: """Text -> Verweis""" F1: """Text -> Verweis"""
\ No newline at end of file
[match:SEITENZAHL]
M1: "123"
M2: "123^b"
M3: "4^{capit.}"
\ No newline at end of file
...@@ -32,6 +32,11 @@ M9: """Arbeo: Emm.; 16 p. 49,17 "ex imperio principis ... in ospiti sui scuriam ...@@ -32,6 +32,11 @@ M9: """Arbeo: Emm.; 16 p. 49,17 "ex imperio principis ... in ospiti sui scuriam
{episcopus} {persaepe} {v. et {=> p. 1407, 57|ziel}}""" {episcopus} {persaepe} {v. et {=> p. 1407, 57|ziel}}"""
M10:"""Arbeo: Emm.; 16 p. 49,17 "ex imperio principis ... in ospiti sui scuriam ... deductus est" M10:"""Arbeo: Emm.; 16 p. 49,17 "ex imperio principis ... in ospiti sui scuriam ... deductus est"
{episcopus;; persaepe;; v. et {=> p. 1407, 57|ziel}}""" {episcopus;; persaepe;; v. et {=> p. 1407, 57|ziel}}"""
M11:"""Otto Frising.: gest.;
1,24 p. 37,12
"Romanorum principem adeunt apocrisiarii imperatoris Constantinopolitani tam
confederationis vinculum ... inter duo imperia, Hesperiae videlicet et orientis,
renovare cupientes quam {eqs.}" {al}."""
[fail:Beleg] [fail:Beleg]
F1: "* nächster Beleg" F1: "* nächster Beleg"
...@@ -43,6 +48,7 @@ M1: """{saepe}""" ...@@ -43,6 +48,7 @@ M1: """{saepe}"""
[match:Stelle] [match:Stelle]
M1: """app. A 6 p. 137,30 """ M1: """app. A 6 p. 137,30 """
M2: """5 p. 976^A"""
[fail:Werk] [fail:Werk]
......
[match:Stellenverzeichnis]
M1: """
STELLENVERZEICHNIS fascitergula
* Form.: Sangall.; 39 p. 421,16 {=> URL_1}
* Libri: confrat. I; app. A 6 p. 137,30 {-} // {-} bedeutet: keine URL vorhanden
* Catal.: thes. Germ.;
18,7 {=> URL_3}
28,11 (post 851) {=> URL_4}
76,15 {=> URL_5}
40,5 {=> URL_6}
129a,5 {=> URL_7}
24,8 {=> URL_8}
114,8 {=> URL_9}
6,24 {-}
92,6 {-}
21,20 IIII {=> URL_10}"""
...@@ -645,4 +645,42 @@ Fail-test "f1" ...@@ -645,4 +645,42 @@ Fail-test "f1"
-------------- --------------
### Test-code: ### Test-code:
Text -> Verweis Text -> Verweis
\ No newline at end of file
Test of parser: "SEITENZAHL"
============================
Match-test "m1"
---------------
### Test-code:
123
### AST
(SEITENZAHL
"123"
)
Match-test "m2"
---------------
### Test-code:
123^b
### AST
(SEITENZAHL
"123^b"
)
Match-test "m3"
---------------
### Test-code:
4^{capit.}
### AST
(SEITENZAHL
"4^{capit.}"
)
\ No newline at end of file
...@@ -36,7 +36,7 @@ from MLWCompiler import get_grammar, get_transformer ...@@ -36,7 +36,7 @@ from MLWCompiler import get_grammar, get_transformer
with toolkit.logging(True): with toolkit.logging(True):
error_report = testing.grammar_suite('grammar_tests', get_grammar, get_transformer, error_report = testing.grammar_suite('grammar_tests', get_grammar, get_transformer,
fn_patterns=['*_test*'], fn_patterns=['08_test*'],
verbose=True) verbose=True)
print(error_report) print(error_report)
print(error_report[:error_report.find('\n')]) print(error_report[:error_report.find('\n')])
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment