Skip to content

Commit d2ec278

Browse files
committed
Update Antlr runtime to v4.9
1 parent 864e831 commit d2ec278

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+830
-267
lines changed

docs/dev_notes/antlr.rst

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,37 @@ From: https://github.com/antlr/antlr4/blob/master/doc/getting-started.md
1010
Download antlr4::
1111

1212
cd /usr/local/lib
13-
curl -O http://www.antlr.org/download/antlr-4.7.2-complete.jar
13+
sudo curl -O https://www.antlr.org/download/antlr-4.9-complete.jar
1414

1515
Add some convenience aliases to ``.bash_aliases``::
1616

17-
export CLASSPATH=".:/usr/local/lib/antlr-4.7.2-complete.jar:$CLASSPATH"
18-
alias antlr4='java -Xmx500M -cp "/usr/local/lib/antlr-4.7.2-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
17+
export CLASSPATH=".:/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH"
18+
alias antlr4='java -Xmx500M -cp "/usr/local/lib/aantlr-4.9-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
1919
alias grun='java org.antlr.v4.gui.TestRig'
2020

2121
Extra alias used in py3antlr4book examples::
2222

2323
alias antlr4py3='antlr4 -Dlanguage=Python3'
2424

2525
Antlr API reference: http://www.antlr.org/api/Java/index.html
26+
27+
28+
Upgrading the Antlr version
29+
---------------------------
30+
31+
* Download latest jar file (See above)
32+
* Install latest python packages::
33+
34+
python3 -m pip install --user -U antlr4-python3-runtime speedy-antlr-tool mypy
35+
36+
* Download C++ runtime source distribution from https://www.antlr.org/download.html
37+
38+
* Extract zip
39+
* Update: ``<zip file>/runtime/src`` to ``systemrdl/parser/ext/antlr4-cpp-runtime``
40+
41+
* Update ``systemrdl/parser/generate_parser.sh`` to point to the latest antlr jar
42+
* Run ``systemrdl/parser/generate_parser.sh``
43+
* Increment systemrdl minor version
44+
* Update antlr runtime version pins in ``setup.py``
45+
* Run unit tests
46+
* Publish release!

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def run_setup(with_binary):
6767
cmdclass={"build_ext": ve_build_ext},
6868
python_requires='>=3.5.2',
6969
install_requires=[
70-
"antlr4-python3-runtime",
70+
"antlr4-python3-runtime >= 4.9, < 4.10",
7171
"colorama",
7272
"markdown",
7373
],

systemrdl/__about__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.13.2"
1+
__version__ = "1.14.0"

systemrdl/parser/SystemRDLLexer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated from SystemRDL.g4 by ANTLR 4.8
1+
# Generated from SystemRDL.g4 by ANTLR 4.9
22
from antlr4 import *
33
from io import StringIO
44
from typing.io import TextIO
@@ -631,7 +631,7 @@ class SystemRDLLexer(Lexer):
631631

632632
def __init__(self, input=None, output:TextIO = sys.stdout):
633633
super().__init__(input, output)
634-
self.checkVersion("4.8")
634+
self.checkVersion("4.9")
635635
self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
636636
self._actions = None
637637
self._predicates = None

systemrdl/parser/SystemRDLParser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated from SystemRDL.g4 by ANTLR 4.8
1+
# Generated from SystemRDL.g4 by ANTLR 4.9
22
# encoding: utf-8
33
from antlr4 import *
44
from io import StringIO
@@ -700,7 +700,7 @@ class SystemRDLParser ( Parser ):
700700

701701
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
702702
super().__init__(input, output)
703-
self.checkVersion("4.8")
703+
self.checkVersion("4.9")
704704
self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
705705
self._predicates = None
706706

systemrdl/parser/SystemRDLVisitor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated from SystemRDL.g4 by ANTLR 4.8
1+
# Generated from SystemRDL.g4 by ANTLR 4.9
22
from antlr4 import *
33
if __name__ is not None and "." in __name__:
44
from .SystemRDLParser import SystemRDLParser

systemrdl/parser/ext/SystemRDLBaseVisitor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
// Generated from SystemRDL.g4 by ANTLR 4.8
2+
// Generated from SystemRDL.g4 by ANTLR 4.9
33

44

55
#include "SystemRDLBaseVisitor.h"

systemrdl/parser/ext/SystemRDLBaseVisitor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
// Generated from SystemRDL.g4 by ANTLR 4.8
2+
// Generated from SystemRDL.g4 by ANTLR 4.9
33

44
#pragma once
55

