46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
"""
|
|
GTSAM Copyright 2010-2020, Georgia Tech Research Corporation,
|
|
Atlanta, Georgia 30332-0415
|
|
All Rights Reserved
|
|
|
|
See LICENSE for the license information
|
|
|
|
Parser to get the interface of a C++ source file
|
|
|
|
Author: Duy Nguyen Ta, Fan Jiang, Matthew Sklar, Varun Agrawal, and Frank Dellaert
|
|
"""
|
|
|
|
import sys
|
|
|
|
import pyparsing # type: ignore
|
|
|
|
from .classes import *
|
|
from .declaration import *
|
|
from .enum import *
|
|
from .function import *
|
|
from .module import *
|
|
from .namespace import *
|
|
from .template import *
|
|
from .tokens import *
|
|
from .type import *
|
|
|
|
# Fix deepcopy issue with pyparsing
|
|
# Can remove once https://github.com/pyparsing/pyparsing/issues/208 is resolved.
|
|
if sys.version_info >= (3, 8):
|
|
|
|
def fixed_get_attr(self, item):
|
|
"""
|
|
Fix for monkey-patching issue with deepcopy in pyparsing.ParseResults
|
|
"""
|
|
if item == '__deepcopy__':
|
|
raise AttributeError(item)
|
|
try:
|
|
return self[item]
|
|
except KeyError:
|
|
return ""
|
|
|
|
# apply the monkey-patch
|
|
pyparsing.ParseResults.__getattr__ = fixed_get_attr
|
|
|
|
pyparsing.ParserElement.enablePackrat()
|