]>
Commit | Line | Data |
---|---|---|
d5403d4f QY |
1 | # -*- coding: utf-8 -*- |
2 | # Copyright (c) 2017 Vincent Bernat <bernat@luffy.cx> | |
3 | # | |
4 | # Permission to use, copy, modify, and/or distribute this software for any | |
5 | # purpose with or without fee is hereby granted, provided that the above | |
6 | # copyright notice and this permission notice appear in all copies. | |
7 | # | |
8 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
9 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
10 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
11 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
12 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
13 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
14 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
15 | ||
16 | from pygments.lexer import RegexLexer, bygroups | |
17 | from pygments.token import Text, Comment, Keyword | |
18 | from pygments.token import String, Number, Name | |
19 | ||
20 | ||
21 | class FRRLexer(RegexLexer): | |
22 | name = "frr" | |
23 | aliases = ["frr"] | |
24 | tokens = { | |
25 | 'root': [ | |
26 | (r'^[ \t]*!.*?\n', Comment.Singleline), | |
27 | (r'"(\\\\|\\"|[^"])*"', String.Double), | |
28 | (r'[a-f0-9]*:[a-f0-9]*:[a-f0-9:]*(:\d+\.\d+\.\d+\.\d+)?(/\d+)?', | |
29 | Number), # IPv6 | |
30 | (r'\d+\.\d+\.\d+\.\d+(/\d+)?', Number), # IPv4 | |
31 | (r'^([ \t]*)(no[ \t]+)?([-\w]+)', | |
32 | bygroups(Text, Keyword, Name.Function)), | |
33 | (r'[ \t]+', Text), | |
34 | (r'\n', Text), | |
35 | (r'\d+', Number), | |
36 | (r'\S+', Text), | |
37 | ], | |
38 | } |