#!/usr/bin/env python
# coding: Shift_JIS

# ##############################

# ファイル名: c_reform.py
# 機能: 1)解析対象のcファイルの中括弧を整形
#       2)解析対象のcファイル中のプロトタイプ宣言を削除
# 関数: c_reform
# 著者名: 山本椋太，若林丈紘

# ##############################

#from parse import *
import re
import sys

# ##############################

# 関数名: c_reform
# 機能: 1)解析対象のcファイルの中括弧を整形
#       2)解析対象のcファイル中のプロトタイプ宣言を削除
# 引数
#   readFile: 解析対象のcファイル
#   writeFile: 解析対象のcファイル

# ##############################

def c_reform(readFile,writeFile):

    fi = open(readFile)
    lines = fi.readlines()
    fi.close()

    fo = open(writeFile,"w")
    #fo2 = open("akaka.tsv",'w')

    i = 0
    for line in lines:
        if re.match("if[ \t]*\(",line) or re.match("else if[ \t]*\(",line) :
            hiraki_str = line.split("(")
            hiraki_num = len(hiraki_str)
            toji_str = line.split(")")
            toji_num = len(toji_str)
            while toji_num != hiraki_num:
                lines[i] = line[:-1]
                lines[i] += lines[i+1]
                del lines[i+1]
                hiraki_str = lines[i].split("(")
                hiraki_num = len(hiraki_str)
                toji_str = lines[i].split(")")
                toji_num = len(toji_str)

        if re.search(";$",line) and re.search("{",line)!=None and re.search("}",line)!=None:
            while re.search(";$",line):
                lines[i] += lines[i+1]
                del lines[i+1]
        i += 1

    for line in lines:
        #プロトタイプ宣言の削除
        if re.search("[_A-Za-z][_A-Za-z0-9]*[ \t]+[_A-Za-z][_A-Za-z0-9]*[ \t]*\([_A-Za-z][_A-Za-z0-9]*\);",line) == None:
            print(line, end="", file=fo)
    fo.close()

if __name__ == '__main__':
    c_reform(sys.argv[1],sys.argv[2])
