def __init__(self, lexer=None, verbose=False, debug=False, mute_error=False, outputdir=''): lexer = lexer or BlinkIDLLexer() self.lexer = lexer self.tokens = lexer.KnownTokens() # Using SLR (instead of LALR) generates the table faster, # but produces the same output. This is ok b/c Web IDL (and Blink IDL) # is an SLR grammar (as is often the case for simple LL(1) grammars). self.yaccobj = yacc.yacc(module=self, start=STARTING_SYMBOL, method='SLR', debug=debug, outputdir=outputdir) self.parse_debug = debug self.verbose = verbose self.mute_error = mute_error self._parse_errors = 0 self._parse_warnings = 0 self._last_error_msg = None self._last_error_lineno = 0 self._last_error_pos = 0
def __init__( self, # common parameters debug=False, # local parameters rewrite_tables=False, # idl_parser parameters lexer=None, verbose=False, mute_error=False, # yacc parameters outputdir='', optimize=True, write_tables=False, picklefile=None): if debug: # Turn off optimization and caching, and write out tables, # to help debugging optimize = False outputdir = None picklefile = None write_tables = True if outputdir: picklefile = picklefile or os.path.join(outputdir, 'parsetab.pickle') if rewrite_tables: try: os.unlink(picklefile) except OSError: pass lexer = lexer or BlinkIDLLexer( debug=debug, outputdir=outputdir, optimize=optimize) self.lexer = lexer self.tokens = lexer.KnownTokens() # Optimized mode substantially decreases startup time (by disabling # error checking), and also allows use of Python's optimized mode. # See: Using Python's Optimized Mode # http://www.dabeaz.com/ply/ply.html#ply_nn38 # # |picklefile| allows simpler importing than |tabmodule| (parsetab.py), # as we don't need to modify sys.path; virtually identical speed. # See: CHANGES, Version 3.2 # http://ply.googlecode.com/svn/trunk/CHANGES self.yaccobj = yacc.yacc(module=self, debug=debug, optimize=optimize, write_tables=write_tables, picklefile=picklefile) # See IDLParser.__init__() why we set defaulted_states. self.yaccobj.defaulted_states = {} self.parse_debug = debug self.verbose = verbose self.mute_error = mute_error self._parse_errors = 0 self._parse_warnings = 0 self._last_error_msg = None self._last_error_lineno = 0 self._last_error_pos = 0
def __init__(self, # common parameters debug=False, # local parameters rewrite_tables=False, # idl_parser parameters lexer=None, verbose=False, mute_error=False, # yacc parameters outputdir='', optimize=True, write_tables=False, picklefile=None): if debug: # Turn off optimization and caching, and write out tables, # to help debugging optimize = False outputdir = None picklefile = None write_tables = True if outputdir: picklefile = picklefile or os.path.join(outputdir, 'parsetab.pickle') if rewrite_tables: try: os.unlink(picklefile) except OSError: pass lexer = lexer or BlinkIDLLexer(debug=debug, outputdir=outputdir, optimize=optimize) self.lexer = lexer self.tokens = lexer.KnownTokens() # Using SLR (instead of LALR) generates the table faster, # but produces the same output. This is ok b/c Web IDL (and Blink IDL) # is an SLR grammar (as is often the case for simple LL(1) grammars). # # Optimized mode substantially decreases startup time (by disabling # error checking), and also allows use of Python's optimized mode. # See: Using Python's Optimized Mode # http://www.dabeaz.com/ply/ply.html#ply_nn38 # # |picklefile| allows simpler importing than |tabmodule| (parsetab.py), # as we don't need to modify sys.path; virtually identical speed. # See: CHANGES, Version 3.2 # http://ply.googlecode.com/svn/trunk/CHANGES self.yaccobj = yacc.yacc(module=self, start=STARTING_SYMBOL, method='SLR', debug=debug, optimize=optimize, write_tables=write_tables, picklefile=picklefile) self.parse_debug = debug self.verbose = verbose self.mute_error = mute_error self._parse_errors = 0 self._parse_warnings = 0 self._last_error_msg = None self._last_error_lineno = 0 self._last_error_pos = 0