blob: 64221495466c52eee29a7cf4d71d74ee4487a978 [file] [log] [blame]
"""
* class Core
*
* Top-level rules executor. Glues block/inline parsers and does intermediate
* transformations.
"""
from .ruler import Ruler
from .rules_core.state_core import StateCore
from .rules_core import normalize, block, inline, replace, smartquotes
# TODO linkify
_rules = [
["normalize", normalize],
["block", block],
["inline", inline],
# [ 'linkify', require('./rules_core/linkify') ],
["replacements", replace],
["smartquotes", smartquotes],
]
class ParserCore:
def __init__(self):
self.ruler = Ruler()
for name, rule in _rules:
self.ruler.push(name, rule)
def process(self, state: StateCore):
"""Executes core chain rules."""
for rule in self.ruler.getRules(""):
rule(state)