File: constant_node.py

package info (click to toggle)
opencv 4.10.0%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 282,092 kB
  • sloc: cpp: 1,178,079; xml: 682,621; python: 49,092; lisp: 31,150; java: 25,469; ansic: 11,039; javascript: 6,085; sh: 1,214; cs: 601; perl: 494; objc: 210; makefile: 173
file content (31 lines) | stat: -rw-r--r-- 865 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from typing import Optional, Tuple

from .node import ASTNode, ASTNodeType


class ConstantNode(ASTNode):
    """Represents C++ constant that is also a constant in Python.
    """
    def __init__(self, name: str, value: str,
                 parent: Optional[ASTNode] = None,
                 export_name: Optional[str] = None) -> None:
        super().__init__(name, parent, export_name)
        self.value = value
        self._value_type = "int"

    @property
    def children_types(self) -> Tuple[ASTNodeType, ...]:
        return ()

    @property
    def node_type(self) -> ASTNodeType:
        return ASTNodeType.Constant

    @property
    def value_type(self) -> str:
        return self._value_type

    def __str__(self) -> str:
        return "Constant('{}' exported as '{}': {})".format(
            self.name, self.export_name, self.value
        )