mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-02 12:48:14 +00:00
Update package encoding/json for or_return
This commit is contained in:
@@ -133,9 +133,7 @@ parse_value :: proc(p: ^Parser) -> (value: Value, err: Error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
parse_array :: proc(p: ^Parser) -> (value: Value, err: Error) {
|
parse_array :: proc(p: ^Parser) -> (value: Value, err: Error) {
|
||||||
if err = expect_token(p, .Open_Bracket); err != .None {
|
expect_token(p, .Open_Bracket) or_return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
array: Array;
|
array: Array;
|
||||||
array.allocator = p.allocator;
|
array.allocator = p.allocator;
|
||||||
@@ -147,11 +145,7 @@ parse_array :: proc(p: ^Parser) -> (value: Value, err: Error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for p.curr_token.kind != .Close_Bracket {
|
for p.curr_token.kind != .Close_Bracket {
|
||||||
elem, elem_err := parse_value(p);
|
elem := parse_value(p) or_return;
|
||||||
if elem_err != .None {
|
|
||||||
err = elem_err;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
append(&array, elem);
|
append(&array, elem);
|
||||||
|
|
||||||
// Disallow trailing commas for the time being
|
// Disallow trailing commas for the time being
|
||||||
@@ -162,10 +156,7 @@ parse_array :: proc(p: ^Parser) -> (value: Value, err: Error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = expect_token(p, .Close_Bracket); err != .None {
|
expect_token(p, .Close_Bracket) or_return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
value = array;
|
value = array;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -200,9 +191,7 @@ parse_object_key :: proc(p: ^Parser) -> (key: string, err: Error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
parse_object :: proc(p: ^Parser) -> (value: Value, err: Error) {
|
parse_object :: proc(p: ^Parser) -> (value: Value, err: Error) {
|
||||||
if err = expect_token(p, .Open_Brace); err != .None {
|
expect_token(p, .Open_Brace) or_return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
obj: Object;
|
obj: Object;
|
||||||
obj.allocator = p.allocator;
|
obj.allocator = p.allocator;
|
||||||
@@ -227,11 +216,7 @@ parse_object :: proc(p: ^Parser) -> (value: Value, err: Error) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
elem, elem_err := parse_value(p);
|
elem := parse_value(p) or_return;
|
||||||
if elem_err != .None {
|
|
||||||
err = elem_err;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if key in obj {
|
if key in obj {
|
||||||
err = .Duplicate_Object_Key;
|
err = .Duplicate_Object_Key;
|
||||||
@@ -256,10 +241,7 @@ parse_object :: proc(p: ^Parser) -> (value: Value, err: Error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = expect_token(p, .Close_Brace); err != .None {
|
expect_token(p, .Close_Brace) or_return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
value = obj;
|
value = obj;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user