def parse(fn): import objjtokenizer l = ObjJLexer() l.build() l.test(objjtokenizer.cpp_and_open(fn)) return l.classes
'''method_args : method_part | method_args method_part''' if(len(p) == 2): p[0] = { 'selector': p[1][0], 'args': [ (p[1][1], p[1][2]) ], } else: p[1]['selector'] += p[2][0] p[1]['args'].append((p[2][1], p[2][2])) p[0] = p[1] def p_method_part(self, p): 'method_part : SELIDENTIFIER BRACE_OPEN IDENTIFIER BRACE_CLOSE IDENTIFIER' p[0] = (p[1], p[3], p[5]) def p_error(self, p): print "Syntax error in input:",p if __name__ == '__main__': import sys if len(sys.argv) == 1: tgt = 'Foundation/CPArray.j' else: tgt = sys.argv[1] l = ObjJLexer() l.build() l.test(objjtokenizer.cpp_and_open(tgt)) for c in l.classes: l.print_class(c)