Skip to content

Instantly share code, notes, and snippets.

@Komzpa
Created November 16, 2014 21:01
Show Gist options
  • Save Komzpa/a489c5275bf2fd99184e to your computer and use it in GitHub Desktop.
Save Komzpa/a489c5275bf2fd99184e to your computer and use it in GitHub Desktop.
cpp_source = open("cpp.cpp").read()
# удаляем whitespace
cpp_source = cpp_source.replace('\t', ' ')
cpp_source = cpp_source.replace(' ', ' ')
# удаляем комментарии
cpp_source = re.sub('//.*?$|/\*.*\*/', '', cpp_source, flags= re.S | re.M)
# скобочки отделяем
cpp_source = cpp_source.replace('{', '\n{\n')
cpp_source = cpp_source.replace('(', '\n(\n')
cpp_source = cpp_source.replace(')', '\n)\n')
cpp_source = cpp_source.replace('}', '\n}\n')
cpp_source = cpp_source.replace(']', '\n]\n')
cpp_source = cpp_source.replace('[', '\n[\n')
# разделители на отдельные строки
cpp_source = cpp_source.replace(',', '\n,\n')
cpp_source = cpp_source.replace(';', '\n;\n')
# операторы объединений
cpp_source = cpp_source.replace(' &&', '\n&&\n')
cpp_source = cpp_source.replace(' ||', '\n||\n')
cpp_source = cpp_source.replace(' -', '\n-\n')
cpp_source = cpp_source.replace(' +', '\n+\n')
# типы
cpp_source = cpp_source.replace('const ', '\nconst\n')
cpp_source = cpp_source.replace('int ', '\nint\n')
cpp_source = cpp_source.replace('void ', '\nvoid\n')
cpp_source = cpp_source.replace('void**', '\nvoid**\n')
cpp_source = cpp_source.replace('char ', '\nchar\n')
cpp_source = cpp_source.replace(' char', '\nchar\n')
cpp_source = cpp_source.replace('float ', '\nfloat\n')
cpp_source = cpp_source.replace('size_t ', '\nsize_t\n')
# операторы присваивания
cpp_source = cpp_source.replace(' = ', '\n=\n')
# операторы сравнения
cpp_source = cpp_source.replace(' > ', '\n>\n')
cpp_source = cpp_source.replace(' < ', '\n<\n')
cpp_source = cpp_source.replace(' >= ', '\n>=\n')
cpp_source = cpp_source.replace(' <= ', '\n<=\n')
cpp_source = cpp_source.replace(' != ', '\n!=\n')
cpp_source = cpp_source.replace(' == ', '\n==\n')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment