git @ Cat's Eye Technologies Unlikely / master src / coldwater.py
master

Tree @master (Download .tar.gz)

coldwater.py @masterraw · history · blame

#!/usr/bin/python
# -*- coding: utf-8 -*-

# (c)2010-2012 Chris Pressey, Cat's Eye Technologies.
# All rights reserved.  Released under a BSD-style license (see LICENSE).

"""
The Coldwater static analyzer for the Unlikely programming language.
"""

import sys
from optparse import OptionParser

from unlikely.scanner import Scanner
from unlikely.parser import ClassBaseParser
from unlikely.stdlib import stdlib


def load(filename, options):
    f = open(filename, "rb")
    scanner = Scanner(f.read())
    f.close()
    parser = ClassBaseParser(scanner, stdlib)
    parser.parse()
    if options.dump_ast:
        print("---AST---")
        print(str(stdlib))


def main(argv):
    usage = "[python] coldwater.py {options} {source.unlikely}"
    optparser = OptionParser(usage + "\n" + __doc__)
    optparser.add_option("-a", "--dump-ast",
                         action="store_true", dest="dump_ast", default=False,
                         help="dump AST after source is parsed")
    (options, args) = optparser.parse_args(argv[1:])
    for filename in args:
        load(filename, options)


if __name__ == "__main__":
    main(sys.argv)