From: <ssm...@us...> - 2007-02-27 15:06:18
|
Revision: 2272 http://svn.sourceforge.net/selinux/?rev=2272&view=rev Author: ssmalley Date: 2007-02-27 06:52:46 -0800 (Tue, 27 Feb 2007) Log Message: ----------- Author: Karl MacMillan Email: kma...@me... Subject: sepolgen: optionally generate debugging information during parsing Date: Thu, 22 Feb 2007 17:23:35 -0500 This patch allows a caller to request the output of debugging information from the parser. This is mainly useful for development / debugging of the parser. Signed-off-by: Karl MacMillan <kma...@me...> Modified Paths: -------------- trunk/sepolgen/ChangeLog trunk/sepolgen/VERSION trunk/sepolgen/src/sepolgen/refparser.py Modified: trunk/sepolgen/ChangeLog =================================================================== --- trunk/sepolgen/ChangeLog 2007-02-23 18:34:18 UTC (rev 2271) +++ trunk/sepolgen/ChangeLog 2007-02-27 14:52:46 UTC (rev 2272) @@ -1,3 +1,6 @@ +1.0.3 2007-02-27 + * Merged support for enabling parser debugging from Karl MacMillan. + 1.0.2 2007-02-22 * Merged patch to leave generated files (e.g. local.te) in current directory from Karl MacMillan. * Merged patch to make run-tests.py use unittest.main from Karl MacMillan. Modified: trunk/sepolgen/VERSION =================================================================== --- trunk/sepolgen/VERSION 2007-02-23 18:34:18 UTC (rev 2271) +++ trunk/sepolgen/VERSION 2007-02-27 14:52:46 UTC (rev 2272) @@ -1 +1 @@ -1.0.2 +1.0.3 Modified: trunk/sepolgen/src/sepolgen/refparser.py =================================================================== --- trunk/sepolgen/src/sepolgen/refparser.py 2007-02-23 18:34:18 UTC (rev 2271) +++ trunk/sepolgen/src/sepolgen/refparser.py 2007-02-27 14:52:46 UTC (rev 2272) @@ -611,11 +611,11 @@ parser = None lexer = None -def create_globals(module, support): +def create_globals(module, support, debug): global parser, lexer, m, spt if not parser: lexer = lex.lex() - parser = yacc.yacc(method="LALR", debug=0, write_tables=0) + parser = yacc.yacc(method="LALR", debug=debug, write_tables=0) if module is not None: m = module @@ -627,13 +627,13 @@ else: spt = support -def parse(text, module=None, support=None): - create_globals(module, support) +def parse(text, module=None, support=None, debug=False): + create_globals(module, support, debug) lexer.lexdata = [] lexer.lexpos = 0 try: - parser.parse(text, debug=0) + parser.parse(text, debug=debug) except Exception, e: global error error = "internal parser error: %s" % str(e) @@ -670,7 +670,7 @@ return (modules, support_macros) -def parse_headers(root, output=None, expand=True): +def parse_headers(root, output=None, expand=True, debug=False): import util headers = refpolicy.Headers() @@ -696,11 +696,13 @@ output.write(msg) def parse_file(f, module, spt=None): + if debug: + o("parsing file %s\n" % f) try: fd = open(f) txt = fd.read() fd.close() - parse(txt, module, spt) + parse(txt, module, spt, debug) except IOError, e: return except ValueError, e: @@ -726,7 +728,7 @@ o("done.\n") - if output: + if output and not debug: status = util.ConsoleProgressBar(sys.stdout, steps=len(modules)) status.start("Parsing interface files") @@ -744,7 +746,7 @@ continue headers.children.append(m) - if output: + if output and not debug: status.step() if len(failures): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |