Commit f0bf0e95 authored by di68kap's avatar di68kap

- Datierungen bei Stellenangaben werden nun nach opera Angaben erkannt und akzeptiert.

parent 5d5444a0
......@@ -9,6 +9,6 @@
- Beispiel iocularis: opus minus unmittelbar von einer Datierung gefolgt: ((MGMer. III p. 113,1)) (c. s. VIII.)
- Schließende und öffnende Klammer, die aufeinander folgen, sollten durch ein Semikolon ersetzt werden.
- Schließende und öffnende Klammer, die aufeinander folgen, sollten durch ein Semikolon ersetzt werden. ERLEDIGT
- Sync & Share - Lösung
......@@ -260,9 +260,10 @@ Quelle = [ZW] AutorWerk [!Beschreibung Zusatz] [Einschub] [!Beschreibu
Sekundärliteratur = {Zusatz} Autorangabe "," [ZW] Werk { ";" [ZW] BelegStelle }
Autorangabe = { DEU_GROSS | DEU_KLEIN }
BelegStelle = { Zusatz } [ZW] ([Werk ";"]
(opus | Stelle [Zusatz] [[ZW] opus]) [[ZW] BelegText])
BelegStelle = { Zusatz } [ZW] ([Werk ";"] TextStelle [[ZW] BelegText])
[[ZW] (!Beschreibung Zusatz | Einschub) ]
TextStelle = (opus | Stelle [Zusatz] {[ZW] opus [[ZW] Datierung]})
Datierung = /\(/~ STELLENKERN /\)/~
@ BelegText_error = '|', 'Das Zeichen "|" darf nur in einem mit "#" gekennzeichneten Lemmawort vorkommen!'
BelegText = /"/~ BelegKern §/"/~
......
......@@ -123,7 +123,7 @@ class MLWGrammar(Grammar):
opus = Forward()
wortart = Forward()
wortarten = Forward()
source_hash__ = "517a6b328e1961a6908916e843724d0d"
source_hash__ = "f48e148108f793ce27aeeef5668a711d"
static_analysis_pending__ = [True]
parser_initialization__ = ["upon instantiation"]
VerweisKern_err_msg__ = [(re.compile(r'[^|]*}'), 'Kein gültiges Verweisziel: "{1}" oder Platzhalter "|-" fehlt nach Alias!'), (re.compile(r'=>'), 'Kein gültiger Verweis "{1}". Mglw. ein Verweiszeichen "=>" zuviel.'), ('', 'Kein gültiger Verweis: "{1}"')]
......@@ -215,7 +215,9 @@ class MLWGrammar(Grammar):
BelegLemma = Synonym(Lemmawort)
BelegKern.set(ZeroOrMore(Alternative(MEHRZEILER, BelegLemma, Verweise, Zusatz, Sperrung, Junktur, Kursiv, opus, Series(KLAMMER_AUF, BelegKern, KLAMMER_ZU))))
BelegText.set(Series(RegExp('"'), wsp__, BelegKern, RegExp('"'), wsp__, mandatory=3, err_msgs=BelegText_err_msg__))
BelegStelle = Series(ZeroOrMore(Zusatz), Option(ZW), Series(Option(Series(Werk, Series(Token(";"), wsp__))), Alternative(opus, Series(Stelle, Option(Zusatz), Option(Series(Option(ZW), opus)))), Option(Series(Option(ZW), BelegText))), Option(Series(Option(ZW), Alternative(Series(NegativeLookahead(Beschreibung), Zusatz), Einschub))))
Datierung = Series(RegExp('\\('), wsp__, STELLENKERN, RegExp('\\)'), wsp__)
TextStelle = Alternative(opus, Series(Stelle, Option(Zusatz), ZeroOrMore(Series(Option(ZW), opus, Option(Series(Option(ZW), Datierung))))))
BelegStelle = Series(ZeroOrMore(Zusatz), Option(ZW), Series(Option(Series(Werk, Series(Token(";"), wsp__))), TextStelle, Option(Series(Option(ZW), BelegText))), Option(Series(Option(ZW), Alternative(Series(NegativeLookahead(Beschreibung), Zusatz), Einschub))))
Autorangabe = ZeroOrMore(Alternative(DEU_GROSS, DEU_KLEIN))
Sekundärliteratur = Series(ZeroOrMore(Zusatz), Autorangabe, Series(Token(","), wsp__), Option(ZW), Werk, ZeroOrMore(Series(Series(Token(";"), wsp__), Option(ZW), BelegStelle)))
Quelle = Series(Option(ZW), AutorWerk, Option(Series(NegativeLookahead(Beschreibung), Zusatz)), Option(Einschub), Option(Series(NegativeLookahead(Beschreibung), Zusatz)))
......@@ -1865,6 +1867,11 @@ class AusgabeTransformation(TreeProcessor):
node.result = node.attr['verdichtung']
return node
def on_TestStelle(self, node):
node = self.fallback_compiler(node)
self.ersetze_angrenzende_Klammern(node)
return node
def on_BelegLemma(self, node):
return self.on_Lemmawort(node)
......@@ -2010,12 +2017,11 @@ class AusgabeTransformation(TreeProcessor):
if trenner:
result.append(Node('TEXT', trenner.pop()))
node.result = tuple(result)
if len(self.context) >= 2:
self.ersetze_angrenzende_Klammern(self.context[-2])
return node
def on_Bedeutungsangabe(self, node):
node = self.fallback_compiler(node)
self.ersetze_angrenzende_Klammern(node)
return self.danach(node, ': ')
# def on_Klassifikation(self, node):
......
......@@ -7,3 +7,5 @@ M1b:"""pannus, faciale, sudarium -- (Gesichts-, Schweiß-)Tuch; {(usu liturg.)};
M2: """interponere, inserere -- dazwischenstellen, (dazwischen) einfügen, einschieben (in); {intrans. i. q.} interesse, interpositum esse -- dazwischen lieghen, stehen:"""
M3: """spectat ad sonos; {modos i. q.} gravior -- tiefer {(usu mus.)}:"""
[match:Belege]
M1: """* VITA Aniani; 7 ((MGMer. III p. 113,1))(c. s. VIII.) "ille quendam #iocular|em sermonem emisit pium et sanctum." """
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