summaryrefslogtreecommitdiff
path: root/reconfigure/parsers/bind9.py
blob: 123a7991bea490c0b6c6e2880aa168c2b5d61268 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from reconfigure.nodes import *
from reconfigure.parsers.nginx import NginxParser


class BIND9Parser (NginxParser):
    """
    A parser for named.conf
    """

    tokens = [
        (r"[\w_]+\s*?.*?{", lambda s, t: ('section_start', t)),
        (r"[\w\d_:.]+?.*?;", lambda s, t: ('option', t)),
        (r"\".*?\"\s*;", lambda s, t: ('option', t)),
        (r"\s", lambda s, t: 'whitespace'),
        (r"$^", lambda s, t: 'newline'),
        (r"\#.*?\n", lambda s, t: ('comment', t)),
        (r"//.*?\n", lambda s, t: ('comment', t)),
        (r"/\*.*?\*/", lambda s, t: ('comment', t)),
        (r"\};", lambda s, t: 'section_end'),
    ]
    token_section_end = '};'