diff options
| author | Jack Koenig | 2021-10-08 17:09:55 -0700 |
|---|---|---|
| committer | GitHub | 2021-10-09 00:09:55 +0000 |
| commit | ef1d27a84addc46353884eb06ea18f4c68e6a808 (patch) | |
| tree | 315bec8bfb3eacdb7da9478d2b458cffce0a087e | |
| parent | d705335ed4a0af3371ad77ad5952700ea80f0be2 (diff) | |
Support parsing missing keywords as ids (#2381)
Reset, AsyncReset, Interval, attach, assert, assume, and cover have all
been added as keywords but not added to the allowlist for parsing as
ids.
| -rw-r--r-- | src/main/antlr4/FIRRTL.g4 | 7 | ||||
| -rw-r--r-- | src/test/scala/firrtlTests/ParserSpec.scala | 18 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/main/antlr4/FIRRTL.g4 b/src/main/antlr4/FIRRTL.g4 index aa53f2f0..f5116485 100644 --- a/src/main/antlr4/FIRRTL.g4 +++ b/src/main/antlr4/FIRRTL.g4 @@ -225,8 +225,11 @@ keywordAsId | 'UInt' | 'SInt' | 'Clock' + | 'Reset' + | 'AsyncReset' | 'Analog' | 'Fixed' + | 'Interval' | 'flip' | 'wire' | 'reg' @@ -259,6 +262,10 @@ keywordAsId | 'read' | 'write' | 'rdwr' + | 'attach' + | 'assert' + | 'assume' + | 'cover' ; // Parentheses are added as part of name because semantics require no space between primop and open parentheses diff --git a/src/test/scala/firrtlTests/ParserSpec.scala b/src/test/scala/firrtlTests/ParserSpec.scala index ba61b134..5183a6f2 100644 --- a/src/test/scala/firrtlTests/ParserSpec.scala +++ b/src/test/scala/firrtlTests/ParserSpec.scala @@ -48,8 +48,11 @@ class ParserSpec extends FirrtlFlatSpec { "SInt", "Analog", "Fixed", + "Interval", "flip", "Clock", + "Reset", + "AsyncReset", "wire", "reg", "reset", @@ -80,7 +83,11 @@ class ParserSpec extends FirrtlFlatSpec { "infer", "read", "write", - "rdwr" + "rdwr", + "attach", + "assert", + "assume", + "cover" ) ++ PrimOps.listing } @@ -183,6 +190,15 @@ class ParserSpec extends FirrtlFlatSpec { } } + they should "be allowed as names for side effecting statements" in { + import KeywordTests._ + keywords.foreach { keyword => + firrtl.Parser.parse { + prelude :+ s""" assert($keyword, UInt(1), UInt(1), "") : $keyword""" + } + } + } + // ********** Digits as Fields ********** "Digits" should "be legal fields in bundles and in subexpressions" in { val input = """ |
