示例#1
0
class test_ruleset():
    rs = ruleset(rule(r'(\d)', 'num', 'do_number'), )
    assert isinstance(rs, tuple)
示例#2
0
class test_rule():
    r = rule(r'(\d)', 'num', 'do_number')
    assert r.match('1').group() == '1'
    assert r.token == 'num'
    assert r.enter == 'do_number'
    assert r.leave == 0
示例#3
0
# Full functioning underscore template parser.

from markey.rules import ruleset, include, rule, bygroups


keywords = frozenset(("pluralidx", "gettext", "ngettext", "gettext_noop", "pgettext", "npgettext", "interpolate", "_"))


rules = {
    "everything": ruleset(include("inline"), include("function")),
    "inline": ruleset(rule(r"<%=", enter="interpolate"), rule(r"<%-", enter="escape"), rule(r"<%", enter="evaluate")),
    "inline_with_func": ruleset(include("inline"), include("function")),
    "function": ruleset(
        rule(r"({keywords})\(".format(keywords="|".join(keywords)), bygroups("func_name"), enter="gettext")
    ),
    "gettext": ruleset(rule(r"([\"\'])?\)", leave=1), include("function_call")),
    "evaluate": ruleset(rule(r"%>", leave=1), include("inline_with_func")),
    "interpolate": ruleset(rule(r"%>", leave=1), include("inline_with_func")),
    "escape": ruleset(rule(r"%>", leave=1), include("inline_with_func")),
    # function calls (parse string arguments and implicit strings)
    "function_call": ruleset(
        rule(",", "func_argument_delimiter"),
        rule("\s+", None),
        rule(r"('([^'\\]*(?:\\.[^'\\]*)*)'|" r'"([^"\\]*(?:\\.[^"\\]*)*)")(?s)', "func_string_arg"),
        rule(r"([\w_]+)\s*=", bygroups("func_kwarg")),
    ),
}
示例#4
0
# Full functioning underscore template parser.

from markey.rules import ruleset, include, rule, bygroups

keywords = frozenset(('pluralidx', 'gettext', 'ngettext', 'gettext_noop',
                      'pgettext', 'npgettext', 'interpolate', '_'))

rules = {
    'everything':
    ruleset(
        include('inline'),
        include('function'),
    ),
    'inline':
    ruleset(
        rule(r'<%=', enter='interpolate'),
        rule(r'<%-', enter='escape'),
        rule(r'<%', enter='evaluate'),
    ),
    'inline_with_func':
    ruleset(include('inline'), include('function')),
    'function':
    ruleset(
        rule(r'({keywords})\('.format(keywords='|'.join(keywords)),
             bygroups('func_name'),
             enter='gettext')),
    'gettext':
    ruleset(rule(r'([\"\'])?\)', leave=1), include('function_call')),
    'evaluate':
    ruleset(
        rule(r'%>', leave=1),
示例#5
0
from markey.rules import ruleset, include, rule, bygroups


keywords = frozenset((
    'pluralidx', 'gettext', 'ngettext', 'gettext_noop', 'pgettext',
    'npgettext', '_'
))


rules = {
    'everything': ruleset(
        include('inline'),
        include('function'),
    ),
    'inline': ruleset(
        rule(r'<%=', enter='interpolate'),
        rule(r'<%-', enter='escape'),
        rule(r'<%', enter='evaluate'),
    ),
    'inline_with_func': ruleset(
        include('inline'),
        include('function')
    ),
    'function': ruleset(
        rule(r'({keywords})\('.format(keywords='|'.join(keywords)),
             bygroups('func_name'), enter='gettext')
    ),
    'gettext': ruleset(
        rule(r'([\"\'])?\)', leave=1),
        include('function_call')
    ),