from jsscan import Tokenizer

if __name__ == '__main__':
    import os
    import sys

    text = open(os.path.expanduser(sys.argv[1]), 'r').read()
    
    t = Tokenizer(text)
    try:
        tokens = t.tokenize(ignore='whitespace')
        for token in tokens:
            if token[:2] == ('name', 'require'):
                lparen = tokens.next()[:2]
                modname = tokens.next()
                rparen = tokens.next()[:2]
                if (lparen == ('literal', '(') and
                    rparen == ('literal', ')') and
                    modname[0] == 'string'):
                    print "%s required at line %d, character %d" % (
                        modname[1],
                        token[2][0],
                        token[2][1]
                        )
                else:
                    print ("unusual require() found at "
                           "line %d, character %d" % (token[2][0],
                                                      token[2][1]))

    except TokenizationError, e:
        print e
        sys.exit(1)
