########################################################################## ## # The Rocq Prover / The Rocq Development Team ## ## v # Copyright INRIA, CNRS and contributors ## ## <O___,, # (see version control and CREDITS file for authors & dates) ## ## \VV/ ############################################################### ## // # This file is distributed under the terms of the ## ## # GNU Lesser General Public License Version 2.1 ## ## # (see LICENSE file for the text of the license) ## ########################################################################## """A visitor for ANTLR notation ASTs, producing raw HTML.
Uses the dominate package. """
from dominate import tags from dominate.utils import text
from .parsing import parse from .TacticNotationsParser import TacticNotationsParser from .TacticNotationsVisitor import TacticNotationsVisitor
class TacticNotationsToHTMLVisitor(TacticNotationsVisitor): def visitAlternative(self, ctx:TacticNotationsParser.AlternativeContext): with tags.span(_class='alternative'):
self.visitChildren(ctx)
def visitAltblock(self, ctx:TacticNotationsParser.AltblockContext): with tags.span(_class='alternative-block'):
self.visitChildren(ctx)
def htmlize(notation): """Translate notation to a dominate HTML tree"""
top = tags.span(_class='notation') with top:
TacticNotationsToHTMLVisitor().visit(parse(notation)) return top
def htmlize_str(notation): """Translate notation to a raw HTML document""" # ‘pretty=True’ introduces spurious spaces return htmlize(notation).render(pretty=False)
def htmlize_p(notation): """Like `htmlize`, wrapped in a ‘p’.
Does notreturn: instead, must be run in a dominate context. """ with tags.p():
htmlize(notation)
Messung V0.5
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.