Skip to content

Commit ef3df8e

Browse files
chore: update dependencies
1 parent d83d0a4 commit ef3df8e

File tree

9 files changed

+99
-120
lines changed

9 files changed

+99
-120
lines changed

example/print-to-json.f90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ program print_to_json
33
!!
44
!! Compile and run run this program by executing the following
55
!! command from the top-level directory of the dag source tree:
6-
!!
6+
!!
77
!! fpm run --example print-to-json
88
!!
99
use dag_m, only: dag_t
1010
use vertex_m, only: vertex_t
11-
use iso_varying_string, only : varying_string, var_str, char
11+
use iso_varying_string, only : varying_string, var_str
1212
implicit none
1313

1414
character(len=*), parameter :: longest_name = "iso_varying_string"
@@ -27,7 +27,7 @@ program print_to_json
2727
,dag_s => findloc(names, "dag_s", dim=1) &
2828
,main => findloc(names, "main", dim=1) &
2929
)
30-
block
30+
block
3131
type(dag_t) program_units
3232

3333
program_units = dag_t([ &
@@ -41,7 +41,7 @@ program print_to_json
4141
])
4242

4343
associate(json_object => program_units%to_json())
44-
print *, char(json_object%to_expanded_string())
44+
print *, json_object%to_expanded_string()
4545
end associate
4646
end block
4747
end associate

example/read-from-json.f90

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,31 @@ program read_from_json
44
!! Compile and run run this program by executing the following
55
!! command from the top-level directory of the dag source tree:
66
!!
7-
!! fpm run --example read-from-json
7+
!! fpm run --example read-from-json
88
!!
99
use dag_m, only: dag_t
10-
use jsonff, only : parse_json_from_file, json_object_t
10+
use rojff, only : parse_json_from_file, json_object_t
1111
use iso_varying_string, only : char
1212
implicit none
1313

1414

1515
associate(parsed_json => parse_json_from_file('example/dag-dependencies.json'))
1616

1717
if (parsed_json%failed()) then
18-
associate(errors => parsed_json%errors())
19-
error stop char(errors%to_string())
20-
end associate
18+
error stop char(parsed_json%errors%to_string())
2119
end if
2220

2321
block
24-
class(json_object_t), allocatable :: json_object
2522
type(dag_t) dag
2623

27-
json_object = parsed_json%value_()
28-
dag = dag_t(json_object)
24+
select type (obj => parsed_json%value_)
25+
type is (json_object_t)
26+
dag = dag_t(obj)
27+
class default
28+
error stop "json wasn't an object: " // obj%to_compact_string()
29+
end select
2930
end block
3031

3132
end associate
3233

33-
end program
34+
end program

fpm.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ maintainer = "[email protected]"
66
copyright = "2020-2021 Sourcery Institute"
77

88
[dependencies]
9-
jsonff = {git = "https://gitlab.com/everythingfunctional/jsonff", tag = "v3.0.0"}
10-
erloff = {git = "https://gitlab.com/everythingfunctional/erloff", tag = "v2.1.0"}
11-
iso_varying_string = {git = "https://gitlab.com/everythingfunctional/iso_varying_string", tag = "v2.0.0"}
12-
assert = {git = "https://github.com/sourceryinstitute/assert", tag = "1.3.0"}
9+
rojff = { git = "https://gitlab.com/everythingfunctional/rojff", tag = "v1.0.0" }
10+
erloff = { git = "https://gitlab.com/everythingfunctional/erloff", tag = "v2.2.0" }
11+
iso_varying_string = { git = "https://gitlab.com/everythingfunctional/iso_varying_string", tag = "v3.0.4" }
12+
assert = { git = "https://github.com/sourceryinstitute/assert", tag = "1.4.0" }
1313

1414
[dev-dependencies]
15-
vegetables = {git = "https://gitlab.com/everythingfunctional/vegetables", tag = "v7.2.1"}
15+
veggies = { git = "https://gitlab.com/everythingfunctional/veggies", tag = "v1.0.5" }

src/dag_m.f90

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ module dag_m
55
!! date: 2020-Nov-30
66
!! license: Copyright (c) 2020, Sourcery Institute, BSD 3-clause license Copyright (c) 2018 Jacob Williams
77
use vertex_m, only : vertex_t
8-
use jsonff, only : json_object_t
9-
use iso_varying_string, only : varying_string
8+
use rojff, only : json_object_t
109

1110
implicit none
1211

@@ -68,7 +67,7 @@ elemental module function num_vertices(self)
6867
end function
6968

7069
pure module function depends_on(self, vertex_num) result(dependencies)
71-
!! Result is an array of the vertex numbers that depend on on vertex vertex_num
70+
!! Result is an array of the vertex numbers that depend on on vertex vertex_num
7271
implicit none
7372
class(dag_t), intent(in) :: self
7473
integer, intent(in) :: vertex_num

