def _lex_trace_json(self, trace: str) -> T.Generator[(CMakeTraceLine, None, None)]:
    lines = trace.splitlines(keepends=False)
    lines.pop(0)
    for i in lines:
        data = json.loads(i)
        assert isinstance(data['file'], str)
        assert isinstance(data['line'], int)
        assert isinstance(data['cmd'], str)
        assert isinstance(data['args'], list)
        args = data['args']
        for j in args:
            assert isinstance(j, str)
        args = [parse_generator_expressions(x) for x in args]
        (yield CMakeTraceLine(data['file'], data['line'], data['cmd'], args))
def _lex_trace_json(self, trace: str) -> T.Generator[(CMakeTraceLine, None, None)]:
    lines = trace.splitlines(keepends=False)
    lines.pop(0)
    for i in lines:
        data = json.loads(i)
        assert isinstance(data['file'], str)
        assert isinstance(data['line'], int)
        assert isinstance(data['cmd'], str)
        assert isinstance(data['args'], list)
        args = data['args']
        for j in args:
            assert isinstance(j, str)
        args = [parse_generator_expressions(x) for x in args]
        (yield CMakeTraceLine(data['file'], data['line'], data['cmd'], args))