From: Eric S. Raymond Date: Tue, 20 Jan 2004 18:46:52 +0000 (+0000) Subject: Full argument parsing. X-Git-Tag: 1.0~185 X-Git-Url: http://thyrsus.com/gitweb/?a=commitdiff_plain;h=f90a7600a2121bd0211d85cc60d2916e3f11ba16;p=mad.git Full argument parsing. --- diff --git a/mad b/mad index d3cce88..50d1f11 100755 --- a/mad +++ b/mad @@ -492,16 +492,27 @@ if __name__ == '__main__': import getopt mad_debug = 0 (options, arguments) = getopt.getopt(sys.argv[1:], "d:") - print options for (opt, val) in options: if opt == '-d': mad_debug = int(val) - source = sys.stdin.read() - # Grotty hack to add end-of-statement delimiters - source = re.sub('\n([A-Z]|\t)', ' ;\n\\1', source).rstrip() + ' ;\n' - # Parse - yacc.parse(source, debug=mad_debug) + if len(arguments) == 0: + arguments = ['-'] + + for file in arguments: + if file == '-': + sourcefile = 'stdin' + source = sys.stdin.read() + else: + sourcefile = file + fp = open(file) + source = fp.read() + fp.close() + # Grotty hack to add end-of-statement delimiters + source = re.sub('\n([A-Z]|\t)', ' ;\n\\1', source).rstrip() + ' ;\n' + # Parse + yacc.parse(source, debug=mad_debug) + # Perform global analysis analyze(deck) # Generate code