diff options
author | KrystalDelusion <93062060+KrystalDelusion@users.noreply.github.com> | 2022-11-16 00:55:22 +1300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-15 12:55:22 +0100 |
commit | a14dec79ebc85fae807684fa027d8098a16a4d34 (patch) | |
tree | f05562ce671f452f6d29a90219cced0b37c1aae4 /docs/util/RtlilLexer.py | |
parent | 853f4bb3c695d9f5183ef5064ec4cf9cdd8b5300 (diff) | |
download | yosys-a14dec79ebc85fae807684fa027d8098a16a4d34.tar.gz yosys-a14dec79ebc85fae807684fa027d8098a16a4d34.tar.bz2 yosys-a14dec79ebc85fae807684fa027d8098a16a4d34.zip |
Rst docs conversion (#3496)
Rst docs conversion
Diffstat (limited to 'docs/util/RtlilLexer.py')
-rw-r--r-- | docs/util/RtlilLexer.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/docs/util/RtlilLexer.py b/docs/util/RtlilLexer.py new file mode 100644 index 000000000..75aa53ec8 --- /dev/null +++ b/docs/util/RtlilLexer.py @@ -0,0 +1,45 @@ +from pygments.lexer import RegexLexer, bygroups, include +from pygments.token import Comment, Keyword, Name, Number, String, Whitespace + +__all__ = ['RtlilLexer'] + +class RtlilLexer(RegexLexer): + name = 'RTLIL' + aliases = ['rtlil'] + filenames = ['*.il'] + + keyword_re = r'(always|assign|attribute|autoidx|case|cell|connect|edge|end|global|high|init|inout|input|low|memory|module|negedge|offset|output|parameter|posedge|process|real|signed|size|switch|sync|update|upto|width|wire)' + + tokens = { + 'common': [ + (r'\s+', Whitespace), + (r'#.*', Comment.Single), + (keyword_re, Keyword), + (r'([\\\$][^ \t\r\n]+|\.[0-9]+)', Name.Variable), + (r"[0-9]+'[01xzm-]*", Number), + (r'-?[0-9]+', Number.Integer), + (r'"', String, 'string'), + ], + 'root': [ + (r'cell', Keyword, 'cell_definition'), + (r'(module|wire|memory|process)', Keyword, 'definition'), + include('common'), + ], + 'definition': [ + (r'([\\\$][^ \t\r\n]+|\.[0-9]+)', Name.Entity, '#pop'), + include('common') + ], + 'cell_definition': [ + (r'(\$[^ \t\r\n]+)\b', Name.Function), + (r'(\\[^ \t\r\n]+|\.[0-9]+)', Name.Variable), + (r'$', Whitespace, '#pop'), + include('common'), + ], + 'string': [ + (r'"', String, '#pop'), + (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape), + (r'[^\\"\n]+', String), # all other characters + (r'(\\)(\n)', bygroups(String.Escape, Whitespace)), # line continuation + (r'\\', String), # stray backslash + ] + } |