Write compile_commands.json file. Because Jonquil does not support non-named arrays, create a custom json here.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(compile_command_table_t), | intent(inout) | :: | self |
Instance of the serializable object |
||
character(len=*), | intent(in) | :: | filename |
The file name |
||
type(error_t), | intent(out), | allocatable | :: | error |
Error handling |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(toml_array), | public | :: | array | ||||
type(json_ser_config), | public | :: | cfg | ||||
integer, | public | :: | lun | ||||
integer, | public | :: | stat |
subroutine cct_write(self, filename, error) !> Instance of the serializable object class(compile_command_table_t), intent(inout) :: self !> The file name character(*), intent(in) :: filename !> Error handling type(error_t), allocatable, intent(out) :: error type(toml_array) :: array type(json_ser_config) :: cfg integer :: stat, lun ! Init array array = toml_array() ! Dump information to the array call cct_dump_array(self, array, error) if (allocated(error)) return ! Open file and write to it open(newunit=lun,file=filename,form='formatted',action='write',status='replace',iostat=stat) if (stat/=0) then call fatal_error(error, 'cannot open file '//filename//' for writing') return end if ! Ensure the array has no key if (allocated(array%key)) deallocate(array%key) cfg%indent = repeat(' ',3) write (lun, '(A)', iostat=stat, err=1) json_serialize(array, cfg) close(lun,iostat=stat) 1 if (stat/=0) then call fatal_error(error, 'cannot close file '//filename//' after writing') return end if end subroutine cct_write