systemrdl/parser/ext/SystemRDLLexer.cpp

Lines changed: 56 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
// Generated from SystemRDL.g4 by ANTLR 4.8
2+
// Generated from SystemRDL.g4 by ANTLR 4.9
33

44

55
#include "SystemRDLLexer.h"
@@ -60,82 +60,74 @@ atn::ATN SystemRDLLexer::_atn;
6060
std::vector<uint16_t> SystemRDLLexer::_serializedATN;
6161

6262
std::vector<std::string> SystemRDLLexer::_ruleNames = {
63-
u8"T__0", u8"T__1", u8"T__2", u8"T__3", u8"T__4", u8"T__5", u8"T__6",
64-
u8"T__7", u8"T__8", u8"T__9", u8"T__10", u8"T__11", u8"T__12", u8"T__13",
65-
u8"T__14", u8"SL_COMMENT", u8"ML_COMMENT", u8"BOOLEAN_kw", u8"BIT_kw",
66-
u8"LONGINT_kw", u8"UNSIGNED_kw", u8"STRING_kw", u8"ACCESSTYPE_kw", u8"ADDRESSINGTYPE_kw",
67-
u8"ONREADTYPE_kw", u8"ONWRITETYPE_kw", u8"ALIAS_kw", u8"EXTERNAL_kw",
68-
u8"INTERNAL_kw", u8"ADDRMAP_kw", u8"REGFILE_kw", u8"REG_kw", u8"FIELD_kw",
69-
u8"MEM_kw", u8"SIGNAL_kw", u8"TRUE_kw", u8"FALSE_kw", u8"NA_kw", u8"RW_kw",
70-
u8"WR_kw", u8"R_kw", u8"W_kw", u8"RW1_kw", u8"W1_kw", u8"RCLR_kw", u8"RSET_kw",
71-
u8"RUSER_kw", u8"WOSET_kw", u8"WOCLR_kw", u8"WOT_kw", u8"WZS_kw", u8"WZC_kw",
72-
u8"WZT_kw", u8"WCLR_kw", u8"WSET_kw", u8"WUSER_kw", u8"COMPACT_kw", u8"REGALIGN_kw",
73-
u8"FULLALIGN_kw", u8"HW_kw", u8"SW_kw", u8"POSEDGE_kw", u8"NEGEDGE_kw",
74-
u8"BOTHEDGE_kw", u8"LEVEL_kw", u8"NONSTICKY_kw", u8"ABSTRACT_kw", u8"ALL_kw",
75-
u8"COMPONENT_kw", u8"COMPONENTWIDTH_kw", u8"CONSTRAINT_kw", u8"DEFAULT_kw",
76-
u8"ENUM_kw", u8"ENCODE_kw", u8"INSIDE_kw", u8"NUMBER_kw", u8"PROPERTY_kw",
77-
u8"REF_kw", u8"STRUCT_kw", u8"THIS_kw", u8"TYPE_kw", u8"ALTERNATE_kw",
78-
u8"BYTE_kw", u8"INT_kw", u8"PRECEDENCETYPE_kw", u8"REAL_kw", u8"SHORTINT_kw",
79-
u8"SHORTREAL_kw", u8"SIGNED_kw", u8"WITH_kw", u8"WITHIN_kw", u8"NUM_BIN",
80-
u8"NUM_DEC", u8"NUM_HEX", u8"INT", u8"HEX_INT", u8"VLOG_INT", u8"ESC",
81-
u8"STRING", u8"PLUS", u8"MINUS", u8"BNOT", u8"NOT", u8"BAND", u8"NAND",
82-
u8"AND", u8"OR", u8"BOR", u8"NOR", u8"XOR", u8"XNOR", u8"LSHIFT", u8"RSHIFT",
83-
u8"MULT", u8"EXP", u8"DIV", u8"MOD", u8"EQ", u8"ASSIGN", u8"NEQ", u8"LEQ",
84-
u8"LT", u8"GEQ", u8"GT", u8"AT", u8"INC", u8"ALIGN", u8"WS", u8"ID"
63+
"T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
64+
"T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "SL_COMMENT", "ML_COMMENT",
65+
"BOOLEAN_kw", "BIT_kw", "LONGINT_kw", "UNSIGNED_kw", "STRING_kw", "ACCESSTYPE_kw",
66+
"ADDRESSINGTYPE_kw", "ONREADTYPE_kw", "ONWRITETYPE_kw", "ALIAS_kw", "EXTERNAL_kw",
67+
"INTERNAL_kw", "ADDRMAP_kw", "REGFILE_kw", "REG_kw", "FIELD_kw", "MEM_kw",
68+
"SIGNAL_kw", "TRUE_kw", "FALSE_kw", "NA_kw", "RW_kw", "WR_kw", "R_kw",
69+
"W_kw", "RW1_kw", "W1_kw", "RCLR_kw", "RSET_kw", "RUSER_kw", "WOSET_kw",
70+
"WOCLR_kw", "WOT_kw", "WZS_kw", "WZC_kw", "WZT_kw", "WCLR_kw", "WSET_kw",
71+
"WUSER_kw", "COMPACT_kw", "REGALIGN_kw", "FULLALIGN_kw", "HW_kw", "SW_kw",
72+
"POSEDGE_kw", "NEGEDGE_kw", "BOTHEDGE_kw", "LEVEL_kw", "NONSTICKY_kw",
73+
"ABSTRACT_kw", "ALL_kw", "COMPONENT_kw", "COMPONENTWIDTH_kw", "CONSTRAINT_kw",
74+
"DEFAULT_kw", "ENUM_kw", "ENCODE_kw", "INSIDE_kw", "NUMBER_kw", "PROPERTY_kw",
75+
"REF_kw", "STRUCT_kw", "THIS_kw", "TYPE_kw", "ALTERNATE_kw", "BYTE_kw",
76+
"INT_kw", "PRECEDENCETYPE_kw", "REAL_kw", "SHORTINT_kw", "SHORTREAL_kw",
77+
"SIGNED_kw", "WITH_kw", "WITHIN_kw", "NUM_BIN", "NUM_DEC", "NUM_HEX",
78+
"INT", "HEX_INT", "VLOG_INT", "ESC", "STRING", "PLUS", "MINUS", "BNOT",
79+
"NOT", "BAND", "NAND", "AND", "OR", "BOR", "NOR", "XOR", "XNOR", "LSHIFT",
80+
"RSHIFT", "MULT", "EXP", "DIV", "MOD", "EQ", "ASSIGN", "NEQ", "LEQ", "LT",
81+
"GEQ", "GT", "AT", "INC", "ALIGN", "WS", "ID"
8582
};
8683

