aboutsummaryrefslogtreecommitdiffstats
path: root/pyGHDL/dom/Literal.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyGHDL/dom/Literal.py')
-rw-r--r--pyGHDL/dom/Literal.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/pyGHDL/dom/Literal.py b/pyGHDL/dom/Literal.py
index 562b188fd..7c722583b 100644
--- a/pyGHDL/dom/Literal.py
+++ b/pyGHDL/dom/Literal.py
@@ -30,6 +30,9 @@
#
# SPDX-License-Identifier: GPL-2.0-or-later
# ============================================================================
+from pyGHDL.libghdl import name_table
+
+from pyGHDL.libghdl.vhdl import nodes
from pydecor import export
from pyVHDLModel.VHDLModel import (
@@ -43,14 +46,24 @@ __all__ = []
@export
class IntegerLiteral(VHDLModel_IntegerLiteral):
- pass
+ @classmethod
+ def parse(cls, node):
+ value = nodes.Get_Value(node)
+ return cls(value)
@export
class FloatingPointLiteral(VHDLModel_FloatingPointLiteral):
- pass
+ @classmethod
+ def parse(cls, node):
+ value = nodes.Get_Fp_Value(node)
+ return cls(value)
@export
class CharacterLiteral(VHDLModel_CharacterLiteral):
- pass
+ @classmethod
+ def parse(cls, node):
+ identifier = nodes.Get_Identifier(node)
+ value = name_table.Get_Character(identifier)
+ return cls(value)