From 2116ed3e570a2a979d4cab20e3fc0187d35dbdde Mon Sep 17 00:00:00 2001 From: Nimalan Date: Tue, 30 Jan 2024 15:25:15 +0530 Subject: [PATCH] Fix parsing issue of hex numbers in cast expr (#412) --- src/main/scala/Parser.scala | 2 +- src/test/scala/ParsingPositive.scala | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/scala/Parser.scala b/src/main/scala/Parser.scala index fbe9aa8a..dad40f4d 100644 --- a/src/main/scala/Parser.scala +++ b/src/main/scala/Parser.scala @@ -102,7 +102,7 @@ case class Parser(input: String) { ) def hex[K: P]: P[Expr] = positioned( - P("0x" ~/ CharIn("0-9a-fA-F").rep(1)).!.map((n: String) => + P("0x" ~/ CharsWhileIn("0-9a-fA-F")).!.map((n: String) => EInt(BigInt(n.substring(2), 16), 16) ).opaque("hexademical") ) diff --git a/src/test/scala/ParsingPositive.scala b/src/test/scala/ParsingPositive.scala index 49a53241..ca8707fc 100644 --- a/src/test/scala/ParsingPositive.scala +++ b/src/test/scala/ParsingPositive.scala @@ -240,5 +240,9 @@ class ParsingTests extends org.scalatest.FunSuite { parseAst(""" let x = (y as float); """) + parseAst(""" + let x = (0x9e3779b9 as ubit<32>); + let y = (023615674671 as ubit<32>); + """) } }