8 def __init__ (self,input,output=None):
12 # left part is non-greedy
13 comment = re.compile("(.*?)--.*")
14 spaces = re.compile("^\s+(\S.*)")
15 view = re.compile("(?i)\s*create\s+(or\s+replace)?\s+view.*")
19 outfile = open(self.output, "a")
22 with open(self.input) as feed:
23 contents = feed.read()
24 parts = contents.split(";")
26 # normalize: remove comments, linebreaks, trailing spaces..
28 lines=part.split('\n');
32 match = Schema.comment.match(line)
35 out_lines.append(line)
37 out_line = " ".join(out_lines)
38 # remove trailing spaces
39 match = Schema.spaces.match(out_line)
41 out_line = match.group(1)
42 match = Schema.view.match(out_line)
44 outfile.write("{};\n".format(out_line))
45 if outfile != sys.stdout:
48 if __name__ == '__main__':
49 if len(sys.argv) not in [2, 3]:
50 print('Usage:', sys.argv[0], 'input [output]')
57 Schema(input, output).parse()