#!/usr/bin/env python3

import sys
import os
import re

def process_file(fname):
	nlines = 0
	procname = ""
	with open(fname) as f:
		for line in f:
			nlines += 1
			if re.search("^{", line):
				nlines = 0
			elif re.search("^}", line) and procname and (nlines > 0):
				print("{:08d}:{}".format(nlines-1, procname))
				procname = ""
			else:
				m = re.search("^(\\w+)\\s*\\(", line)
				if m:
					procname = m.group(1)

def recursive_search(path):
	for file in os.listdir(path):
		if (file == ".") or (file == ".."):
			continue

		full_name = os.path.join(path, file)
		if not os.path.islink(full_name):
			if os.path.isdir(full_name):
				recursive_search(full_name)

			if re.search("\\.c$", file):
				process_file(full_name)

if len(sys.argv) < 2:
	print("Usage " + sys.argv[0] + " <path>")
	sys.exit(1)

start_path = sys.argv[1]
recursive_search(start_path)
