Commit d183de8a8d80a21bb8a94381d12e1d23becfdb28

Authored by decalage2
1 parent f41fe365

olevba: enabled packrat to improve pyparsing performance

Showing 1 changed file with 6 additions and 1 deletions
oletools/olevba.py
... ... @@ -183,6 +183,7 @@ https://github.com/unixfreak0037/officeparser
183 183 # - detect_autoexec now returns the exact keyword found
184 184 # 2016-09-05 PL: - added autoexec keywords for MS Publisher (.pub)
185 185 # 2016-09-06 PL: - fixed issue #20, is_zipfile on Python 2.6
  186 +# 2016-09-12 PL: - enabled packrat to improve pyparsing performance
186 187  
187 188 __version__ = '0.50'
188 189  
... ... @@ -256,7 +257,7 @@ from thirdparty.pyparsing.pyparsing import \
256 257 CaselessKeyword, CaselessLiteral, Combine, Forward, Literal, \
257 258 Optional, QuotedString,Regex, Suppress, Word, WordStart, \
258 259 alphanums, alphas, hexnums,nums, opAssoc, srange, \
259   - infixNotation
  260 + infixNotation, ParserElement
260 261 import ppt_parser
261 262  
262 263 # monkeypatch email to fix issue #32:
... ... @@ -671,6 +672,10 @@ re_printable_string = re.compile(r'[\t\r\n\x20-\xFF]{5,}')
671 672 # TODO: set whitespaces according to VBA
672 673 # TODO: merge extended lines before parsing
673 674  
  675 +# Enable PackRat for better performance:
  676 +# (see https://pythonhosted.org/pyparsing/pyparsing.ParserElement-class.html#enablePackrat)
  677 +ParserElement.enablePackrat()
  678 +
674 679 # VBA identifier chars (from MS-VBAL 3.3.5)
675 680 vba_identifier_chars = alphanums + '_'
676 681  
... ...