{
  "job_id": "W2-JOB-20260628022836-51484d62",
  "suite_id": "working2-abb120-spec",
  "robot_id": "abb_irb120_3_58",
  "coverage": {
    "specSections": [
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25
    ],
    "coveredSections": [
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      17,
      18,
      19,
      20,
      21,
      22,
      23,
      24,
      25
    ],
    "missingSections": [],
    "runtimePrograms": 12,
    "staticPrograms": 4,
    "postPrograms": 3
  },
  "summary": {
    "programs": 19,
    "pass": 14,
    "diagnostic": 5,
    "fail": 0
  },
  "diagnostics": [
    {
      "program_id": "W2_10_DataTargetToolFrame",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_tool preserved as raw IR",
      "sourceMap": {
        "line": 37,
        "column": 5
      }
    },
    {
      "program_id": "W2_10_DataTargetToolFrame",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement gripper preserved as raw IR",
      "sourceMap": {
        "line": 37,
        "column": 14
      }
    },
    {
      "program_id": "W2_10_DataTargetToolFrame",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_frame preserved as raw IR",
      "sourceMap": {
        "line": 38,
        "column": 5
      }
    },
    {
      "program_id": "W2_10_DataTargetToolFrame",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement fixture preserved as raw IR",
      "sourceMap": {
        "line": 38,
        "column": 15
      }
    },
    {
      "program_id": "W2_10_DataTargetToolFrame",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_speed preserved as raw IR",
      "sourceMap": {
        "line": 39,
        "column": 5
      }
    },
    {
      "program_id": "W2_10_DataTargetToolFrame",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement vl preserved as raw IR",
      "sourceMap": {
        "line": 39,
        "column": 15
      }
    },
    {
      "program_id": "W2_10_DataTargetToolFrame",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_zone preserved as raw IR",
      "sourceMap": {
        "line": 40,
        "column": 5
      }
    },
    {
      "program_id": "W2_10_DataTargetToolFrame",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement z5 preserved as raw IR",
      "sourceMap": {
        "line": 40,
        "column": 14
      }
    },
    {
      "program_id": "W2_30_MotionAllTypes",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_tool preserved as raw IR",
      "sourceMap": {
        "line": 13,
        "column": 5
      }
    },
    {
      "program_id": "W2_30_MotionAllTypes",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement gripper preserved as raw IR",
      "sourceMap": {
        "line": 13,
        "column": 14
      }
    },
    {
      "program_id": "W2_30_MotionAllTypes",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_frame preserved as raw IR",
      "sourceMap": {
        "line": 14,
        "column": 5
      }
    },
    {
      "program_id": "W2_30_MotionAllTypes",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement fixture preserved as raw IR",
      "sourceMap": {
        "line": 14,
        "column": 15
      }
    },
    {
      "program_id": "W2_30_MotionAllTypes",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_speed preserved as raw IR",
      "sourceMap": {
        "line": 15,
        "column": 5
      }
    },
    {
      "program_id": "W2_30_MotionAllTypes",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement vl preserved as raw IR",
      "sourceMap": {
        "line": 15,
        "column": 15
      }
    },
    {
      "program_id": "W2_30_MotionAllTypes",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_zone preserved as raw IR",
      "sourceMap": {
        "line": 16,
        "column": 5
      }
    },
    {
      "program_id": "W2_30_MotionAllTypes",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement z10 preserved as raw IR",
      "sourceMap": {
        "line": 16,
        "column": 14
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement movej preserved as raw IR",
      "sourceMap": {
        "line": 12,
        "column": 7
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement home preserved as raw IR",
      "sourceMap": {
        "line": 12,
        "column": 13
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement speed preserved as raw IR",
      "sourceMap": {
        "line": 12,
        "column": 18
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement v preserved as raw IR",
      "sourceMap": {
        "line": 12,
        "column": 24
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement zone preserved as raw IR",
      "sourceMap": {
        "line": 12,
        "column": 26
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement zf preserved as raw IR",
      "sourceMap": {
        "line": 12,
        "column": 31
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement elseif preserved as raw IR",
      "sourceMap": {
        "line": 13,
        "column": 5
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement fault preserved as raw IR",
      "sourceMap": {
        "line": 13,
        "column": 12
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement == preserved as raw IR",
      "sourceMap": {
        "line": 13,
        "column": 18
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement true preserved as raw IR",
      "sourceMap": {
        "line": 13,
        "column": 21
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement alarm preserved as raw IR",
      "sourceMap": {
        "line": 14,
        "column": 7
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement FAULT preserved as raw IR",
      "sourceMap": {
        "line": 14,
        "column": 13
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement \"fault\" preserved as raw IR",
      "sourceMap": {
        "line": 14,
        "column": 19
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement else preserved as raw IR",
      "sourceMap": {
        "line": 15,
        "column": 5
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement alarm preserved as raw IR",
      "sourceMap": {
        "line": 16,
        "column": 7
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement NOT_READY preserved as raw IR",
      "sourceMap": {
        "line": 16,
        "column": 13
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement \"not ready\" preserved as raw IR",
      "sourceMap": {
        "line": 16,
        "column": 23
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement retry preserved as raw IR",
      "sourceMap": {
        "line": 19,
        "column": 7
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement = preserved as raw IR",
      "sourceMap": {
        "line": 19,
        "column": 13
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement 1 preserved as raw IR",
      "sourceMap": {
        "line": 19,
        "column": 15
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement continue preserved as raw IR",
      "sourceMap": {
        "line": 20,
        "column": 7
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement movej preserved as raw IR",
      "sourceMap": {
        "line": 23,
        "column": 7
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement home preserved as raw IR",
      "sourceMap": {
        "line": 23,
        "column": 13
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement speed preserved as raw IR",
      "sourceMap": {
        "line": 23,
        "column": 18
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement v preserved as raw IR",
      "sourceMap": {
        "line": 23,
        "column": 24
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement zone preserved as raw IR",
      "sourceMap": {
        "line": 23,
        "column": 26
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement zf preserved as raw IR",
      "sourceMap": {
        "line": 23,
        "column": 31
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement case preserved as raw IR",
      "sourceMap": {
        "line": 26,
        "column": 7
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement 1 preserved as raw IR",
      "sourceMap": {
        "line": 26,
        "column": 12
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement alarm preserved as raw IR",
      "sourceMap": {
        "line": 27,
        "column": 9
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement MODE1 preserved as raw IR",
      "sourceMap": {
        "line": 27,
        "column": 15
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement \"mode 1\" preserved as raw IR",
      "sourceMap": {
        "line": 27,
        "column": 21
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement break preserved as raw IR",
      "sourceMap": {
        "line": 28,
        "column": 9
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement case preserved as raw IR",
      "sourceMap": {
        "line": 29,
        "column": 7
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement 2 preserved as raw IR",
      "sourceMap": {
        "line": 29,
        "column": 12
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement movej preserved as raw IR",
      "sourceMap": {
        "line": 30,
        "column": 9
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement home preserved as raw IR",
      "sourceMap": {
        "line": 30,
        "column": 15
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement speed preserved as raw IR",
      "sourceMap": {
        "line": 30,
        "column": 20
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement v preserved as raw IR",
      "sourceMap": {
        "line": 30,
        "column": 26
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement zone preserved as raw IR",
      "sourceMap": {
        "line": 30,
        "column": 28
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement zf preserved as raw IR",
      "sourceMap": {
        "line": 30,
        "column": 33
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement default preserved as raw IR",
      "sourceMap": {
        "line": 31,
        "column": 7
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement alarm preserved as raw IR",
      "sourceMap": {
        "line": 32,
        "column": 9
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement MODE_OTHER preserved as raw IR",
      "sourceMap": {
        "line": 32,
        "column": 15
      }
    },
    {
      "program_id": "W2_70_ControlFlow",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement \"mode other\" preserved as raw IR",
      "sourceMap": {
        "line": 32,
        "column": 26
      }
    },
    {
      "program_id": "W2_80_ProcFuncCall",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement movej preserved as raw IR",
      "sourceMap": {
        "line": 22,
        "column": 7
      }
    },
    {
      "program_id": "W2_80_ProcFuncCall",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement home preserved as raw IR",
      "sourceMap": {
        "line": 22,
        "column": 13
      }
    },
    {
      "program_id": "W2_80_ProcFuncCall",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement speed preserved as raw IR",
      "sourceMap": {
        "line": 22,
        "column": 18
      }
    },
    {
      "program_id": "W2_80_ProcFuncCall",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement v preserved as raw IR",
      "sourceMap": {
        "line": 22,
        "column": 24
      }
    },
    {
      "program_id": "W2_80_ProcFuncCall",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement zone preserved as raw IR",
      "sourceMap": {
        "line": 22,
        "column": 26
      }
    },
    {
      "program_id": "W2_80_ProcFuncCall",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement zf preserved as raw IR",
      "sourceMap": {
        "line": 22,
        "column": 31
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "warning",
      "code": "GRL_P1_UNIMPLEMENTED",
      "message": "trap recover_trap is parsed but not executable in P0",
      "sourceMap": {
        "line": 6,
        "column": 3
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "warning",
      "code": "GRL_P1_UNIMPLEMENTED",
      "message": "task background is parsed but not executable in P0",
      "sourceMap": {
        "line": 9,
        "column": 3
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement raise preserved as raw IR",
      "sourceMap": {
        "line": 16,
        "column": 7
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement E_PICK_FAILED preserved as raw IR",
      "sourceMap": {
        "line": 16,
        "column": 13
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement E_PICK_FAILED preserved as raw IR",
      "sourceMap": {
        "line": 17,
        "column": 11
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement alarm preserved as raw IR",
      "sourceMap": {
        "line": 18,
        "column": 7
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement RECOVER preserved as raw IR",
      "sourceMap": {
        "line": 18,
        "column": 13
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement \"recovering\" preserved as raw IR",
      "sourceMap": {
        "line": 18,
        "column": 21
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement severity preserved as raw IR",
      "sourceMap": {
        "line": 18,
        "column": 34
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement warning preserved as raw IR",
      "sourceMap": {
        "line": 18,
        "column": 43
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement alarm preserved as raw IR",
      "sourceMap": {
        "line": 20,
        "column": 7
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement CLEANUP preserved as raw IR",
      "sourceMap": {
        "line": 20,
        "column": 13
      }
    },
    {
      "program_id": "W2_90_ExceptionAlarm",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement \"cleanup\" preserved as raw IR",
      "sourceMap": {
        "line": 20,
        "column": 21
      }
    },
    {
      "program_id": "W2_99_FullSpecExample",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_tool preserved as raw IR",
      "sourceMap": {
        "line": 74,
        "column": 5
      }
    },
    {
      "program_id": "W2_99_FullSpecExample",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement gripper preserved as raw IR",
      "sourceMap": {
        "line": 74,
        "column": 14
      }
    },
    {
      "program_id": "W2_99_FullSpecExample",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement set_frame preserved as raw IR",
      "sourceMap": {
        "line": 75,
        "column": 5
      }
    },
    {
      "program_id": "W2_99_FullSpecExample",
      "severity": "info",
      "code": "GRL_RAW_STATEMENT_PRESERVED",
      "message": "Statement fixture preserved as raw IR",
      "sourceMap": {
        "line": 75,
        "column": 15
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_UNKNOWN_SYMBOL",
      "message": "Unknown constant missing_symbol",
      "sourceMap": {
        "line": 4,
        "column": 41
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_UNKNOWN_SYMBOL",
      "message": "Unknown constant missing_symbol",
      "sourceMap": {
        "line": 4,
        "column": 41
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_UNKNOWN_FUNCTION",
      "message": "Unknown function no_such_function",
      "sourceMap": {
        "line": 5,
        "column": 43
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_ARITY",
      "message": "atan2 expects 2 argument(s)",
      "sourceMap": {
        "line": 6,
        "column": 36
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_DOMAIN",
      "message": "Function argument is below domain",
      "sourceMap": {
        "line": 7,
        "column": 33
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_DIV_ZERO",
      "message": "Division by zero",
      "sourceMap": {
        "line": 8,
        "column": 35
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_UNIT_MISMATCH",
      "message": "Cannot combine length and time",
      "sourceMap": {
        "line": 9,
        "column": 25
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_UNKNOWN_SYMBOL",
      "message": "Unknown constant missing_symbol",
      "sourceMap": {
        "line": 4,
        "column": 41
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_UNKNOWN_FUNCTION",
      "message": "Unknown function no_such_function",
      "sourceMap": {
        "line": 5,
        "column": 43
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_ARITY",
      "message": "atan2 expects 2 argument(s)",
      "sourceMap": {
        "line": 6,
        "column": 36
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_DOMAIN",
      "message": "Function argument is below domain",
      "sourceMap": {
        "line": 7,
        "column": 33
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_DIV_ZERO",
      "message": "Division by zero",
      "sourceMap": {
        "line": 8,
        "column": 35
      }
    },
    {
      "program_id": "W2_E10_ExpressionDiagnostics",
      "severity": "error",
      "code": "GRL_EXPR_UNIT_MISMATCH",
      "message": "Cannot combine length and time",
      "sourceMap": {
        "line": 9,
        "column": 25
      }
    },
    {
      "program_id": "W2_E20_SemanticDiagnostics",
      "severity": "error",
      "code": "GRL_ARGUMENT_NOT_LVALUE",
      "message": "out argument done must be a writable lvalue",
      "sourceMap": {
        "line": 15,
        "column": 19
      }
    },
    {
      "program_id": "W2_E20_SemanticDiagnostics",
      "severity": "error",
      "code": "GRL_SYMBOL_DUPLICATE",
      "message": "Duplicate symbol v",
      "sourceMap": {
        "line": 4,
        "column": 3
      }
    },
    {
      "program_id": "W2_E20_SemanticDiagnostics",
      "severity": "error",
      "code": "GRL_ARGUMENT_NOT_LVALUE",
      "message": "out argument done must be a writable lvalue",
      "sourceMap": {
        "line": 15,
        "column": 19
      }
    },
    {
      "program_id": "W2_E20_SemanticDiagnostics",
      "severity": "error",
      "code": "GRL_FUNC_SIDE_EFFECT",
      "message": "Function bad_func cannot execute wait",
      "sourceMap": {
        "line": 11,
        "column": 5
      }
    },
    {
      "program_id": "W2_E20_SemanticDiagnostics",
      "severity": "error",
      "code": "GRL_CALL_TARGET_NOT_FOUND",
      "message": "Unknown call target missing_proc",
      "sourceMap": {
        "line": 16,
        "column": 5
      }
    },
    {
      "program_id": "W2_E20_SemanticDiagnostics",
      "severity": "error",
      "code": "GRL_TARGET_NOT_FOUND",
      "message": "Unknown target missing_target"
    },
    {
      "program_id": "W2_E30_MotionDiagnostics",
      "severity": "error",
      "code": "GRL_PATH_EMPTY",
      "message": "Path empty_path must contain at least one point"
    },
    {
      "program_id": "W2_E30_MotionDiagnostics",
      "severity": "error",
      "code": "GRL_PATH_EMPTY",
      "message": "Path empty_path must contain at least one point"
    },
    {
      "program_id": "W2_E30_MotionDiagnostics",
      "severity": "error",
      "code": "KDL_JOINT_LIMIT",
      "message": "joint_1 exceeds fixture limit",
      "segmentId": "main:MOVEJ",
      "sourceMap": {
        "line": 14,
        "column": 5
      }
    },
    {
      "program_id": "W2_E30_MotionDiagnostics",
      "severity": "error",
      "code": "KDL_TARGET_UNREACHABLE",
      "message": "Target main:MOVEL is outside ABB120 fixture workspace",
      "segmentId": "main:MOVEL",
      "sourceMap": {
        "line": 15,
        "column": 5
      }
    },
    {
      "program_id": "W2_E40_ControlFlowDiagnostics",
      "severity": "error",
      "code": "GRL_BREAK_OUTSIDE_FLOW",
      "message": "break is only valid inside loop or switch",
      "sourceMap": {
        "line": 5,
        "column": 5
      }
    },
    {
      "program_id": "W2_E40_ControlFlowDiagnostics",
      "severity": "error",
      "code": "GRL_BREAK_OUTSIDE_FLOW",
      "message": "break is only valid inside loop or switch",
      "sourceMap": {
        "line": 5,
        "column": 5
      }
    },
    {
      "program_id": "W2_E40_ControlFlowDiagnostics",
      "severity": "error",
      "code": "GRL_BREAK_OUTSIDE_FLOW",
      "message": "break is only valid inside loop or switch",
      "sourceMap": {
        "line": 5,
        "column": 5
      }
    },
    {
      "program_id": "W2_E40_ControlFlowDiagnostics",
      "severity": "error",
      "code": "GRL_CONTINUE_OUTSIDE_LOOP",
      "message": "continue is only valid inside loop",
      "sourceMap": {
        "line": 6,
        "column": 5
      }
    },
    {
      "program_id": "W2_E40_ControlFlowDiagnostics",
      "severity": "error",
      "code": "GRL_SWITCH_CASE_DUPLICATE",
      "message": "Duplicate switch case 1",
      "sourceMap": {
        "line": 14,
        "column": 7
      }
    },
    {
      "program_id": "W2_E40_ControlFlowDiagnostics",
      "severity": "error",
      "code": "GRL_SWITCH_CASE_NOT_CONSTANT",
      "message": "switch case must be a constant expression",
      "sourceMap": {
        "line": 16,
        "column": 7
      }
    },
    {
      "program_id": "W2_E40_ControlFlowDiagnostics",
      "severity": "error",
      "code": "GRL_LABEL_NOT_FOUND",
      "message": "Unknown label missing",
      "sourceMap": {
        "line": 19,
        "column": 5
      }
    },
    {
      "program_id": "W2_E40_ControlFlowDiagnostics",
      "severity": "error",
      "code": "GRL_JUMP_INTO_BLOCK",
      "message": "jump cannot enter a nested or sibling block"
    },
    {
      "program_id": "W2_E40_ControlFlowDiagnostics",
      "severity": "error",
      "code": "GRL_BREAK_OUTSIDE_FLOW",
      "message": "break is only valid inside loop or switch",
      "sourceMap": {
        "line": 5,
        "column": 5
      }
    },
    {
      "program_id": "W2_E50_RuntimeTimeout",
      "severity": "warning",
      "code": "VC_WAIT_TIMEOUT",
      "message": "Wait timed out after 0.1s",
      "sourceMap": {
        "line": 10,
        "column": 5
      },
      "data": {
        "condition": "io . di [ 99 ] == true"
      }
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "info",
      "code": "GRL_POST_HINT_IGNORED",
      "message": "post_hint fanuc ignored for abb",
      "data": {
        "brand": "abb"
      }
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "info",
      "code": "GRL_POST_HINT_IGNORED",
      "message": "post_hint kuka ignored for abb",
      "data": {
        "brand": "abb"
      }
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "info",
      "code": "GRL_POST_HINT_IGNORED",
      "message": "post_hint abb ignored for fanuc",
      "data": {
        "brand": "fanuc"
      }
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "info",
      "code": "GRL_POST_HINT_IGNORED",
      "message": "post_hint kuka ignored for fanuc",
      "data": {
        "brand": "fanuc"
      }
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "info",
      "code": "GRL_POST_HINT_IGNORED",
      "message": "post_hint abb ignored for kuka",
      "data": {
        "brand": "kuka"
      }
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "info",
      "code": "GRL_POST_HINT_IGNORED",
      "message": "post_hint fanuc ignored for kuka",
      "data": {
        "brand": "kuka"
      }
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "info",
      "code": "IMPORT_TARGETS",
      "message": "abb import mapped 1 targets"
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "info",
      "code": "IMPORT_MOTIONS",
      "message": "abb import mapped 1 motion points"
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "warning",
      "code": "IMPORT_TARGET_STUB",
      "message": "Target home was referenced by motion but had no parsed position; a zero pose stub was created",
      "sourceMap": {
        "file": "W2BrandHints.mod",
        "line": 3
      }
    },
    {
      "program_id": "W2_P10_BrandHints",
      "severity": "info",
      "code": "IMPORT_TOOL_DETECTED",
      "message": "abb tool selection detected and recorded as import metadata"
    },
    {
      "program_id": "W2_P20_CrossBrandMotion",
      "severity": "info",
      "code": "GRL_POST_HINT_IGNORED",
      "message": "post_hint abb ignored for fanuc",
      "data": {
        "brand": "fanuc"
      }
    },
    {
      "program_id": "W2_P20_CrossBrandMotion",
      "severity": "info",
      "code": "GRL_POST_HINT_IGNORED",
      "message": "post_hint abb ignored for kuka",
      "data": {
        "brand": "kuka"
      }
    },
    {
      "program_id": "W2_P20_CrossBrandMotion",
      "severity": "info",
      "code": "IMPORT_TARGETS",
      "message": "abb import mapped 1 targets"
    },
    {
      "program_id": "W2_P20_CrossBrandMotion",
      "severity": "info",
      "code": "IMPORT_MOTIONS",
      "message": "abb import mapped 1 motion points"
    },
    {
      "program_id": "W2_P20_CrossBrandMotion",
      "severity": "warning",
      "code": "IMPORT_TARGET_STUB",
      "message": "Target home was referenced by motion but had no parsed position; a zero pose stub was created",
      "sourceMap": {
        "file": "W2CrossBrandMotion.mod",
        "line": 3
      }
    },
    {
      "program_id": "W2_P20_CrossBrandMotion",
      "severity": "info",
      "code": "IMPORT_TOOL_DETECTED",
      "message": "abb tool selection detected and recorded as import metadata"
    },
    {
      "program_id": "W2_P30_Roundtrip",
      "severity": "warning",
      "code": "GRL_POST_UNSUPPORTED",
      "message": "RUN_OPERATION is not supported by abb prototype postprocessor",
      "data": {
        "brand": "abb"
      }
    },
    {
      "program_id": "W2_P30_Roundtrip",
      "severity": "warning",
      "code": "GRL_POST_UNSUPPORTED",
      "message": "RUN_OPERATION is not supported by fanuc prototype postprocessor",
      "data": {
        "brand": "fanuc"
      }
    },
    {
      "program_id": "W2_P30_Roundtrip",
      "severity": "warning",
      "code": "GRL_POST_UNSUPPORTED",
      "message": "RUN_OPERATION is not supported by kuka prototype postprocessor",
      "data": {
        "brand": "kuka"
      }
    },
    {
      "program_id": "W2_P30_Roundtrip",
      "severity": "info",
      "code": "IMPORT_TARGETS",
      "message": "abb import mapped 1 targets"
    },
    {
      "program_id": "W2_P30_Roundtrip",
      "severity": "info",
      "code": "IMPORT_MOTIONS",
      "message": "abb import mapped 1 motion points"
    },
    {
      "program_id": "W2_P30_Roundtrip",
      "severity": "warning",
      "code": "IMPORT_TARGET_STUB",
      "message": "Target home was referenced by motion but had no parsed position; a zero pose stub was created",
      "sourceMap": {
        "file": "W2Roundtrip.mod",
        "line": 3
      }
    },
    {
      "program_id": "W2_P30_Roundtrip",
      "severity": "info",
      "code": "IMPORT_TOOL_DETECTED",
      "message": "abb tool selection detected and recorded as import metadata"
    }
  ]
}
