def parse_function(content):
matched = function_regexp_compile.match(content)<EOL>if not matched:<EOL><INDENT>raise p_exception.FunctionNotFound("<STR_LIT>".format(content))<EOL><DEDENT>function_meta = {<EOL>"<STR_LIT>": matched.group(<NUM_LIT:1>),<EOL>"<STR_LIT:args>": [],<EOL>"<STR_LIT>": {}<EOL>}<EOL>args_str = matched.group(<NUM_LIT:2>).replace("<STR_LIT:U+0020>", "<STR_LIT>")<EOL>if args_str == "<STR_LIT>":<EOL><INDENT>return function_meta<EOL><DEDENT>args_list = args_str.split('<STR_LIT:U+002C>')<EOL>for arg in args_list:<EOL><INDENT>if '<STR_LIT:=>' in arg:<EOL><INDENT>key, value = arg.split('<STR_LIT:=>')<EOL>function_meta["<STR_LIT>"][key] = parse_string_value(value)<EOL><DEDENT>else:<EOL><INDENT>function_meta["<STR_LIT:args>"].append(parse_string_value(arg))<EOL><DEDENT><DEDENT>return function_meta<EOL>
parse function name and args from string content.
    @param (str) content
    @return (dict) function name and args

    e.g. 
    print(parse_function("func()")); # => {'kwargs': {}, 'args': [], 'func_name': 'func'}
    print(parse_function("func(5)")); # => {'kwargs': {}, 'args': [5], 'func_name': 'func'}
    print(parse_function("func(a=1, b=2)")); # => {'kwargs': {'a': 1, 'b': 2}, 'args': [], 'func_name': 'func'}
    print(parse_function('func(a,b,c)')); # => {'kwargs': {}, 'args': ['a', 'b', 'c'], 'func_name': 'func'}