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
 | 
						|
 | 
						|
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()
 |