def main(args):
  projects = ProjectsMap(args.projects)
  files = list(set([os.path.normpath(l.strip()) for l in open(args.toparse, 'rU')]))
  
  writer = csv.writer(sys.stdout)
  
  for input_file in files:
    rows = []
    try:
      constants = record_constants(open(input_file, 'rU').read())
      for constant in constants:
        link, project = projects.link_file(input_file, constant.line)
        rows.append([link, project['name'], os.path.basename(input_file), input_file, constant.file_line_count, constant.line, constant.content])
      writer.writerows(rows)
    except MissingProject:
      pass
    except Exception, e:
      print >>sys.stderr, "SKIPPING %s: %s" % (input_file, e)
      writer.writerow(["S", input_file])
def main(args):
  projects = ProjectsMap(args.projects)
  files = list(set([os.path.normpath(l.strip()) for l in open(args.toparse, 'rU')]))
  
  writer = csv.writer(sys.stdout)
  
  for input_file in files:
    correct, ignored = [], []
    try:
      statements = record_blocks(open(input_file, 'rU').read())
      for statement in statements:
        link, project = projects.link_file(input_file, statement.line)
        if not statement.ignored:
          correct.append(["C", link, project['name'], os.path.basename(input_file), input_file, statement.file_line_count, statement.line, len(statement.alternatives), len(statement.content), statement.content])
        else:
          ignored.append(["I", link, project['name'], os.path.basename(input_file), input_file, statement.file_line_count, statement.line])
      writer.writerows(correct)
      writer.writerows(ignored)
    except MissingProject:
      pass
    except Exception, e:
      print >>sys.stderr, "SKIPPING %s: %s" % (input_file, e)
      writer.writerow(["S", input_file])