#!/usr/bin/env python3

import sys, os, logging

logging.basicConfig(level=logging.DEBUG, format="%(levelname)s: %(message)s")

# Extend PYTHONPATH with 'lib'
sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), os.pardir, "lib")))

from jasy.parser.Parser import parse
from jasy.process.Variables import scan

def jsdeps(source, filename=None):
    root = parse(source, filename)
    stats = scan(root)
    
    if stats.modified:
        print("Exported Variables:")
        for name in sorted(stats.modified):
            print(" - %s" % name)

    if stats.shared:
        print("Accessed Globals:")
        for name in sorted(stats.shared):
            print(" - %s (%sx)" % (name, stats.shared[name]))

    if stats.packages:
        print("Accessed Packages:")
        for package in sorted(stats.packages):
            print(" - %s (%sx)" % (package, stats.packages[package]))


if __name__ == "__main__":
    for fname in sys.argv[1:]:
        jsdeps(open(fname, encoding="utf-8").read(), fname)
