Commit 14ae7033 authored by di68kap's avatar di68kap

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

parent f0bf0e95
......@@ -2,11 +2,11 @@
- Sekundärtexte: Wie Primärquellen Autornamen komplett groß geschrieben. Bestimmung der Sekundärquellen als solche anhand von Listen. Auflösung von Mehrdeutigkeiten mit $-Zeichen.
- Autornamen bei Primärquellen nach einer Liste einformen
- Autornamen bei Primärquellen nach einer Liste einfärben
- Opera-Majora-Liste in Excel-Tabelle wandeln und auf Sync&Share hinterlegen.
- Beispiel iocularis: opus minus unmittelbar von einer Datierung gefolgt: ((MGMer. III p. 113,1)) (c. s. VIII.)
- Beispiel iocularis: opus minus unmittelbar von einer Datierung gefolgt: ((MGMer. III p. 113,1)) (c. s. VIII.) ERLEDIGT
- Schließende und öffnende Klammer, die aufeinander folgen, sollten durch ein Semikolon ersetzt werden. ERLEDIGT
......
......@@ -260,9 +260,9 @@ Quelle = [ZW] AutorWerk [!Beschreibung Zusatz] [Einschub] [!Beschreibu
Sekundärliteratur = {Zusatz} Autorangabe "," [ZW] Werk { ";" [ZW] BelegStelle }
Autorangabe = { DEU_GROSS | DEU_KLEIN }
BelegStelle = { Zusatz } [ZW] ([Werk ";"] TextStelle [[ZW] BelegText])
BelegStelle = { Zusatz } [ZW] ([Werk ";"] Stellenangabe [[ZW] BelegText])
[[ZW] (!Beschreibung Zusatz | Einschub) ]
TextStelle = (opus | Stelle [Zusatz] {[ZW] opus [[ZW] Datierung]})
Stellenangabe = (opus | Stelle [Zusatz] {[ZW] opus [[ZW] Datierung]})
Datierung = /\(/~ STELLENKERN /\)/~
@ BelegText_error = '|', 'Das Zeichen "|" darf nur in einem mit "#" gekennzeichneten Lemmawort vorkommen!'
......
......@@ -123,7 +123,7 @@ class MLWGrammar(Grammar):
opus = Forward()
wortart = Forward()
wortarten = Forward()
source_hash__ = "f48e148108f793ce27aeeef5668a711d"
source_hash__ = "ca6cf4d41b8f6838b9feaf9f7cbd1896"
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}"')]
......@@ -216,8 +216,8 @@ class MLWGrammar(Grammar):
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__))
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))))
Stellenangabe = 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__))), Stellenangabe, 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)))
......@@ -541,6 +541,8 @@ MLW_AST_transformation_table = {
"Beleg": [flatten, remove_empty],
"BelegText": [flatten, remove_content('"'), move_whitespace, reduce_single_child],
"BelegStelle": [flatten, move_whitespace],
"Stellenangabe": [move_whitespace],
"Datierung": [move_whitespace, traverse_locally({":RegExp": change_tag_name("TEXT")})],
"BelegKern": [flatten(lambda ctx: is_anonymous(ctx) or is_one_of(ctx, {'MEHRZEILER', 'FREITEXT'}))],
"Lemmawort":
[flatten, remove_tokens('#', '{#', '}', '#~', '{#~'), rstrip(is_empty),
......@@ -1867,7 +1869,7 @@ class AusgabeTransformation(TreeProcessor):
node.result = node.attr['verdichtung']
return node
def on_TestStelle(self, node):
def on_Stellenangabe(self, node):
node = self.fallback_compiler(node)
self.ersetze_angrenzende_Klammern(node)
return node
......
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