8784
std::vector<std::string> SystemRDLLexer::_channelNames = {
8885
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
8986
};
9087

9188
std::vector<std::string> SystemRDLLexer::_modeNames = {
92-
u8"DEFAULT_MODE"
89+
"DEFAULT_MODE"
9390
};
9491

9592
std::vector<std::string> SystemRDLLexer::_literalNames = {
96-
"", u8"';'", u8"'{'", u8"'}'", u8"','", u8"'#'", u8"'('", u8"')'", u8"'.'",
97-
u8"'?'", u8"':'", u8"'''", u8"'['", u8"']'", u8"'::'", u8"'->'", "", "",
98-
u8"'boolean'", u8"'bit'", u8"'longint'", u8"'unsigned'", u8"'string'",
99-
u8"'accesstype'", u8"'addressingtype'", u8"'onreadtype'", u8"'onwritetype'",
100-
u8"'alias'", u8"'external'", u8"'internal'", u8"'addrmap'", u8"'regfile'",
101-
u8"'reg'", u8"'field'", u8"'mem'", u8"'signal'", u8"'true'", u8"'false'",
102-
u8"'na'", u8"'rw'", u8"'wr'", u8"'r'", u8"'w'", u8"'rw1'", u8"'w1'", u8"'rclr'",
103-
u8"'rset'", u8"'ruser'", u8"'woset'", u8"'woclr'", u8"'wot'", u8"'wzs'",
104-
u8"'wzc'", u8"'wzt'", u8"'wclr'", u8"'wset'", u8"'wuser'", u8"'compact'",
105-
u8"'regalign'", u8"'fullalign'", u8"'hw'", u8"'sw'", u8"'posedge'", u8"'negedge'",
106-
u8"'bothedge'", u8"'level'", u8"'nonsticky'", u8"'abstract'", u8"'all'",
107-
u8"'component'", u8"'componentwidth'", u8"'constraint'", u8"'default'",
108-
u8"'enum'", u8"'encode'", u8"'inside'", u8"'number'", u8"'property'",
109-
u8"'ref'", u8"'struct'", u8"'this'", u8"'type'", u8"'alternate'", u8"'byte'",
110-
u8"'int'", u8"'precedencetype'", u8"'real'", u8"'shortint'", u8"'shortreal'",
111-
u8"'signed'", u8"'with'", u8"'within'", "", "", "", "", u8"'+'", u8"'-'",
112-
u8"'!'", u8"'~'", u8"'&&'", u8"'~&'", u8"'&'", u8"'|'", u8"'||'", u8"'~|'",
113-
u8"'^'", "", u8"'<<'", u8"'>>'", u8"'*'", u8"'**'", u8"'/'", u8"'%'",
114-
u8"'=='", u8"'='", u8"'!='", u8"'<='", u8"'<'", u8"'>='", u8"'>'", u8"'@'",
115-
u8"'+='", u8"'%='"
93+
"", "';'", "'{'", "'}'", "','", "'#'", "'('", "')'", "'.'", "'\u003F'",
94+
"':'", "'''", "'['", "']'", "'::'", "'->'", "", "", "'boolean'", "'bit'",
95+
"'longint'", "'unsigned'", "'string'", "'accesstype'", "'addressingtype'",
96+
"'onreadtype'", "'onwritetype'", "'alias'", "'external'", "'internal'",
97+
"'addrmap'", "'regfile'", "'reg'", "'field'", "'mem'", "'signal'", "'true'",
98+
"'false'", "'na'", "'rw'", "'wr'", "'r'", "'w'", "'rw1'", "'w1'", "'rclr'",
99+
"'rset'", "'ruser'", "'woset'", "'woclr'", "'wot'", "'wzs'", "'wzc'",
100+
"'wzt'", "'wclr'", "'wset'", "'wuser'", "'compact'", "'regalign'", "'fullalign'",
101+
"'hw'", "'sw'", "'posedge'", "'negedge'", "'bothedge'", "'level'", "'nonsticky'",
102+
"'abstract'", "'all'", "'component'", "'componentwidth'", "'constraint'",
103+
"'default'", "'enum'", "'encode'", "'inside'", "'number'", "'property'",
104+
"'ref'", "'struct'", "'this'", "'type'", "'alternate'", "'byte'", "'int'",
105+
"'precedencetype'", "'real'", "'shortint'", "'shortreal'", "'signed'",
106+
"'with'", "'within'", "", "", "", "", "'+'", "'-'", "'!'", "'~'", "'&&'",
107+
"'~&'", "'&'", "'|'", "'||'", "'~|'", "'^'", "", "'<<'", "'>>'", "'*'",
108+
"'**'", "'/'", "'%'", "'=='", "'='", "'!='", "'<='", "'<'", "'>='", "'>'",
109+
"'@'", "'+='", "'%='"
116110
};
117111

