2 GTSAM Copyright 2010-2020, Georgia Tech Research Corporation, 3 Atlanta, Georgia 30332-0415 6 See LICENSE for the license information 8 Parser class and rules for parsing C++ enums. 13 from pyparsing
import delimitedList
15 from .tokens
import ENUM, IDENT, LBRACE, RBRACE, SEMI_COLON
16 from .type
import Typename
17 from .utils
import collect_namespaces
22 Rule to parse an enumerator inside an enum. 31 return "Enumerator: ({0})".format(self.
name)
36 Rule to parse enums defined in the interface file. 47 rule = (ENUM +
IDENT(
"name") + LBRACE +
48 delimitedList(Enumerator.rule)(
"enumerators") + RBRACE +
49 SEMI_COLON).setParseAction(
lambda t:
Enum(t.name, t.enumerators))
51 def __init__(self, name, enumerators, parent=''):
57 """Get the namespaces which this class is nested under as a list.""" 62 Return a Typename with the namespaces and cpp name of this 66 namespaces_name.append(self.
name)
67 return Typename(namespaces_name)
70 return "Enum: {0}".format(self.
name)
def __init__(self, name, enumerators, parent='')
def collect_namespaces(obj)