Update of /cvsroot/wisp/wisp/users/dig
In directory sc8-pr-cvs1:/tmp/cvs-serv10219
Modified Files:
tran.py
Log Message:
use getopt for command line parsing
Index: tran.py
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/tran.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- tran.py 12 Apr 2003 11:17:57 -0000 1.1
+++ tran.py 12 Apr 2003 17:46:24 -0000 1.2
@@ -10,12 +10,13 @@
from __future__ import generators
+from getopt import getopt
+from linkie import Linkie
from shlex import shlex
from types import *
import elf
import string
import sys
-from linkie import Linkie
class Lexer (shlex):
def __init__ (this, instream = None, infile = None):
@@ -220,7 +221,6 @@
Macrostack = []
Registers = {Generic_Register: 'reg'} # for reverse translation
-lex = Lexer(instream = open(sys.argv[1], 'r'), infile = sys.argv[1])
def get_token ():
if Macrostack:
@@ -238,13 +238,24 @@
State(tok)
tok = get_token()
-mainloop()
-print 'TEXT'; Text.dump()
-print 'DATA'; Data.dump()
-if Regstack:
- raise 'Regstack not empty after parsing ended', Regstack
-binary = elf.make_ELF32_executable(text = Text, data = Data, want_symbols = 1)
+def main ():
+ global lex
+ opts, args = getopt(sys.argv[1:], 'o:', ['output='])
+ if len(args) != 1:
+ raise 'Invalid argument count -- must be 1', args
+ lex = Lexer(instream = open(args[0], 'r'), infile = args[0])
+ output_name = 'a.out'
+ for opt, arg in opts:
+ if opt in ('-o', '--output'): output_name = arg
+ mainloop()
+ print 'TEXT'; Text.dump()
+ print 'DATA'; Data.dump()
+ if Regstack:
+ raise 'Regstack not empty after parsing ended', Regstack
+ binary = elf.make_ELF32_executable(text = Text, data = Data,
+ want_symbols = 1)
+ f = open(output_name, 'w')
+ binary.get_file().tofile(f)
+ f.close()
-f = open('a.out', 'w')
-binary.get_file().tofile(f)
-f.close()
+main()
|