src/dag_s.f90

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
submodule(dag_m) dag_s
22
use assert_m, only : assert
3-
use jsonff, only: &
3+
use rojff, only: &
4+
fallible_json_member_t, &
5+
fallible_json_object_t, &
46
fallible_json_string_t, &
57
fallible_json_value_t, &
68
json_array_t, &
7-
json_element_t, &
8-
json_string_t, &
9-
parse_json
10-
use erloff, only : error_list_t
9+
json_element_t
1110
use iso_fortran_env, only: iostat_end
12-
use iso_varying_string, only : varying_string, operator(//), char, get, put, var_str
11+
use iso_varying_string, only : operator(//), char
1312
use intrinsic_array_m, only : intrinsic_array_t
1413

1514
implicit none
1615

1716
type searched_and_ordered_t
1817
integer, allocatable, dimension(:) :: s, o
19-
end type
18+
end type
2019

2120
contains
2221

@@ -109,36 +108,32 @@ end function topological_sort
109108

110109
module procedure construct_from_json
111110
type(fallible_json_value_t) :: maybe_vertices
112-
type(error_list_t) errors
113111

114-
maybe_vertices = json_object%get_element("vertices")
115-
errors = maybe_vertices%errors()
116-
call assert(.not. errors%has_any(), "dag_s construct_from_json: .not. errors%has_any()", char(errors%to_string()))
112+
maybe_vertices = json_object%get("vertices")
113+
call assert( &
114+
.not. maybe_vertices%errors%has_any(), &
115+
"dag_s construct_from_json: .not. errors%has_any()", &
116+
char(maybe_vertices%errors%to_string()))
117117

118-
select type (vertices => maybe_vertices%value_())
118+
select type (vertices => maybe_vertices%value_)
119119
type is (json_array_t)
120-
dag%vertices = vertex_t(vertices%get_elements())
120+
dag%vertices = vertex_t(vertices%elements)
121121

122122
class default
123-
call assert(.false., "dag%from_json: vertices was not an array", char(vertices%to_compact_string()))
123+
call assert(.false., "dag%from_json: vertices was not an array", vertices%to_compact_string())
124124
end select
125125
dag%order = topological_sort(dag)
126126
end procedure
127127

128-
module procedure to_json
129-
type(fallible_json_string_t) maybe_key
130-
type(error_list_t) errors
131-
type(json_string_t) vertices_key
132-
type(json_array_t) vertices_value
128+
module procedure to_json
129+
type(fallible_json_object_t) maybe_result
133130

134-
maybe_key = fallible_json_string_t("vertices")
135-
errors = maybe_key%errors()
136-
call assert(.not. errors%has_any(), "dag%to_json: .not. errors%has_any()", char(errors%to_string()))
137-
138-
vertices_value = json_array_t(json_element_t(self%vertices%to_json()))
139-
vertices_key = maybe_key%string()
140-
json_object = json_object_t([vertices_key], [json_element_t(vertices_value)])
141-
end procedure
131+
maybe_result = fallible_json_object_t( &
132+
[ fallible_json_member_t("vertices", json_array_t(json_element_t(self%vertices%to_json()))) &
133+
])
134+
call assert(.not. maybe_result%errors%has_any(), "dag%to_json: .not. errors%has_any()", char(maybe_result%errors%to_string()))
135+
json_object = maybe_result%object
136+
end procedure
142137

143138
module procedure num_vertices
144139
num_vertices = size(self%vertices)

src/vertex_m.f90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module vertex_m
44
!! version: v1.0
55
!! date: 2020-Nov-30
66
!! license: Copyright (c) 2020-2021, Sourcery Institute, BSD 3-clause license Copyright (c) 2018 Jacob Williams
7-
use jsonff, only : json_element_t, json_object_t, json_value_t
7+
use rojff, only : json_element_t, json_object_t, json_value_t
88
use iso_varying_string, only : varying_string
99

1010
implicit none
@@ -21,10 +21,10 @@ module vertex_m
2121
contains
2222
procedure :: to_json
2323
procedure :: edges
24-
procedure :: label
24+
procedure :: label
2525
procedure :: attributes
2626
procedure :: edges_allocated
27-
end type
27+
end type
2828

2929
interface vertex_t
3030

@@ -54,7 +54,7 @@ pure module function construct_from_components(edges, label, attributes) result(
5454
end interface
5555

5656
interface
57-
57+
5858
elemental module function edges_allocated(self) result(edges_array_allocated)
5959
!! Result is .true. iff the edges component is allocated
6060
implicit none

src/vertex_s.f90

Lines changed: 30 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
submodule(vertex_m) vertex_s
2-
use jsonff, only : &
2+
use rojff, only : &
3+
fallible_json_member_t, &
4+
fallible_json_object_t, &
35
fallible_json_string_t, &
46
fallible_json_value_t, &
57
json_array_t, &
68
json_number_t, &
79
json_string_t, &
810
json_integer_t
9-
use erloff, only : error_list_t
10-
use iso_varying_string, only : char, assignment(=)
11+
use iso_varying_string, only : assignment(=), char
1112
use assert_m, only : assert
1213
implicit none
1314

@@ -18,36 +19,17 @@
1819
end procedure
1920

2021
module procedure to_json
21-
integer i
22-
type(json_string_t) :: edges_key, label_key, label_value
23-
type(json_array_t) :: edges_value
24-
type(error_list_t) :: errors
25-
type(fallible_json_string_t) :: maybe_key, maybe_value
26-
27-
maybe_key = fallible_json_string_t("edges")
28-
errors = maybe_key%errors()
29-
call assert(.not. errors%has_any(), "vertex%to_json (edges key): .not. errors%has_any()", char(errors%to_string()))
30-
edges_key = maybe_key%string()
31-
32-
if (allocated(self%edges_)) then
33-
do i = lbound(self%edges_, 1), ubound(self%edges_, 1)
34-
call edges_value%append(json_integer_t(self%edges_(i)))
35-
end do
36-
end if
37-
38-
maybe_key = fallible_json_string_t("label")
39-
errors = maybe_key%errors()
40-
call assert(.not. errors%has_any(), "vertex%to_json (label key): .not. errors%has_any()", char(errors%to_string()))
41-
label_key = maybe_key%string()
42-
43-
maybe_value = fallible_json_string_t(self%label())
44-
errors = maybe_value%errors()
45-
call assert(.not. errors%has_any(), "vertex%to_json (label value): .not. errors%has_any()", char(errors%to_string()))
46-
label_value = maybe_value%string()
47-
48-
49-
json_object = json_object_t([label_key, edges_key], [json_element_t(label_value), json_element_t(edges_value)])
50-
22+
type(fallible_json_object_t) :: maybe_result
23+
24+
maybe_result = fallible_json_object_t( &
25+
[ fallible_json_member_t("label", fallible_json_value_t(fallible_json_string_t(self%label_))) &
26+
, fallible_json_member_t("edges", json_array_t(json_element_t(json_integer_t(self%edges_)))) &
27+
])
28+
call assert( &
29+
.not. maybe_result%errors%has_any(), &
30+
"vertex%to_json: .not. errors%has_any()", &
31+
char( maybe_result%errors%to_string()))
32+
json_object = maybe_result%object
5133
end procedure
5234

5335
module procedure construct_from_components
@@ -68,45 +50,42 @@
6850
end procedure
6951

7052
module procedure from_json_element
71-
vertex = vertex_t(json_element%value_())
53+
vertex = vertex_t(json_element%json)
7254
end procedure
7355

7456
module procedure from_json_value
7557
select type (json_value)
7658
type is (json_object_t)
7759
vertex = from_json_object(json_value)
7860
class default
79-
call assert(.false., "vertex%from_json_value: vertex was not an object", char(json_value%to_compact_string()))
61+
call assert(.false., "vertex%from_json_value: vertex was not an object", json_value%to_compact_string())
8062
end select
8163
end procedure
8264

8365
module procedure from_json_object
84-
type(error_list_t) :: errors
85-
type(fallible_json_value_t) :: maybe_edge
8666
type(fallible_json_value_t) :: maybe_edges
8767
integer :: i
8868

89-
maybe_edges = json_object%get_element("edges")
90-
errors = maybe_edges%errors()
91-
call assert(.not. errors%has_any(), "vertex%from_json: .not. errors%has_any()", char(errors%to_string()))
92-
select type (edges => maybe_edges%value_())
69+
maybe_edges = json_object%get("edges")
70+
call assert( &
71+
.not. maybe_edges%errors%has_any(), &
72+
"vertex%from_json: .not. errors%has_any()", &
73+
char(maybe_edges%errors%to_string()))
74+
select type (edges => maybe_edges%value_)
9375
type is (json_array_t)
94-
allocate(vertex%edges_(edges%length()))
95-
do i = 1, edges%length()
96-
maybe_edge = edges%get_element(i)
97-
errors = maybe_edge%errors()
98-
call assert(.not. errors%has_any(), "vertex%from_json: .not. errors%has_any()", char(errors%to_string()))
99-
select type (edge => maybe_edge%value_())
76+
allocate(vertex%edges_(size(edges%elements)))
77+
do i = 1, size(edges%elements)
78+
select type (edge => edges%elements(i)%json)
10079
type is (json_number_t)
101-
vertex%edges_(i) = int(edge%get_value())
80+
vertex%edges_(i) = int(edge%number)
10281
type is (json_integer_t)
103-
vertex%edges_(i) = edge%get_value()
82+
vertex%edges_(i) = edge%number
10483
class default
105-
call assert(.false., "vertex%from_json: edge was not a number", char(edge%to_compact_string()))
84+
call assert(.false., "vertex%from_json: edge was not a number", edge%to_compact_string())
10685
end select
10786
end do
10887
class default
109-
call assert(.false., "vertex%from_json: edges was not an array", char(edges%to_compact_string()))
88+
call assert(.false., "vertex%from_json: edges was not an array", edges%to_compact_string())
11089
end select
11190
end procedure
11291

0 commit comments

Comments
 (0)