The expiration time for new job artifacts in CI/CD pipelines is now 30 days (GitLab default). Previously generated artifacts in already completed jobs will not be affected by the change. The latest artifacts for all jobs in the latest successful pipelines will be kept. More information: https://gitlab.lrz.de/help/user/admin_area/settings/continuous_integration.html#default-artifacts-expiration

Commit e4813a41 authored by di68kap's avatar di68kap
Browse files

- MLW ergänzt...

parent 2b713018
LEMMA *facitergula
fascitergula, facietergula, facistergula, facitercula {sim.}
fascitergula
facietergula
facistergula
facitercula {sim.}
GRAMMATIK
......@@ -18,8 +21,8 @@ SCHREIBWEISE
BEDEUTUNG
LAT pannus, faciale, sudarium --
DEU Gesichts-, Schweißtuch {usu liturg.; de re v. {=> eintrag/ibi_X}}:
LAT pannus, faciale, sudarium
DEU Gesichts-, Schweißtuch {usu liturg.; de re v. {=> eintrag/ibi_X}}
* Catal.: thes. Germ.; 28,11 (post 851) "-um III".
* Form.: Sangall.; {#ibi_2} 39 p. 421,16
......@@ -34,7 +37,8 @@ DEU Gesichts-, Schweißtuch {usu liturg.; de re v. {=> eintrag/ibi_X}}:
BEDEUTUNG
LAT capital, rica -- DEU Kopftuch:
LAT capital, rica
DEU Kopftuch
* Transl.: Libor. I; 32
"raptis feminarum -is (fa[s]citergiis {var. l.})."
......@@ -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."
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,6 +19,7 @@ Artikel = [LZ]
[VerweisPosition]
{ UnterArtikel }
ArtikelVerfasser
[Stellenverzeichnis]
[LZ] DATEI_ENDE
......@@ -33,7 +34,7 @@ Lemma = [< klassisch | gesichert >] LemmaWort
LemmaWort = LAT_WORT
LemmaVarianten = LemmaVariante { [","] [ZW] LemmaVariante }
LemmaVarianten = LemmaVariante { [";" | ","] [ZW] LemmaVariante } [ ABS Zusatz ]
LemmaVariante = LAT_WORT [Zusatz]
......@@ -120,7 +121,7 @@ BedeutungsQualifikation = Zusatz # "[" Gegenstand DPP (Verweis | EINZEILER) §"]
BelegPosition = ZWW ["BELEGE" [LZ]] Belege
#### VERWEIS-POSITION #####################################################
#### VERWEIS-POSITION ########################################################
VerweisPosition = ZWW "VERWEISE"
......@@ -136,9 +137,12 @@ ArtikelVerfasser = ZWW ("AUTORIN" | "AUTOR") Name
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 #########################################################
......@@ -150,7 +154,6 @@ GRI = "GRIECHISCH" | "GRIECH" | "GRIE" | "GRI"
SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/
#### ZUSATZ an verschiedenen Stellen der Struktur ############################
Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}" }+
......@@ -163,10 +166,10 @@ Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}
#### BELEGE ##################################################################
Belege = ["*"] Beleg { [LZ] "*" Beleg }
Beleg = [Zusatz] (Verweis [Zitat]) | Zitat ["."]
Beleg = [Zusatz] ((Verweis [Zitat]) | Zitat) [ABS Zusatz] ["."]
Zitat = Quellenangabe
{ SEM [ZW] [Anker] [Zusatz] <Stelle | Verweis>
[[ZW] BelegText] [[TR] Zusatz] }
[[ZW] BelegText] [[LZ] Zusatz] }
Quellenangabe = [Anker] < BelegQuelle | Verweis >
BelegQuelle = Autor DPP Werk
......@@ -208,7 +211,8 @@ DEU_KLEIN = /(?!-)[a-zäöüßę_\-]+/~
LAT_WORT = /(?!-)[a-z|\-_]+/~
LAT_WORT_ERW = LAT_WORT | ( "(" LAT_WORT ")" )
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])/~
SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|(?:-(?!-))|[.()\[\]]+)/~ # div. Satzzeichen, aber keine doppelten ,, ;; oder ::
......@@ -217,7 +221,7 @@ TEIL_SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)/~ # Satzeichen bis au
BUCHSTABENFOLGE = /\w+/~
ZEICHENFOLGE = /[\w()-]+/~
# EINZEILER = /[\w()-. \t]+/~
TEXTELEMENT = DEU_WORT | ZAHL | ROEMISCHE_ZAHL
TEXTELEMENT = DEU_WORT | SEITENZAHL | ROEMISCHE_ZAHL
EINZEILER = { TEXTELEMENT | TEIL_SATZZEICHEN }+
FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+
MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+
......@@ -243,4 +247,3 @@ FORTSETZUNG = !(ZWW /[^:\n]+[:]/)
DATEI_ENDE = !/./
NIEMALS = /(?!.)/
DUMMY = "EBNF-Grammatik an dieser Stelle noch nicht definiert!"
......@@ -71,6 +71,7 @@ class MLWGrammar(Grammar):
[VerweisPosition]
{ UnterArtikel }
ArtikelVerfasser
[Stellenverzeichnis]
[LZ] DATEI_ENDE
......@@ -85,7 +86,7 @@ class MLWGrammar(Grammar):
LemmaWort = LAT_WORT
LemmaVarianten = LemmaVariante { [","] [ZW] LemmaVariante }
LemmaVarianten = LemmaVariante { [";" | ","] [ZW] LemmaVariante } [ ABS Zusatz ]
LemmaVariante = LAT_WORT [Zusatz]
......@@ -172,7 +173,7 @@ class MLWGrammar(Grammar):
BelegPosition = ZWW ["BELEGE" [LZ]] Belege
#### VERWEIS-POSITION #####################################################
#### VERWEIS-POSITION ########################################################
VerweisPosition = ZWW "VERWEISE"
......@@ -188,9 +189,12 @@ class MLWGrammar(Grammar):
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 #########################################################
......@@ -202,7 +206,6 @@ class MLWGrammar(Grammar):
SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/
#### ZUSATZ an verschiedenen Stellen der Struktur ############################
Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}" }+
......@@ -215,10 +218,10 @@ class MLWGrammar(Grammar):
#### BELEGE ##################################################################
Belege = ["*"] Beleg { [LZ] "*" Beleg }
Beleg = [Zusatz] (Verweis [Zitat]) | Zitat ["."]
Beleg = [Zusatz] ((Verweis [Zitat]) | Zitat) [ABS Zusatz] ["."]
Zitat = Quellenangabe
{ SEM [ZW] [Anker] [Zusatz] <Stelle | Verweis>
[[ZW] BelegText] [[TR] Zusatz] }
[[ZW] BelegText] [[LZ] Zusatz] }
Quellenangabe = [Anker] < BelegQuelle | Verweis >
BelegQuelle = Autor DPP Werk
......@@ -260,7 +263,8 @@ class MLWGrammar(Grammar):
LAT_WORT = /(?!-)[a-z|\-_]+/~
LAT_WORT_ERW = LAT_WORT | ( "(" LAT_WORT ")" )
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])/~
SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|(?:-(?!-))|[.()\[\]]+)/~ # div. Satzzeichen, aber keine doppelten ,, ;; oder ::
......@@ -269,7 +273,7 @@ class MLWGrammar(Grammar):
BUCHSTABENFOLGE = /\w+/~
ZEICHENFOLGE = /[\w()-]+/~
# EINZEILER = /[\w()-. \t]+/~
TEXTELEMENT = DEU_WORT | ZAHL | ROEMISCHE_ZAHL
TEXTELEMENT = DEU_WORT | SEITENZAHL | ROEMISCHE_ZAHL
EINZEILER = { TEXTELEMENT | TEIL_SATZZEICHEN }+
FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+
MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+
......@@ -294,8 +298,6 @@ class MLWGrammar(Grammar):
DATEI_ENDE = !/./
NIEMALS = /(?!.)/
DUMMY = "EBNF-Grammatik an dieser Stelle noch nicht definiert!"
"""
DEU_WORT = Forward()
FREITEXT = Forward()
......@@ -303,24 +305,24 @@ class MLWGrammar(Grammar):
Kategorien = Forward()
LAT_WORT = Forward()
LZ = Forward()
LemmaWort = Forward()
ROEMISCHE_ZAHL = Forward()
SATZZEICHEN = Forward()
SEITENZAHL = Forward()
TEIL_SATZZEICHEN = Forward()
TEXTELEMENT = Forward()
ZAHL = Forward()
ZWW = Forward()
Zusatz = Forward()
flexion = Forward()
genus = Forward()
wortart = Forward()
source_hash__ = "cf6864469af6da5c73aae7ea82cdceef"
source_hash__ = "5acd793ecc09621740b44d8005c673d0"
parser_initialization__ = "upon instantiation"
COMMENT__ = r'(?:\/\/.*)|(?:\/\*(?:.|\n)*?\*\/)'
WHITESPACE__ = r'[\t ]*'
WSP__ = mixin_comment(whitespace=WHITESPACE__, comment=COMMENT__)
wspL__ = ''
wspR__ = WSP__
DUMMY = Token("EBNF-Grammatik an dieser Stelle noch nicht definiert!")
NIEMALS = RegExp('(?!.)')
DATEI_ENDE = NegativeLookahead(RegExp('.'))
FORTSETZUNG = NegativeLookahead(Series(ZWW, RegExp('[^:\\n]+[:]')))
......@@ -340,13 +342,14 @@ class MLWGrammar(Grammar):
MEHRZEILER = OneOrMore(Alternative(FREITEXT, RegExp('\\s+(?=[\\w,;:.\\(\\)\\-])')))
FREITEXT.set(OneOrMore(Alternative(TEXTELEMENT, SATZZEICHEN, GROSSSCHRIFT)))
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()-]+')
BUCHSTABENFOLGE = RE('\\w+')
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])'))
ZAHL.set(RE('[\\d_]+'))
SEITENZAHL.set(RE('[\\d]+(?:\\^(?:(?:\\{[\\d\\w.]+\\})|\\w))?'))
ZAHL = RE('[\\d]+')
GROSSSCHRIFT.set(RE('(?!-)[A-ZÄÖÜ_\\-]+'))
LAT_WORT_ERW = Alternative(LAT_WORT, Series(Token("("), LAT_WORT, Token(")")))
LAT_WORT.set(RE('(?!-)[a-z|\\-_]+'))
......@@ -376,8 +379,8 @@ class MLWGrammar(Grammar):
BelegText = Series(RegExp('"'), ZeroOrMore(Alternative(MEHRZEILER, Zusatz)), RE('"'), Option(Token(".")), mandatory=2)
BelegQuelle = Series(Autor, DPP, Werk)
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)))))
Beleg = Alternative(Series(Option(Zusatz), Series(Verweis, Option(Zitat))), Series(Zitat, Option(Token("."))))
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 = 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)))
FreierZusatz = OneOrMore(Alternative(FREITEXT, VerweisKern, Verweis))
GemischterZusatz = Series(Alternative(Token("usu"), Token("plur. sensu sing.")), FreierZusatz)
......@@ -388,6 +391,10 @@ class MLWGrammar(Grammar):
GRI = Alternative(Token("GRIECHISCH"), Token("GRIECH"), Token("GRIE"), Token("GRI"))
DEU = Alternative(Token("DEUTSCH"), Token("DEU"))
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))
ArtikelVerfasser = Series(ZWW, Alternative(Token("AUTORIN"), Token("AUTOR")), Name)
UnterArtikel = Series(ZWW, Token("UNTER-ARTIKEL"))
......@@ -435,13 +442,13 @@ class MLWGrammar(Grammar):
Grammatik = Series(wortart, ABS, flexion, Option(genus), mandatory=1)
GrammatikPosition = Series(ZWW, Token("GRAMMATIK"), Option(LZ), Grammatik, ZeroOrMore(Series(ABS, GrammatikVariante)), mandatory=3)
LemmaVariante = Series(LAT_WORT, Option(Zusatz))
LemmaVarianten = Series(LemmaVariante, ZeroOrMore(Series(Option(Token(",")), Option(ZW), LemmaVariante)))
LemmaWort = Synonym(LAT_WORT)
LemmaVarianten = Series(LemmaVariante, ZeroOrMore(Series(Option(Alternative(Token(";"), Token(","))), Option(ZW), LemmaVariante)), Option(Series(ABS, Zusatz)))
LemmaWort.set(Synonym(LAT_WORT))
gesichert = Token("$")
klassisch = Token("*")
Lemma = Series(Option(SomeOf(klassisch, gesichert)), LemmaWort)
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
def get_grammar() -> MLWGrammar:
......@@ -498,6 +505,7 @@ MLW_AST_transformation_table = {
"Zusatz": [],
"ArtikelVerfasser": [],
"Name": [],
"Stelle": [reduce_single_child],
"SW_LAT": [replace_or_reduce],
"SW_DEU": [replace_or_reduce],
"SW_GRIECH": [replace_or_reduce],
......
......@@ -142,3 +142,11 @@ F1: """
[fail:FREITEXT]
F1: """Text -> Verweis"""
[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
{episcopus} {persaepe} {v. et {=> p. 1407, 57|ziel}}"""
M10:"""Arbeo: Emm.; 16 p. 49,17 "ex imperio principis ... in ospiti sui scuriam ... deductus est"
{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]
F1: "* nächster Beleg"
......@@ -43,6 +48,7 @@ M1: """{saepe}"""
[match:Stelle]
M1: """app. A 6 p. 137,30 """
M2: """5 p. 976^A"""
[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}"""
......@@ -646,3 +646,41 @@ Fail-test "f1"
### Test-code:
Text -> Verweis
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
with toolkit.logging(True):
error_report = testing.grammar_suite('grammar_tests', get_grammar, get_transformer,
fn_patterns=['*_test*'],
fn_patterns=['08_test*'],
verbose=True)
print(error_report)
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