Commit 1f237326 authored by di68kap's avatar di68kap

- 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