diff options
Diffstat (limited to 'pyGHDL/dom/Literal.py')
-rw-r--r-- | pyGHDL/dom/Literal.py | 19 |
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) |