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 1f237326 authored by di68kap's avatar di68kap
Browse files

- MLW: Verbesserung der Grammatik (MLW.ebnf)

parent e45f01a4
......@@ -232,7 +232,7 @@ BEDEUTUNG
UNTER_UNTER_BEDEUTUNG
LATEINISCH comitatus (imperatoris)
DEUTSCH Gefolge (des Kaisers; spectat ad militiam)
DEUTSCH Gefolge, Gefolge des Kaisers {spectat ad militiam}
* Nith.: hist.; 1,4 p. 5,21
"imperator una cum omni, quod habebat, imperio, tres reges filiique eius adversus
......
......@@ -109,18 +109,17 @@ U5Bedeutung = { ZWW "UUUUU_BEDEUTUNG" [LZ] §UntersteBedeutung }+
Bedeutung = (Interpretamente | Bedeutungskategorie) [BelegPosition]
UntersteBedeutung = Interpretamente [BelegPosition]
Bedeutungskategorie = { EINZEILER [LZ] [Zusatz] [LZ] } §":"
Interpretamente = LateinischeBedeutung ("--"| LZ) §DeutscheBedeutung [":"]
LateinischeBedeutung = LAT [LZ] [Zusatz] LateinischerAusdruck
DeutscheBedeutung = DEU [LZ] [Zusatz] DeutscherAusdruck
LateinischerAusdruck = LAT_WORT { [ZW] ((/[,;]?/~ [ZW] (LAT_WORT | ("(" LateinischerAusdruck ")")))
| Zusatz) }
DeutscherAusdruck = DEU_WORT { [ZW] ((/[,;]?/~ [ZW] (DEU_WORT | ("(" DeutscherAusdruck")")))
| Zusatz) }
# LateinischerAusdruck = LAT_WORT_ERW { //~ LAT_WORT_ERW } [[LZ] BedeutungsQualifikation]
# DeutscherAusdruck = DEU_WORT_ERW { //~ DEU_WORT_ERW } [[LZ] BedeutungsQualifikation]
# LateinischerAusdruck = LAT_WORT [[LZ] BedeutungsQualifikation]
# DeutscherAusdruck = DEU_WORT [[LZ] BedeutungsQualifikation]
Interpretamente = LateinischeBedeutung (LZ | " " | "--") §DeutscheBedeutung [":"]
LateinischeBedeutung = LAT [ZW] LateinischerAusdruck { "," LateinischerAusdruck }
DeutscheBedeutung = DEU [ZW] DeutscherAusdruck { "," DeutscherAusdruck }
LateinischerAusdruck = { <(LAT_WORT | "(" { LAT_WORT }+ ")") [Zusatz]> }+
DeutscherAusdruck = { <(DEU_WORT | "(" { DEU_WORT }+ ")") [Zusatz]> }+
LAT = "LATEINISCH" | "LAT"
DEU = "DEUTSCH" | "DEU"
GRI = "GRIECHISCH" | "GRIECH" | "GRIE" | "GRI"
BelegPosition = ZWW ["BELEGE" [LZ]] Belege
......@@ -149,15 +148,6 @@ Stellenverweis = BelegQuelle { [ABS] Stelle (NullVerweis | Verweis) }
NullVerweis = "{" "-" "}"
#### Schlüsselwörter #########################################################
LAT = "LATEINISCH" | "LAT"
DEU = "DEUTSCH" | "DEU"
GRI = "GRIECHISCH" | "GRIECH" | "GRIE" | "GRI"
SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/
#### ZUSATZ an verschiedenen Stellen der Struktur ############################
Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}" }+
......@@ -171,16 +161,14 @@ Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}
Belege = ["*"] Beleg { [LZ] "*" Beleg }
Beleg = [Zusatz] ((Verweis [Zitat]) | Zitat) [ABS Zusatz] ["."]
Zitat = Quellenangabe
{ SEM [ZW] [Anker] [Zusatz] <Stelle | Verweis>
[[ZW] BelegText] [[LZ] Zusatz] }
Zitat = Quellenangabe { SEM [ZW] BelegStelle }
Quellenangabe = [<Anker | Zusatz>] < BelegQuelle | Verweis >
BelegQuelle = Autor §DPP [Werk] &SEM
BelegStelle = [<Anker | Zusatz>] (Stelle [[ZW] BelegText] | Verweis) [[ZW] Zusatz]
BelegText = /"/ { MEHRZEILER | Zusatz } §/"/~ ["."]
Autor = EINZEILER [<Anker | Verweis | Zusatz>]
Werk = <EINZEILER [<Anker | Verweis | Zusatz>]>
Autor = EINZEILER
Werk = EINZEILER
Stelle = EINZEILER
Datierung = EINZEILER
Edition = EINZEILER
......@@ -206,18 +194,17 @@ NAMENS_ABKÜRZUNG = /[A-ZÄÖÜÁÀÂÓÒÔÚÙÛ]\./~
NAME = /[A-ZÄÖÜÁÀÓÒÚÙÂÔÛ][a-zäöüßáàâóòôúùû]+/~
DEU_WORT = DEU_GROSS | DEU_KLEIN | GROSSBUCHSTABE
# DEU_WORT_ERW = DEU_WORT | (["("] DEU_WORT [")"])
DEU_GROSS = /[A-ZÄÖÜ][a-zäöüßę_\-.]+/~
GROSSBUCHSTABE = /[A-ZÄÖÜ](?=[ \t\n])/~
KLEINBUCHSTABE = /[a-zäöü](?=[ \t\n])/~
GRI_BUCHSTABE = /[αβγδεζηθικλμνξοπρςστυφχψω]/
DEU_KLEIN = /(?!--)[a-zäöüßęõ_\-.]+/~
LAT_WORT = /(?!--)[a-z|\-_.]+/~
# LAT_WORT_ERW = LAT_WORT | (["("] LAT_WORT [")"])
GROSSSCHRIFT = /(?!--)[A-ZÄÖÜ_\-]+/~
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])/~
SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/
SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|(?:-(?!-))|[.()\[\]]+)|[`''‘’?]/~ # div. Satzzeichen, aber keine doppelten ,, ;; oder ::
TEIL_SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)|[`''‘’?]/~ # Satzeichen bis auf Doppelpunkt ":", Semikolon ";" und eckige Klammern
......
......@@ -161,18 +161,17 @@ class MLWGrammar(Grammar):
Bedeutung = (Interpretamente | Bedeutungskategorie) [BelegPosition]
UntersteBedeutung = Interpretamente [BelegPosition]
Bedeutungskategorie = { EINZEILER [LZ] [Zusatz] [LZ] } §":"
Interpretamente = LateinischeBedeutung ("--"| LZ) §DeutscheBedeutung [":"]
LateinischeBedeutung = LAT [LZ] [Zusatz] LateinischerAusdruck
DeutscheBedeutung = DEU [LZ] [Zusatz] DeutscherAusdruck
LateinischerAusdruck = LAT_WORT { [ZW] ((/[,;]?/~ [ZW] (LAT_WORT | ("(" LateinischerAusdruck ")")))
| Zusatz) }
DeutscherAusdruck = DEU_WORT { [ZW] ((/[,;]?/~ [ZW] (DEU_WORT | ("(" DeutscherAusdruck")")))
| Zusatz) }
# LateinischerAusdruck = LAT_WORT_ERW { //~ LAT_WORT_ERW } [[LZ] BedeutungsQualifikation]
# DeutscherAusdruck = DEU_WORT_ERW { //~ DEU_WORT_ERW } [[LZ] BedeutungsQualifikation]
# LateinischerAusdruck = LAT_WORT [[LZ] BedeutungsQualifikation]
# DeutscherAusdruck = DEU_WORT [[LZ] BedeutungsQualifikation]
Interpretamente = LateinischeBedeutung (LZ | " " | "--") §DeutscheBedeutung [":"]
LateinischeBedeutung = LAT [ZW] LateinischerAusdruck { "," LateinischerAusdruck }
DeutscheBedeutung = DEU [ZW] DeutscherAusdruck { "," DeutscherAusdruck }
LateinischerAusdruck = { <(LAT_WORT | "(" { LAT_WORT }+ ")") [Zusatz]> }+
DeutscherAusdruck = { <(DEU_WORT | "(" { DEU_WORT }+ ")") [Zusatz]> }+
LAT = "LATEINISCH" | "LAT"
DEU = "DEUTSCH" | "DEU"
GRI = "GRIECHISCH" | "GRIECH" | "GRIE" | "GRI"
BelegPosition = ZWW ["BELEGE" [LZ]] Belege
......@@ -201,15 +200,6 @@ class MLWGrammar(Grammar):
NullVerweis = "{" "-" "}"
#### Schlüsselwörter #########################################################
LAT = "LATEINISCH" | "LAT"
DEU = "DEUTSCH" | "DEU"
GRI = "GRIECHISCH" | "GRIECH" | "GRIE" | "GRI"
SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/
#### ZUSATZ an verschiedenen Stellen der Struktur ############################
Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}" }+
......@@ -223,16 +213,14 @@ class MLWGrammar(Grammar):
Belege = ["*"] Beleg { [LZ] "*" Beleg }
Beleg = [Zusatz] ((Verweis [Zitat]) | Zitat) [ABS Zusatz] ["."]
Zitat = Quellenangabe
{ SEM [ZW] [Anker] [Zusatz] <Stelle | Verweis>
[[ZW] BelegText] [[LZ] Zusatz] }
Zitat = Quellenangabe { SEM [ZW] BelegStelle }
Quellenangabe = [<Anker | Zusatz>] < BelegQuelle | Verweis >
BelegQuelle = Autor §DPP [Werk] &SEM
BelegStelle = [<Anker | Zusatz>] (Stelle [[ZW] BelegText] | Verweis) [[ZW] Zusatz]
BelegText = /"/ { MEHRZEILER | Zusatz } §/"/~ ["."]
Autor = EINZEILER [<Anker | Verweis | Zusatz>]
Werk = <EINZEILER [<Anker | Verweis | Zusatz>]>
Autor = EINZEILER
Werk = EINZEILER
Stelle = EINZEILER
Datierung = EINZEILER
Edition = EINZEILER
......@@ -258,18 +246,17 @@ class MLWGrammar(Grammar):
NAME = /[A-ZÄÖÜÁÀÓÒÚÙÂÔÛ][a-zäöüßáàâóòôúùû]+/~
DEU_WORT = DEU_GROSS | DEU_KLEIN | GROSSBUCHSTABE
# DEU_WORT_ERW = DEU_WORT | (["("] DEU_WORT [")"])
DEU_GROSS = /[A-ZÄÖÜ][a-zäöüßę_\-.]+/~
GROSSBUCHSTABE = /[A-ZÄÖÜ](?=[ \t\n])/~
KLEINBUCHSTABE = /[a-zäöü](?=[ \t\n])/~
GRI_BUCHSTABE = /[αβγδεζηθικλμνξοπρςστυφχψω]/
DEU_KLEIN = /(?!--)[a-zäöüßęõ_\-.]+/~
LAT_WORT = /(?!--)[a-z|\-_.]+/~
# LAT_WORT_ERW = LAT_WORT | (["("] LAT_WORT [")"])
GROSSSCHRIFT = /(?!--)[A-ZÄÖÜ_\-]+/~
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])/~
SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/
SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|(?:-(?!-))|[.()\[\]]+)|[`''‘’?]/~ # div. Satzzeichen, aber keine doppelten ,, ;; oder ::
TEIL_SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)|[`''‘’?]/~ # Satzeichen bis auf Doppelpunkt ":", Semikolon ";" und eckige Klammern
......@@ -303,12 +290,10 @@ class MLWGrammar(Grammar):
NIEMALS = /(?!.)/
"""
DEU_WORT = Forward()
DeutscherAusdruck = Forward()
FREITEXT = Forward()
GROSSSCHRIFT = Forward()
Kategorien = Forward()
LZ = Forward()
LateinischerAusdruck = Forward()
LemmaWort = Forward()
ROEMISCHE_ZAHL = Forward()
SATZZEICHEN = Forward()
......@@ -320,7 +305,7 @@ class MLWGrammar(Grammar):
flexion = Forward()
genus = Forward()
wortart = Forward()
source_hash__ = "464ddc02bebdae51c3aef3bbee12f793"
source_hash__ = "d202980f0e4a3730229a6772c9dfc373"
parser_initialization__ = "upon instantiation"
COMMENT__ = r'(?:\/\/.*)|(?:\/\*(?:.|\n)*?\*\/)'
WHITESPACE__ = r'[\t ]*'
......@@ -351,6 +336,7 @@ class MLWGrammar(Grammar):
BUCHSTABENFOLGE = RE('\\w+')
TEIL_SATZZEICHEN.set(RE("(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)|[`''‘’?]"))
SATZZEICHEN.set(RE("(?!->)(?:(?:,(?!,))|(?:;(?!;))|(?::(?!:))|(?:-(?!-))|[.()\\[\\]]+)|[`''‘’?]"))
SCHLUESSELWORT = Series(OneOrMore(Series(RE(''), RegExp('\\n'))), NegativeLookahead(ROEMISCHE_ZAHL), RegExp('[A-ZÄÖÜ]{3,}\\s+'))
ROEMISCHE_ZAHL.set(RE('(?=[MDCLXVI])M*(C[MD]|D?C*)(X[CL]|L?X*)(I[XV]|V?I*)(?=[^\\w])'))
SEITENZAHL.set(RE('[\\d]+(?:\\^(?:(?:\\{[\\d\\w.]+\\})|\\w))?'))
ZAHL = RE('[\\d]+')
......@@ -376,12 +362,13 @@ class MLWGrammar(Grammar):
Edition = Synonym(EINZEILER)
Datierung = Synonym(EINZEILER)
Stelle = Synonym(EINZEILER)
Werk = AllOf(EINZEILER, Option(SomeOf(Anker, Verweis, Zusatz)))
Autor = Series(EINZEILER, Option(SomeOf(Anker, Verweis, Zusatz)))
Werk = Synonym(EINZEILER)
Autor = Synonym(EINZEILER)
BelegText = Series(RegExp('"'), ZeroOrMore(Alternative(MEHRZEILER, Zusatz)), RE('"'), Option(Token(".")), mandatory=2)
BelegStelle = Series(Option(SomeOf(Anker, Zusatz)), Alternative(Series(Stelle, Option(Series(Option(ZW), BelegText))), Verweis), Option(Series(Option(ZW), Zusatz)))
BelegQuelle = Series(Autor, DPP, Option(Werk), Lookahead(SEM), mandatory=1)
Quellenangabe = Series(Option(SomeOf(Anker, Zusatz)), 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(LZ), Zusatz)))))
Zitat = Series(Quellenangabe, ZeroOrMore(Series(SEM, Option(ZW), BelegStelle)))
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))
......@@ -389,10 +376,6 @@ class MLWGrammar(Grammar):
FesterZusatz = Alternative(Token("adde"), Token("sape"), Token("persaepe"))
EinzelnerZusatz = Alternative(FesterZusatz, GemischterZusatz, FreierZusatz)
Zusatz.set(OneOrMore(Series(Token("{"), NegativeLookahead(Alternative(Token("=>"), Token("#"))), EinzelnerZusatz, ZeroOrMore(Series(Token(";;"), EinzelnerZusatz)), Token("}"), mandatory=2)))
SCHLUESSELWORT = Series(OneOrMore(Series(RE(''), RegExp('\\n'))), NegativeLookahead(ROEMISCHE_ZAHL), RegExp('[A-ZÄÖÜ]{3,}\\s+'))
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))
......@@ -402,11 +385,14 @@ class MLWGrammar(Grammar):
UnterArtikel = Series(ZWW, Token("UNTER-ARTIKEL"))
VerweisPosition = Series(ZWW, Token("VERWEISE"))
BelegPosition = Series(ZWW, Option(Series(Token("BELEGE"), Option(LZ))), Belege)
DeutscherAusdruck.set(Series(DEU_WORT, ZeroOrMore(Series(Option(ZW), Alternative(Series(RE('[,;]?'), Option(ZW), Alternative(DEU_WORT, Series(Token("("), DeutscherAusdruck, Token(")")))), Zusatz)))))
LateinischerAusdruck.set(Series(LAT_WORT, ZeroOrMore(Series(Option(ZW), Alternative(Series(RE('[,;]?'), Option(ZW), Alternative(LAT_WORT, Series(Token("("), LateinischerAusdruck, Token(")")))), Zusatz)))))
DeutscheBedeutung = Series(DEU, Option(LZ), Option(Zusatz), DeutscherAusdruck)
LateinischeBedeutung = Series(LAT, Option(LZ), Option(Zusatz), LateinischerAusdruck)
Interpretamente = Series(LateinischeBedeutung, Alternative(Token("--"), LZ), DeutscheBedeutung, Option(Token(":")), mandatory=2)
GRI = Alternative(Token("GRIECHISCH"), Token("GRIECH"), Token("GRIE"), Token("GRI"))
DEU = Alternative(Token("DEUTSCH"), Token("DEU"))
LAT = Alternative(Token("LATEINISCH"), Token("LAT"))
DeutscherAusdruck = OneOrMore(AllOf(Alternative(DEU_WORT, Series(Token("("), OneOrMore(DEU_WORT), Token(")"))), Option(Zusatz)))
LateinischerAusdruck = OneOrMore(AllOf(Alternative(LAT_WORT, Series(Token("("), OneOrMore(LAT_WORT), Token(")"))), Option(Zusatz)))
DeutscheBedeutung = Series(DEU, Option(ZW), DeutscherAusdruck, ZeroOrMore(Series(Token(","), DeutscherAusdruck)))
LateinischeBedeutung = Series(LAT, Option(ZW), LateinischerAusdruck, ZeroOrMore(Series(Token(","), LateinischerAusdruck)))
Interpretamente = Series(LateinischeBedeutung, Alternative(LZ, Token(" "), Token("--")), DeutscheBedeutung, Option(Token(":")), mandatory=2)
Bedeutungskategorie = Series(ZeroOrMore(Series(EINZEILER, Option(LZ), Option(Zusatz), Option(LZ))), Token(":"), mandatory=1)
UntersteBedeutung = Series(Interpretamente, Option(BelegPosition))
Bedeutung = Series(Alternative(Interpretamente, Bedeutungskategorie), Option(BelegPosition))
......
# EBNF-Syntax für MLW-Artikel
# TODO: Vervollständigen!!!!
@ comment = /(?:\/\/.*)|(?:\/\*(?:.|\n)*?\*\/)/ # Kommentare im C++ Stil
# ohne das Zeilenende zu beinhalten
@ whitespace = /[\t ]*/ # Zeilensprünge zählen nicht als Leerraum
@ literalws = right # Leerraum vor und nach Literalen wird automatisch entfernt
##############################################################################
Artikel = [LZ]
§{ LemmaPosition }+
[EtymologiePosition]
[ArtikelKopf]
BedeutungsPosition
[VerweisPosition]
{ UnterArtikel }
ArtikelVerfasser
[Stellenverzeichnis]
[LZ] DATEI_ENDE
#### LEMMA-POSITION ##########################################################
LemmaPosition = [ABS] "LEMMA" [LZ] §Lemma TR [LemmaVarianten]
GrammatikPosition [Zusatz]
Lemma = [< klassisch | gesichert >] LemmaWort
klassisch = "*"
gesichert = "$" # TODO: Noch fragen: Welches Zeichen?
LemmaWort = LAT_WORT
LemmaVarianten = LemmaVariante { [";" | ","] [ZW] LemmaVariante } [ ABS Zusatz ]
LemmaVariante = LAT_WORT [Zusatz]
## GRAMMATIK-POSITION ##
GrammatikPosition = ZWW "GRAMMATIK" [LZ] §Grammatik { ABS GrammatikVariante }
Grammatik = wortart §ABS flexion [genus]
wortart = "nomen" | "n."
| "verb" | "v."
| "adverb" | "adv."
| "adjektiv" | "adj."
| "praeposition" | "praep."
flexion = deklination | konjugation
deklination = FLEX ["," FLEX]
konjugation = FLEX
FLEX = /-?[a-z]+/~
genus = "maskulinum" | "m."
| "femininum" | "f."
| "neutrum" | "n."
GrammatikVariante = [wortart ABS] flexion [genus] DPP Beleg { FORTSETZUNG Beleg } # Beleg { SEM Beleg }
#### ETYMOLOGIE-POSITION #####################################################
EtymologiePosition = ZWW "ETYMOLOGIE" [LZ] { EtymologieVariante }+
EtymologieVariante = LAT | GRI [EtymologieBesonderheit] ["ETYM" Etymologie] DPP Beleg
EtymologieBesonderheit = EINZEILER
Etymologie = EINZEILER
#### ARTIKEL-KOPF ############################################################
ArtikelKopf = < SchreibweisenPosition
| StrukturPosition
| GebrauchPosition
| MetrikPosition
| VerwechselungPosition >
SchreibweisenPosition = ZWW "SCHREIBWEISE" Position
StrukturPosition = ZWW "STRUKTUR" Position
GebrauchPosition = ZWW "GEBRAUCH" Position
MetrikPosition = ZWW "METRIK" Position
VerwechselungPosition = ZWW "VERWECHSELBAR" Position
## ARTIKELKOPF POSITIONEN ##
Position = [LZ] §Kategorien
Kategorien = Kategorie { ZWW Kategorie }
Kategorie = Besonderheit §DPP [LZ] ( Varianten | Kategorien )
Besonderheit = EINZEILER
Varianten = Variante { ZWW Variante }
Variante = !KATEGORIENZEILE Gegenstand DPP Belege
Gegenstand = EINZEILER
#### BEDEUTUNGS-POSITION #####################################################
BedeutungsPosition = { ZWW "BEDEUTUNG" [LZ] §Bedeutung [U1Bedeutung] }+
U1Bedeutung = { ZWW ("U_BEDEUTUNG" | "UNTER_BEDEUTUNG") [LZ] §Bedeutung [U2Bedeutung] }+
U2Bedeutung = { ZWW ("UU_BEDEUTUNG" | "UNTER_UNTER_BEDEUTUNG") [LZ] §Bedeutung [U3Bedeutung] }+
U3Bedeutung = { ZWW "UUU_BEDEUTUNG" [LZ] §Bedeutung [U4Bedeutung] }+
U4Bedeutung = { ZWW "UUUU_BEDEUTUNG" [LZ] §Bedeutung [U5Bedeutung] }+
U5Bedeutung = { ZWW "UUUUU_BEDEUTUNG" [LZ] §UntersteBedeutung }+
Bedeutung = (Interpretamente | Bedeutungskategorie) [BelegPosition]
UntersteBedeutung = Interpretamente [BelegPosition]
Bedeutungskategorie = { EINZEILER [LZ] [Zusatz] [LZ] } §":"
Interpretamente = LateinischeBedeutung ("--"| LZ) §DeutscheBedeutung [":"]
LateinischeBedeutung = LAT [LZ] [Zusatz] LateinischerAusdruck
DeutscheBedeutung = DEU [LZ] [Zusatz] DeutscherAusdruck
LateinischerAusdruck = LAT_WORT { [ZW] ((/[,;]?/~ [ZW] (LAT_WORT | ("(" LateinischerAusdruck ")")))
| Zusatz) }
DeutscherAusdruck = DEU_WORT { [ZW] ((/[,;]?/~ [ZW] (DEU_WORT | ("(" DeutscherAusdruck")")))
| Zusatz) }
# LateinischerAusdruck = LAT_WORT_ERW { //~ LAT_WORT_ERW } [[LZ] BedeutungsQualifikation]
# DeutscherAusdruck = DEU_WORT_ERW { //~ DEU_WORT_ERW } [[LZ] BedeutungsQualifikation]
# LateinischerAusdruck = LAT_WORT [[LZ] BedeutungsQualifikation]
# DeutscherAusdruck = DEU_WORT [[LZ] BedeutungsQualifikation]
BelegPosition = ZWW ["BELEGE" [LZ]] Belege
#### VERWEIS-POSITION ########################################################
VerweisPosition = ZWW "VERWEISE"
#### UNTER-ARTIKEL ###########################################################
UnterArtikel = ZWW "UNTER-ARTIKEL"
#### AUTOR/AUTORIN ###########################################################
ArtikelVerfasser = ZWW ("AUTORIN" | "AUTOR") §Name
Name = { NAME | NAMENS_ABKÜRZUNG | "unbekannt" }+
#### STELLENVERZEICHNIS ######################################################
Stellenverzeichnis = ZWW "STELLENVERZEICHNIS" [LemmaWort] ZWW Verweisliste
Verweisliste = { [LZ] "*" Stellenverweis }
Stellenverweis = BelegQuelle { [ABS] Stelle (NullVerweis | Verweis) }
NullVerweis = "{" "-" "}"
#### Schlüsselwörter #########################################################
LAT = "LATEINISCH" | "LAT"
DEU = "DEUTSCH" | "DEU"
GRI = "GRIECHISCH" | "GRIECH" | "GRIE" | "GRI"
SCHLUESSELWORT = { //~ /\n/ }+ !ROEMISCHE_ZAHL /[A-ZÄÖÜ]{3,}\s+/
#### ZUSATZ an verschiedenen Stellen der Struktur ############################
Zusatz = { "{" !("=>" | "#") §EinzelnerZusatz { ";;" EinzelnerZusatz } "}" }+
EinzelnerZusatz = FesterZusatz | GemischterZusatz | FreierZusatz
FesterZusatz = "adde" | "sape" | "persaepe"
GemischterZusatz = ( "usu" | "plur. sensu sing." ) FreierZusatz
FreierZusatz = { FREITEXT | VerweisKern | Verweis }+
#### BELEGE ##################################################################
Belege = ["*"] Beleg { [LZ] "*" Beleg }
Beleg = [Zusatz] ((Verweis [Zitat]) | Zitat) [ABS Zusatz] ["."]
Zitat = Quellenangabe
{ SEM [ZW] [Anker] [Zusatz] <Stelle | Verweis>
[[ZW] BelegText] [[LZ] Zusatz] }
Quellenangabe = [<Anker | Zusatz>] < BelegQuelle | Verweis >
BelegQuelle = Autor §DPP [Werk] &SEM
BelegText = /"/ { MEHRZEILER | Zusatz } §/"/~ ["."]
Autor = EINZEILER [<Anker | Verweis | Zusatz>]
Werk = <EINZEILER [<Anker | Verweis | Zusatz>]>
Stelle = EINZEILER
Datierung = EINZEILER
Edition = EINZEILER
#### VERWEISE (LINKS) ########################################################
Verweis = "{" VerweisKern "}"
VerweisKern = "=>" §((alias "|" ("-" | URL)) | URL)
Anker = "{" "#" §ziel "}"
URL = [ ([protokoll] domäne /\//) | /\// ] { pfad /\// } ziel
alias = FREITEXT
protokoll = /\w+:\/\//
domäne = /\w+\.\w+(?:\.\w+)*/
pfad = /\w+/
ziel = /[\w=?.%&\[\] ]+/
#### GENERISCHE UND ATOMARE AUSDRÜCKE ########################################
NAMENS_ABKÜRZUNG = /[A-ZÄÖÜÁÀÂÓÒÔÚÙÛ]\./~
NAME = /[A-ZÄÖÜÁÀÓÒÚÙÂÔÛ][a-zäöüßáàâóòôúùû]+/~
DEU_WORT = DEU_GROSS | DEU_KLEIN | GROSSBUCHSTABE
# DEU_WORT_ERW = DEU_WORT | (["("] DEU_WORT [")"])
DEU_GROSS = /[A-ZÄÖÜ][a-zäöüßę_\-.]+/~
GROSSBUCHSTABE = /[A-ZÄÖÜ](?=[ \t\n])/~
KLEINBUCHSTABE = /[a-zäöü](?=[ \t\n])/~
GRI_BUCHSTABE = /[αβγδεζηθικλμνξοπρςστυφχψω]/
DEU_KLEIN = /(?!--)[a-zäöüßęõ_\-.]+/~
LAT_WORT = /(?!--)[a-z|\-_.]+/~
# LAT_WORT_ERW = LAT_WORT | (["("] LAT_WORT [")"])
GROSSSCHRIFT = /(?!--)[A-ZÄÖÜ_\-]+/~
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 ::
TEIL_SATZZEICHEN = /(?!->)(?:(?:,(?!,))|(?:-(?!-))|[.()]+)|[`''‘’?]/~ # Satzeichen bis auf Doppelpunkt ":", Semikolon ";" und eckige Klammern
BUCHSTABENFOLGE = /\w+/~
ZEICHENFOLGE = /[\w()-]+/~
TEXTELEMENT = DEU_WORT | SEITENZAHL | ROEMISCHE_ZAHL
EINZEILER = { TEXTELEMENT | TEIL_SATZZEICHEN }+
FREITEXT = { TEXTELEMENT | SATZZEICHEN | GROSSSCHRIFT }+
MEHRZEILER = { FREITEXT | /\s+(?=[\w,;:.\(\)\-])/ }+
TR = ABS | LZ # (beliebiger) Trenner
ABS = /\s*;;?\s*/ | ZWW # Abschluss (durch Semikolon oder Zeilenwechsel)
# ZW = /\n/~ # Zeilenwechsel
LZ = { COMMENT__ | /\s+/ }+ # Leerzeichen oder -zeilen
DPP = /::?/~ # Doppelpunkt als Trenner
SEM = /;;?/~ # Semikolon als Trenner
ZW = !LÜCKE ZEILENSPRUNG # Zeilenwechsel, aber keine Leerzeile(n)
ZWW = ZEILENSPRUNG [ LZ ] # mindestens ein Zeilenwechsel
LÜCKE = KOMMENTARZEILEN LEERZEILE [LZ] # Leerraum mit mindestens einer echten Leerzeile
LEERZEILE = /[ \t]*(?:\n[ \t]*)+\n/ ~/\n?/ # eine oder mehrere echte LEERZEILEN
RZS = /\s*?\n|$/ # Rückwärtiger Zeilensprung oder Textanfang
ZEILENSPRUNG = /[ \t]*\n/~
KOMMENTARZEILEN = { /[ \t]*\n?[ \t]*/ COMMENT__ } # echte Kommentarzeilen
KATEGORIENZEILE = /[^:\n]+[:][ \t]*\n/ # Kategorienzeilen enthalten genau einen Doppelpunkt am Ende der Zeile
FORTSETZUNG = !(ZWW /[^:\n]+[:]/)
DATEI_ENDE = !/./
NIEMALS = /(?!.)/
......@@ -43,5 +43,5 @@ M2: """LATEINISCH capital, rica"""
[match:DeutscheBedeutung]
M1: """DEU Gesichts-, Schweißtuch {usu liturg.: de re v. p. 32, 63}"""
M2: """DEUTSCH Kopftuch"""
M3: """DEU Gefolge (des Kaisers; spectat ad militiam)"""
M3: """DEU Gefolge, Gefolge (des Kaisers) {spectat ad militiam}"""
M4: """DEUTSCH Wille, (willkürlicher) Beschluss"""
......@@ -21,8 +21,8 @@ M2: """Form.: Sangall.; 39 p. 421,16 "munuscula ... direximus, hoc est palliolum
M3: """Catal.: thes. Germ.; 18,7 "-eterculi viginti quatuor" """
M4: """Libri: confrat. I; app. A 6 p. 137,30 "pulpitum ... -a cocco imaginata
circumdari iussit pontifex.""""
M5: """Catal.: thes. Germ. {=> ID Catal_thes_Germ}; 18,7 "-eterculi viginti quatuor" """
M6: """Catal.: thes. Germ. {=> ID 0023}; 76,15 "-rulae II"; 40,5 VI "vizregule"; 129a,5 "-sterculas
M5: """Catal.: thes. Germ.; 18,7 "-eterculi viginti quatuor" """
M6: """Catal.: thes. Germ.; 76,15 "-rulae II"; 40,5 VI "vizregule"; 129a,5 "-sterculas
II."; 24,8 "-itella X"; 114,8 VIII "fezdreglę"; 6,24 "fasciutercule VII";
92,6 "fascerculę tres"; 21,20 IIII "festregelę"
{saepe}"""
......
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