blob: 39bdb162d10620c2b1197c5a5efd0ff988987214 [file] [log] [blame]
Marc Slemko53027fc2006-08-17 01:12:11 +00001#!python
Marc Slemkodb14e172006-08-09 23:36:18 +00002import sys
Marc Slemko53027fc2006-08-17 01:12:11 +00003from thrift import cpp_generator
4from thrift import generator
5from thrift import parser
Marc Slemkodb14e172006-08-09 23:36:18 +00006
Marc Slemko53027fc2006-08-17 01:12:11 +00007def thrift(source, cpp=False, perl=False, php=False, python=False, java=False, ruby=False, debug=False):
Marc Slemkodb14e172006-08-09 23:36:18 +00008
9 generators = []
10
Marc Slemko53027fc2006-08-17 01:12:11 +000011 if cpp:
12 generators.append(cpp_generator.CPPGenerator())
13
14 p = parser.Parser(debug=debug)
15
16 p.parse(source, False)
17
18 for generator in generators:
19 generator(p.program, source)
20
21 if len(p.errors):
22 return -1
23 else:
24 return 0
25
26def main(args):
27
28 cpp = False
29 perl = False
30 php = False
31 python = False
32 java = False
33 ruby = False
34
Marc Slemkodb14e172006-08-09 23:36:18 +000035 debug = False
36
37 if "--cpp" in args:
Marc Slemko53027fc2006-08-17 01:12:11 +000038 cpp = True
Marc Slemkodb14e172006-08-09 23:36:18 +000039 args.remove("--cpp")
40 if "--debug" in args:
41 debug = True
42 args.remove("--debug")
43
44 filename = args[-1]
45
Marc Slemko53027fc2006-08-17 01:12:11 +000046 result = thrift(filename, cpp, java, perl, php, python, ruby, debug)
Marc Slemkodb14e172006-08-09 23:36:18 +000047
Marc Slemko53027fc2006-08-17 01:12:11 +000048 sys.exit(result)
Marc Slemkodb14e172006-08-09 23:36:18 +000049
Marc Slemko53027fc2006-08-17 01:12:11 +000050if __name__ == '__main__':
51 main(sys.argv)
Marc Slemkodb14e172006-08-09 23:36:18 +000052