Changeset 806 for proto


Ignore:
Timestamp:
Dec 10, 2010, 7:26:26 PM (9 years ago)
Author:
ksherdy
Message:

Add compiler 'mode' switches to display per pass info.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/Compiler/compiler2.py

    r804 r806  
    88#
    99
    10 import optparse, os
    11 import ast, pablo, string, sys, copy
     10import config, optparse
     11import ast, pablo, string, sys, copy, os
    1212
    1313class Program:
     
    6464if __name__ == '__main__':
    6565 
    66         # optparse
    67         parser = optparse.OptionParser(usage='python %prog [options] <input file>',
    68                                         version='1.0',
    69                                         )
    70        
    71         # Argument definitions
    72         parser.add_option('-t', '--template',
    73                           dest='template_filename',
    74                           type='string',
    75                           default='template.c',
    76                           help='default:template.c'
    77                           )
    78 
    79         parser.add_option('-o', '--output',
    80                           dest='output_filename',
    81                           type='string',
    82                           default='code.c',
    83                           help='default:code.c',
    84                           )
    85                          
    86         options, args = parser.parse_args()
     66        option_parser = config.get_option_parser()
     67        options, args = option_parser.parse_args(sys.argv[1:])
    8768
    8869        # Positional arguments
     
    9273        input_file = args[0]
    9374        input_string = readfile(input_file)
    94 
    95         # Optional arguments
    96         output_filename = options.output_filename
    97         template_filename = options.template_filename
    98 
    99         s = Program(output_filename, template_filename).generate_code(input_string)
     75               
     76        # Compiler modes
     77        if options.struct_decs:
     78                print pablo.StreamStructGen().gen(ast.parse(input_string))
     79               
     80        elif options.func_defs:
     81                print pablo.FunctionXformer().xlat(ast.parse(input_string))
     82               
     83        else:
     84                s = Program(options.output_filename, options.template_filename).generate_code(input_string)
Note: See TracChangeset for help on using the changeset viewer.