diff options
Diffstat (limited to 'doc/extra/frrlexer.py')
-rw-r--r-- | doc/extra/frrlexer.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/doc/extra/frrlexer.py b/doc/extra/frrlexer.py new file mode 100644 index 0000000..39ce5e6 --- /dev/null +++ b/doc/extra/frrlexer.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# SPDX-License-Identifier: ISC +# Copyright (c) 2017 Vincent Bernat <bernat@luffy.cx> + +from pygments.lexer import RegexLexer, bygroups +from pygments.token import Text, Comment, Keyword +from pygments.token import String, Number, Name + + +class FRRLexer(RegexLexer): + name = "frr" + aliases = ["frr"] + tokens = { + "root": [ + (r"^[ \t]*!.*?\n", Comment.Singleline), + (r'"(\\\\|\\"|[^"])*"', String.Double), + ( + r"[a-f0-9]*:[a-f0-9]*:[a-f0-9:]*(:\d+\.\d+\.\d+\.\d+)?(/\d+)?", + Number, + ), # IPv6 + (r"\d+\.\d+\.\d+\.\d+(/\d+)?", Number), # IPv4 + (r"^([ \t]*)(no[ \t]+)?([-\w]+)", bygroups(Text, Keyword, Name.Function)), + (r"[ \t]+", Text), + (r"\n", Text), + (r"\d+", Number), + (r"\S+", Text), + ], + } |