118112
std::vector<std::string> SystemRDLLexer::_symbolicNames = {
119-
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", u8"SL_COMMENT",
120-
u8"ML_COMMENT", u8"BOOLEAN_kw", u8"BIT_kw", u8"LONGINT_kw", u8"UNSIGNED_kw",
121-
u8"STRING_kw", u8"ACCESSTYPE_kw", u8"ADDRESSINGTYPE_kw", u8"ONREADTYPE_kw",
122-
u8"ONWRITETYPE_kw", u8"ALIAS_kw", u8"EXTERNAL_kw", u8"INTERNAL_kw", u8"ADDRMAP_kw",
123-
u8"REGFILE_kw", u8"REG_kw", u8"FIELD_kw", u8"MEM_kw", u8"SIGNAL_kw", u8"TRUE_kw",
124-
u8"FALSE_kw", u8"NA_kw", u8"RW_kw", u8"WR_kw", u8"R_kw", u8"W_kw", u8"RW1_kw",
125-
u8"W1_kw", u8"RCLR_kw", u8"RSET_kw", u8"RUSER_kw", u8"WOSET_kw", u8"WOCLR_kw",
126-
u8"WOT_kw", u8"WZS_kw", u8"WZC_kw", u8"WZT_kw", u8"WCLR_kw", u8"WSET_kw",
127-
u8"WUSER_kw", u8"COMPACT_kw", u8"REGALIGN_kw", u8"FULLALIGN_kw", u8"HW_kw",
128-
u8"SW_kw", u8"POSEDGE_kw", u8"NEGEDGE_kw", u8"BOTHEDGE_kw", u8"LEVEL_kw",
129-
u8"NONSTICKY_kw", u8"ABSTRACT_kw", u8"ALL_kw", u8"COMPONENT_kw", u8"COMPONENTWIDTH_kw",
130-
u8"CONSTRAINT_kw", u8"DEFAULT_kw", u8"ENUM_kw", u8"ENCODE_kw", u8"INSIDE_kw",
131-
u8"NUMBER_kw", u8"PROPERTY_kw", u8"REF_kw", u8"STRUCT_kw", u8"THIS_kw",
132-
u8"TYPE_kw", u8"ALTERNATE_kw", u8"BYTE_kw", u8"INT_kw", u8"PRECEDENCETYPE_kw",
133-
u8"REAL_kw", u8"SHORTINT_kw", u8"SHORTREAL_kw", u8"SIGNED_kw", u8"WITH_kw",
134-
u8"WITHIN_kw", u8"INT", u8"HEX_INT", u8"VLOG_INT", u8"STRING", u8"PLUS",
135-
u8"MINUS", u8"BNOT", u8"NOT", u8"BAND", u8"NAND", u8"AND", u8"OR", u8"BOR",
136-
u8"NOR", u8"XOR", u8"XNOR", u8"LSHIFT", u8"RSHIFT", u8"MULT", u8"EXP",
137-
u8"DIV", u8"MOD", u8"EQ", u8"ASSIGN", u8"NEQ", u8"LEQ", u8"LT", u8"GEQ",
138-
u8"GT", u8"AT", u8"INC", u8"ALIGN", u8"WS", u8"ID"
113+
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "SL_COMMENT",
114+
"ML_COMMENT", "BOOLEAN_kw", "BIT_kw", "LONGINT_kw", "UNSIGNED_kw", "STRING_kw",
115+
"ACCESSTYPE_kw", "ADDRESSINGTYPE_kw", "ONREADTYPE_kw", "ONWRITETYPE_kw",
116+
"ALIAS_kw", "EXTERNAL_kw", "INTERNAL_kw", "ADDRMAP_kw", "REGFILE_kw",
117+
"REG_kw", "FIELD_kw", "MEM_kw", "SIGNAL_kw", "TRUE_kw", "FALSE_kw", "NA_kw",
118+
"RW_kw", "WR_kw", "R_kw", "W_kw", "RW1_kw", "W1_kw", "RCLR_kw", "RSET_kw",
119+
"RUSER_kw", "WOSET_kw", "WOCLR_kw", "WOT_kw", "WZS_kw", "WZC_kw", "WZT_kw",
120+
"WCLR_kw", "WSET_kw", "WUSER_kw", "COMPACT_kw", "REGALIGN_kw", "FULLALIGN_kw",
121+
"HW_kw", "SW_kw", "POSEDGE_kw", "NEGEDGE_kw", "BOTHEDGE_kw", "LEVEL_kw",
122+
"NONSTICKY_kw", "ABSTRACT_kw", "ALL_kw", "COMPONENT_kw", "COMPONENTWIDTH_kw",
123+
"CONSTRAINT_kw", "DEFAULT_kw", "ENUM_kw", "ENCODE_kw", "INSIDE_kw", "NUMBER_kw",
124+
"PROPERTY_kw", "REF_kw", "STRUCT_kw", "THIS_kw", "TYPE_kw", "ALTERNATE_kw",
125+
"BYTE_kw", "INT_kw", "PRECEDENCETYPE_kw", "REAL_kw", "SHORTINT_kw", "SHORTREAL_kw",
126+
"SIGNED_kw", "WITH_kw", "WITHIN_kw", "INT", "HEX_INT", "VLOG_INT", "STRING",
127+
"PLUS", "MINUS", "BNOT", "NOT", "BAND", "NAND", "AND", "OR", "BOR", "NOR",
128+
"XOR", "XNOR", "LSHIFT", "RSHIFT", "MULT", "EXP", "DIV", "MOD", "EQ",
129+
"ASSIGN", "NEQ", "LEQ", "LT", "GEQ", "GT", "AT", "INC", "ALIGN", "WS",
130+
"ID"
139131
};
140132

141133
dfa::Vocabulary SystemRDLLexer::_vocabulary(_literalNames, _symbolicNames);

systemrdl/parser/ext/SystemRDLLexer.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
// Generated from SystemRDL.g4 by ANTLR 4.8
2+
// Generated from SystemRDL.g4 by ANTLR 4.9
33

44
#pragma once
55

@@ -38,7 +38,7 @@ class SystemRDLLexer : public antlr4::Lexer {
3838
INC = 122, ALIGN = 123, WS = 124, ID = 125
3939
};
4040

41-
SystemRDLLexer(antlr4::CharStream *input);
41+
explicit SystemRDLLexer(antlr4::CharStream *input);
4242
~SystemRDLLexer();
4343

4444
virtual std::string getGrammarFileName() const override;

0 commit comments

Comments
 (0)