Error created when file parsing fails
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(error_t), | intent(out), | allocatable | :: | error |
Instance of the error data |
|
character(len=*), | intent(in) | :: | file_name |
Name of file |
||
character(len=*), | intent(in) | :: | message |
Parse error message |
||
integer, | intent(in), | optional | :: | line_num |
Line number of parse error |
|
character(len=*), | intent(in), | optional | :: | line_string |
Line context string |
|
integer, | intent(in), | optional | :: | line_col |
Line context column |
subroutine file_parse_error(error, file_name, message, line_num, & line_string, line_col) !> Instance of the error data type(error_t), allocatable, intent(out) :: error !> Name of file character(len=*), intent(in) :: file_name !> Parse error message character(len=*), intent(in) :: message !> Line number of parse error integer, intent(in), optional :: line_num !> Line context string character(len=*), intent(in), optional :: line_string !> Line context column integer, intent(in), optional :: line_col character(50) :: temp_string allocate(error) error%message = 'Parse error: '//message//new_line('a') error%message = error%message//file_name if (present(line_num)) then write(temp_string,'(I0)') line_num error%message = error%message//':'//trim(temp_string) end if if (present(line_col)) then if (line_col > 0) then write(temp_string,'(I0)') line_col error%message = error%message//':'//trim(temp_string) end if end if if (present(line_string)) then error%message = error%message//new_line('a') error%message = error%message//' | '//line_string if (present(line_col)) then if (line_col > 0) then error%message = error%message//new_line('a') error%message = error%message//' | '//repeat(' ',line_col-1)//'^' end if end if end if end subroutine file_parse_error