From 212d28b5607e033995f11d1877e05aef99837537 Mon Sep 17 00:00:00 2001 From: Alex Mykyta Date: Wed, 16 Sep 2020 21:45:05 -0700 Subject: [PATCH] Add missing support for preprocessor --- .travis.yml | 19 +++++++++++++++++++ rdl_pygments/__about__.py | 1 + rdl_pygments/rdllexer.py | 25 +++++++++++++------------ setup.py | 7 ++++++- 4 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 .travis.yml create mode 100644 rdl_pygments/__about__.py diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..ba7f53a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,19 @@ +language: python +python: + - 3.8 + +stages: + # Only execute deployment stage on tagged release commits in the form of "v1.2.3" + # and from your repository (e.g. not PRs). + # Also allows alpha/beta releases such as "v1.2.3b2" + - name: deploy + if: repo = SystemRDL/pygments-systemrdl AND tag =~ ^v\d+\.\d+\.\w+$ + +jobs: + include: + # Deploy source distribution + - stage: deploy + name: Deploy source distribution + install: python -m pip install twine + script: python setup.py sdist --formats=gztar + after_success: python -m twine upload --skip-existing dist/*.tar.gz diff --git a/rdl_pygments/__about__.py b/rdl_pygments/__about__.py new file mode 100644 index 0000000..c68196d --- /dev/null +++ b/rdl_pygments/__about__.py @@ -0,0 +1 @@ +__version__ = "1.2.0" diff --git a/rdl_pygments/rdllexer.py b/rdl_pygments/rdllexer.py index c50551a..68edfdd 100644 --- a/rdl_pygments/rdllexer.py +++ b/rdl_pygments/rdllexer.py @@ -24,21 +24,22 @@ class SystemRDLLexer(lexer.RegexLexer): (lexer.words(( 'external', 'abstract', 'alias', 'unsigned' ), suffix=r'\b'), token.Keyword), - + (lexer.words(( 'bit', 'boolean', 'onreadtype', 'onwritetype', 'string', - 'accesstype', 'addressingtype', 'component', + 'accesstype', 'addressingtype', 'component', 'longint' ), suffix=r'\b'), token.Keyword.Type), lexer.include('literals'), (r'[#{}()\[\],.;\']', token.Punctuation), (r'[~!%^&*+-=|?:<>/-@]', token.Operator), (r'[a-zA-Z][\w]*', token.Name), - (r'\s', token.Text) + (r'\\\r?\n', token.Text), + (r'\s', token.Text), ], 'comments': [ - (r'(?s)/\*.*\*/', token.Comment.Multiline), + (r'(?s)/\*.*?\*/', token.Comment.Multiline), (r'//.*?$', token.Comment.Single), ], @@ -47,13 +48,13 @@ class SystemRDLLexer(lexer.RegexLexer): ], 'verilog_pp': [ - (r'`[ \t]*include[ \t]+(<[^"\r\n]+>|"[^"\r\n]+")', token.Comment.Preproc), - (r'`[ \t]*define', token.Comment.Preproc, 'verilog_define') - ], - 'verilog_define':[ - (r'\n', token.Comment.Preproc, '#pop'), - (r'\\\n', token.Comment.Preproc), - (r'[^\\\n]+', token.Comment.Preproc), # all other characters + (r'`[ \t]*include', token.Comment.Preproc), + (r'`[ \t]*(ifdef|ifndef|elsif)', token.Comment.Preproc), + (r'`[ \t]*(else|endif)', token.Comment.Preproc), + (r'`[ \t]*undef', token.Comment.Preproc), + (r'`[ \t]*line', token.Comment.Preproc), + (r'`[ \t]*define', token.Comment.Preproc), + (r'`[ \t]*\w+', token.Comment.Preproc), ], 'literals': [ @@ -74,11 +75,11 @@ class SystemRDLLexer(lexer.RegexLexer): ], 'prop-assign': [ - #(r'(\w+)\s*(;)', lexer.bygroups(token.Name.Attribute, token.Operator)), (r'(\w+)(\s*)(=)', lexer.bygroups(token.Name.Attribute, token.Text, token.Operator)), (r'(->)(\s*)(\w+)(\s*)(=)', lexer.bygroups( token.Operator, token.Text, token.Name.Attribute, token.Text, token.Operator )), + #(r'(\w+)\s*(;)', lexer.bygroups(token.Name.Attribute, token.Operator)), ], 'comp-def': [ diff --git a/setup.py b/setup.py index 09a91b4..b310e98 100644 --- a/setup.py +++ b/setup.py @@ -4,9 +4,14 @@ with open("README.md", "r") as fh: long_description = fh.read() +with open(os.path.join("rdl_pygments", "__about__.py")) as f: + v_dict = {} + exec(f.read(), v_dict) + version = v_dict['__version__'] + setuptools.setup ( name='pygments-systemrdl', - version="1.1.0", + version=version, author="Alex Mykyta", author_email="amykyta3@github.com", description="SystemRDL 2.0 lexer extension for Pygments",