From fef5bee020bac0522af2a1ceec20b78098efac7c Mon Sep 17 00:00:00 2001
From: Jorge Canizales <jcanizales@google.com>
Date: Mon, 19 Oct 2015 12:24:28 -0700
Subject: [PATCH] Prototype script to change comment format.

Still needs implementing format_as_block, and switching input and output
to use sys.stdin.readline() and sys.stdout.write(line).
---
 src/objective-c/change-comments.py | 53 ++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 src/objective-c/change-comments.py

diff --git a/src/objective-c/change-comments.py b/src/objective-c/change-comments.py
new file mode 100644
index 0000000000..20351d5bf8
--- /dev/null
+++ b/src/objective-c/change-comments.py
@@ -0,0 +1,53 @@
+#!/usr/bin/python
+
+import re
+import sys
+
+print 'Number of arguments:', len(sys.argv), 'arguments.'
+print 'Argument List:', str(sys.argv)
+
+with open(sys.argv[0], "r") as input_file:
+  lines = input_file.readlines()
+
+def peek():
+  return lines[0]
+
+def read_line():
+  return lines.pop(0)
+
+def more_input():
+  return lines
+
+
+comment_regex = r'^(\s*)//\s(.*)$'
+
+def is_comment(line):
+  return re.search(comment_regex, line)
+
+def isnt_comment(line):
+  return not is_comment(line)
+
+def next_line(predicate):
+  if not more_input():
+    return False
+  return predicate(peek())
+
+
+output_lines = []
+
+def output(line):
+  output_lines.append(line)
+
+
+while more_input():
+  while next_line(isnt_comment):
+    output(read_line())
+
+  comment_block = []
+  # Get all lines in the same comment block. We could restrict the indentation
+  # to be the same as the first line of the block, but it's probably ok.
+  while (next_line(is_comment)):
+    comment_block.append(read_line())
+
+  for line in format_as_block(comment_block):
+    output(line)
-- 
GitLab