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

- MLW.css hinzugefügt

parent 219a2661
...@@ -109,8 +109,10 @@ if __name__ == "__main__": ...@@ -109,8 +109,10 @@ if __name__ == "__main__":
file_name, log_dir = sys.argv[2], 'LOGS' file_name, log_dir = sys.argv[2], 'LOGS'
result, errors, ast = compile_src(file_name, log_dir) result, errors, ast = compile_src(file_name, log_dir)
if errors: if errors:
cwd = os.getcwd()
rel_path = file_name[len(cwd):] if file_name.startswith(cwd) else file_name
for error in errors: for error in errors:
print(error) print(rel_path + ':' + str(error))
sys.exit(1) sys.exit(1)
else: else:
print(result.as_xml() if isinstance(result, Node) else result) print(result.as_xml() if isinstance(result, Node) else result)
......
...@@ -63,17 +63,15 @@ class Error: ...@@ -63,17 +63,15 @@ class Error:
def __str__(self): def __str__(self):
prefix = '' prefix = ''
if self.line > 0: if self.line > 0:
prefix = "line: %s, column: %s, " % \ prefix = "%i:%i: " % (max(self.line, 0), max(self.column, 0))
("%4i" % self.line if self.line >= 0 else ' ???', return prefix + "%s: %s" % (self.severity, self.message)
"%3i" % self.column if self.column >= 0 else '???')
return prefix + "%s: %s" % (self.level_str, self.message)
def __repr__(self): def __repr__(self):
return 'Error("%s", %s, %i, %i, %i, %i)' \ return 'Error("%s", %s, %i, %i, %i, %i)' \
% (self.message, repr(self.code), self.pos, self.orig_pos, self.line, self.column) % (self.message, repr(self.code), self.pos, self.orig_pos, self.line, self.column)
@property @property
def level_str(self): def severity(self):
"""Returns a string representation of the error level, e.g. "warning".""" """Returns a string representation of the error level, e.g. "warning"."""
return "Warning" if is_warning(self.code) else "Error" return "Warning" if is_warning(self.code) else "Error"
......
...@@ -67,7 +67,7 @@ __all__ = ('TransformationDict', ...@@ -67,7 +67,7 @@ __all__ = ('TransformationDict',
'remove_last', 'remove_last',
'remove_whitespace', 'remove_whitespace',
'remove_empty', 'remove_empty',
'remove_empty_anonymous', 'remove_anonymous_empty',
'remove_expendables', 'remove_expendables',
'remove_brackets', 'remove_brackets',
'remove_infix_operator', 'remove_infix_operator',
...@@ -558,19 +558,22 @@ def is_token(context: List[Node], tokens: AbstractSet[str] = frozenset()) -> boo ...@@ -558,19 +558,22 @@ def is_token(context: List[Node], tokens: AbstractSet[str] = frozenset()) -> boo
"""Checks whether the last node in the context is has `ptype == TOKEN_PTYPE` """Checks whether the last node in the context is has `ptype == TOKEN_PTYPE`
and it's content without leading or trailing whitespace child-nodes and it's content without leading or trailing whitespace child-nodes
matches one of the given tokens. If no tokens are given, any token is a match. matches one of the given tokens. If no tokens are given, any token is a match.
If only ":" is given all anonymous tokens but no other tokens are a match.
""" """
def stripped(nd: Node) -> str: def stripped(nd: Node) -> str:
# assert node.parser.ptype == TOKEN_PTYPE # assert node.parser.ptype == TOKEN_PTYPE
if nd.children: if nd.children:
i, k = 0, len(nd.children) i, k = 0, len(nd.children)
while i < len(nd.children) and nd.children[i] == WHITESPACE_PTYPE: while i < len(nd.children) and nd.children[i].parser.ptype == WHITESPACE_PTYPE:
i += 1 i += 1
while k > 0 and nd.children[k-1] == WHITESPACE_PTYPE: while k > 0 and nd.children[k-1].parser.ptype == WHITESPACE_PTYPE:
k -= 1 k -= 1
return "".join(child.content for child in node.children[i:k]) return "".join(child.content for child in node.children[i:k])
return nd.content return nd.content
node = context[-1] node = context[-1]
return node.parser.ptype == TOKEN_PTYPE and (not tokens or stripped(node) in tokens) return (node.parser.ptype == TOKEN_PTYPE
and ((not tokens or stripped(node) in tokens)
or (not node.parser.name and len(tokens) == 1 and ":" in tokens)))
@transformation_factory(AbstractSet[str]) @transformation_factory(AbstractSet[str])
...@@ -693,7 +696,7 @@ def remove_children_if(context: List[Node], condition: Callable): ...@@ -693,7 +696,7 @@ def remove_children_if(context: List[Node], condition: Callable):
remove_whitespace = remove_children_if(is_whitespace) # partial(remove_children_if, condition=is_whitespace) remove_whitespace = remove_children_if(is_whitespace) # partial(remove_children_if, condition=is_whitespace)
remove_empty = remove_children_if(is_empty) remove_empty = remove_children_if(is_empty)
remove_empty_anonymous = remove_children_if(lambda ctx: is_empty(ctx) and is_anonymous(ctx)) remove_anonymous_empty = remove_children_if(lambda ctx: is_empty(ctx) and is_anonymous(ctx))
remove_expendables = remove_children_if(is_expendable) # partial(remove_children_if, condition=is_expendable) remove_expendables = remove_children_if(is_expendable) # partial(remove_children_if, condition=is_expendable)
remove_first = apply_if(keep_children(slice(1, None)), lambda ctx: len(ctx[-1].children) > 1) remove_first = apply_if(keep_children(slice(1, None)), lambda ctx: len(ctx[-1].children) > 1)
remove_last = apply_if(keep_children(slice(None, -1)), lambda ctx: len(ctx[-1].children) > 1) remove_last = apply_if(keep_children(slice(None, -1)), lambda ctx: len(ctx[-1].children) > 1)
......
Lemma {
display:block;
font-weight:bold;
margin-bottom:0.5rem;
}
LemmaVarianten {
display:block;
color:darkgrey;
}
GrammatikPosition, SchreibweisenPosition, StrukturPosition, GebrauchsPosition,
MetrikPosition, VerwechselungsPosition, BedeutungsPosition {
display:block;
margin-top:0.5em;
}
Kategorie {
display:block;
}
Besonderheit, Gegenstand {
font-style: italic;
}
Besonderheit:after, Gegenstand:after {
content: ": "
}
Grammatik {
display: block;
margin-bottom:0.5rem;
}
GrammatikVariante {
display: block;
}
FLEX + FLEX:before {
content: ", ";
}
LemmaVariante {
}
LemmaVariante + LemmaVariante:before {
content: ", ";
}
Bedeutung {
display:block;
margin-top:0.5em;
}
Interpretamente {
display: block;
}
LateinischerAusdruck, DeutscherAusdruck {
font-weight: bold;
}
LateinischerAusdruck + LateinischerAusdruck:before,
DeutscherAusdruck + DeutscherAusdruck:before {
content: ", "
}
LateinischeBedeutung + DeutscheBedeutung:before {
content: " -- "
}
BelegQuelle {
font-variant:small-caps;
}
Stelle {
}
BelegText {
color: darkgoldenrod;
}
BelegText:before {
content:"“";
}
BelegText:after {
content:"”";
}
Zusatz {
font-style: italic;
}
Verweis {
color: blue;
}
pfad:after {
content: "/"
}
Stellenverzeichnis {
display:none;
}
ArtikelVerfasser {
display:block;
margin-top:1em;
font-style:italic;
}
\ No newline at end of file
...@@ -3,7 +3,7 @@ LEMMA *facitergula ...@@ -3,7 +3,7 @@ LEMMA *facitergula
fascitergula fascitergula
facietergula facietergula
facistergula facistergula
facitercula {sim.} facitercula {sim.}
GRAMMATIK GRAMMATIK
......
Lemma {
display:block;
font-weight:bold;
margin-bottom:0.5rem;
}
LemmaVarianten {
display:block;
color:darkgrey;
}
GrammatikPosition, SchreibweisenPosition, StrukturPosition, GebrauchsPosition,
MetrikPosition, VerwechselungsPosition, BedeutungsPosition {
display:block;
margin-top:0.5em;
}
Kategorie {
display:block;
}
Besonderheit, Gegenstand {
font-style: italic;
}
Besonderheit:after, Gegenstand:after {
content: ": "
}
Grammatik {
display: block;
margin-bottom:0.5rem;
}
GrammatikVariante {
display: block;
}
FLEX + FLEX:before {
content: ", ";
}
LemmaVariante {
}
LemmaVariante + LemmaVariante:before {
content: ", ";
}
Bedeutung {
display:block;
margin-top:0.5em;
}
Interpretamente {
display: block;
}
LateinischerAusdruck, DeutscherAusdruck {
font-weight: bold;
}
LateinischerAusdruck + LateinischerAusdruck:before,
DeutscherAusdruck + DeutscherAusdruck:before {
content: ", "
}
LateinischeBedeutung + DeutscheBedeutung:before {
content: " -- "
}
BelegQuelle {
font-variant:small-caps;
}
Stelle {
}
BelegText {
color: darkgoldenrod;
}
BelegText:before {
content:"“";
}
BelegText:after {
content:"”";
}
Zusatz {
font-style: italic;
}
Verweis {
color: blue;
}
pfad:after {
content: "/"
}
Stellenverzeichnis {
display:none;
}
ArtikelVerfasser {
display:block;
margin-top:1em;
font-style:italic;
}
\ No newline at end of file
...@@ -4,7 +4,7 @@ LEMMA imperium ...@@ -4,7 +4,7 @@ LEMMA imperium
inperium inperium
GRAMMATIK SCHREIBWEISE GRAMMATIK
nomen; -i n. nomen; -i n.
......
Lemma {
display:block;
font-weight:bold;
margin-bottom:0.5rem;
}
LemmaVarianten {
display:block;
color:darkgrey;
}
GrammatikPosition, SchreibweisenPosition, StrukturPosition, GebrauchsPosition,
MetrikPosition, VerwechselungsPosition, BedeutungsPosition {
display:block;
margin-top:0.5em;
}
Kategorie {
display:block;
}
Besonderheit, Gegenstand {
font-style: italic;
}
Besonderheit:after, Gegenstand:after {
content: ": "
}
Grammatik {
display: block;
margin-bottom:0.5rem;
}
GrammatikVariante {
display: block;
}
FLEX + FLEX:before {
content: ", ";
}
LemmaVariante {
}
LemmaVariante + LemmaVariante:before {
content: ", ";
}
Bedeutung {
display:block;
margin-top:0.5em;
}
Interpretamente {
display: block;
}
LateinischerAusdruck, DeutscherAusdruck {
font-weight: bold;
}
LateinischerAusdruck + LateinischerAusdruck:before,
DeutscherAusdruck + DeutscherAusdruck:before {
content: ", "
}
LateinischeBedeutung + DeutscheBedeutung:before {
content: " -- "
}
BelegQuelle {
font-variant:small-caps;
}
Stelle {
}
BelegText {
color: darkgoldenrod;
}
BelegText:before {
content:"“";
}
BelegText:after {
content:"”";
}
Zusatz {
font-style: italic;
}
Verweis {
color: blue;
}
pfad:after {
content: "/"
}
Stellenverzeichnis {
display:none;
}
ArtikelVerfasser {
display:block;
margin-top:1em;
font-style:italic;
}
\ No newline at end of file
<html>
<head>
<meta charset="UTF-8"/>
<link rel="stylesheet" href="MLW.css" />
</head>
<body>
<Artikel>
<LemmaPosition>
<Lemma>
<klassisch>*</klassisch>
<LemmaWort>facitergula</LemmaWort>
</Lemma>
<LemmaVarianten>
<LemmaVariante>fascitergula</LemmaVariante>
<LemmaVariante>facietergula</LemmaVariante>
<LemmaVariante>facistergula</LemmaVariante>
<LemmaVariante>
<LAT_WORT>facitercula</LAT_WORT>
<Zusatz>sim.</Zusatz>
</LemmaVariante>
</LemmaVarianten>
<GrammatikPosition>
<Grammatik>
<nomen>nomen</nomen>
<flexion>
<deklination>
<FLEX>-ae</FLEX>
</deklination>
</flexion>
<femininum>femininum</femininum>
</Grammatik>
<GrammatikVariante>
<flexion>
<deklination>
<FLEX>-us</FLEX>
<FLEX>-i</FLEX>
</deklination>
</flexion>
<maskulinum>maskulinum</maskulinum>
<Beleg>
<Verweis>
<URL>
<ziel>ibi_1</ziel>
</URL>
</Verweis>
</Beleg>
</GrammatikVariante>
<GrammatikVariante>
<flexion>
<deklination>
<FLEX>-um</FLEX>
<FLEX>-i</FLEX>
</deklination>
</flexion>
<neutrum>neutrum</neutrum>
<Beleg>
<Verweis>
<URL>
<ziel>ibi_2</ziel>
</URL>
</Verweis>
</Beleg>
</GrammatikVariante>
</GrammatikPosition>
</LemmaPosition>
<SchreibweisenPosition>
<Kategorie>
<Besonderheit>script.</Besonderheit>
<Varianten>
<Variante>
<Gegenstand>vizreg-</Gegenstand>
<Belege>
<Beleg>
<Verweis>
<URL>
<ziel>ibi_3</ziel>
</URL>
</Verweis>
</Beleg>
</Belege>
</Variante>
<Variante>
<Gegenstand>festregel(a)</Gegenstand>
<Belege>
<Beleg>
<Verweis>
<URL>
<ziel>ibi_4</ziel>
</URL>
</Verweis>
</Beleg>
</Belege>
</Variante>
<Variante>
<Gegenstand>fezdregl(a)</Gegenstand>
<Belege>
<Beleg>
<Verweis>
<URL>
<ziel>ibi_5</ziel>
</URL>
</Verweis>
</Beleg>
</Belege>
</Variante>
</Varianten>
</Kategorie>
</SchreibweisenPosition>
<BedeutungsPosition>
<Bedeutung>
<Interpretamente>
<LateinischeBedeutung>
<LateinischerAusdruck>pannus</LateinischerAusdruck>
<LateinischerAusdruck>faciale</LateinischerAusdruck>
<LateinischerAusdruck>sudarium</LateinischerAusdruck>
</LateinischeBedeutung>
<DeutscheBedeutung>
<DeutscherAusdruck>Gesichts-tuch</DeutscherAusdruck>
<DeutscherAusdruck>
<DeutschesWort>Schweißtuch</DeutschesWort>
<Zusatz>
<GemischterZusatz>
<usu>usu</usu>
<FREITEXT>liturg.</FREITEXT>
</GemischterZusatz>
<FreierZusatz>
<FREITEXT>de re v.</FREITEXT>
<Verweis>
<URL>
<pfad>eintrag</pfad>
<ziel>ibi_X</ziel>
</URL>
</Verweis>
</FreierZusatz>
</Zusatz>
</DeutscherAusdruck>
</DeutscheBedeutung>
</Interpretamente>
<Belege>
<Beleg>
<Zitat>
<BelegQuelle>
<Autor>Catal.</Autor>