Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(debug), | intent(in) | :: | this |
impure subroutine print_error(this) class(debug), intent(in) :: this character(len=1) :: sev_letter character(len=*), parameter :: & ESC = char(27), & RED = ESC//"[31m", & YEL = ESC//"[33m", & BLU = ESC//"[34m", & GRY = ESC//"[90m", & RST = ESC//"[0m" character(len=5) :: color character(len=20) :: code_str character(:), allocatable :: line if (this%dbg .and. .not. this%ok) then select case (this%severity) case (ERROR); sev_letter = 'E'; color = RED case (WARNING); sev_letter = 'W'; color = YEL case (INFO); sev_letter = 'I'; color = BLU case default; sev_letter = 'N'; color = GRY end select write(code_str,'(i0)') this%code line = color//'['//sev_letter//trim(code_str)//']'//RST//' ' // & '('//GRY//trim(this%location)//RST//') ' // & trim(this%category)//': ' // & trim(this%message) if (len_trim(this%suggestion) > 0) then line = line//' ['//trim(this%suggestion)//']' end if write(*,'(a)') trim(line) end if end subroutine print_error