def is_object(n, last):
if is_empty_object(n, last):<EOL><INDENT>return True<EOL><DEDENT>if not n.strip():<EOL><INDENT>return False<EOL><DEDENT>if len(argsplit(n, '<STR_LIT:;>')) > <NUM_LIT:1>:<EOL><INDENT>return False<EOL><DEDENT>cands = argsplit(n, '<STR_LIT:U+002C>')<EOL>if not cands[-<NUM_LIT:1>].strip():<EOL><INDENT>return True  <EOL><DEDENT>for cand in cands:<EOL><INDENT>cand = cand.strip()<EOL>kv = argsplit(cand, '<STR_LIT::>')<EOL>if len(<EOL>kv<EOL>) > <NUM_LIT:2>:  <EOL><INDENT>kv = kv[<NUM_LIT:0>], '<STR_LIT::>'.join(kv[<NUM_LIT:1>:])<EOL><DEDENT>if len(kv) == <NUM_LIT:2>:<EOL><INDENT>k, v = kv<EOL>if not is_lval(k.strip()):<EOL><INDENT>return False<EOL><DEDENT>v = v.strip()<EOL>if v.startswith('<STR_LIT>'):<EOL><INDENT>continue<EOL><DEDENT>if v[<NUM_LIT:0>] == '<STR_LIT:{>':  <EOL><INDENT>return False<EOL><DEDENT>for e in KEYWORD_METHODS:<EOL><INDENT>if v.startswith(e) and len(e) < len(v) and v[len(<EOL>e)] not in IDENTIFIER_PART:<EOL><INDENT>return False<EOL><DEDENT><DEDENT><DEDENT>elif not (cand.startswith('<STR_LIT>') or cand.startswith('<STR_LIT>')):<EOL><INDENT>return False<EOL><DEDENT><DEDENT>return True<EOL>
n may be the inside of block or object.
       last is the code before object