merge main, update fail test descriptions

This commit is contained in:
Luke Boswell 2023-03-29 10:01:38 +11:00
parent e5dd4295c9
commit addc4debef
No known key found for this signature in database
GPG key ID: F6DB3C9DB47377B0
11 changed files with 1822 additions and 1855 deletions

View file

@ -405,13 +405,11 @@ decodeBool = Decode.custom \bytes, @Json {} ->
_ -> { result: Err TooShort, rest: bytes }
expect
actual : DecodeResult Bool
actual = "true\n" |> Str.toUtf8 |> Decode.fromBytesPartial fromUtf8
expected = Ok Bool.true
actual.result == expected
expect
actual : DecodeResult Bool
actual = "false ]\n" |> Str.toUtf8 |> Decode.fromBytesPartial fromUtf8
expected = Ok Bool.false
actual.result == expected
@ -459,12 +457,6 @@ parseExactChar = \bytes, char ->
Err _ -> { result: Err TooShort, rest: bytes }
# openBrace : List U8 -> DecodeResult {}
# openBrace = \bytes -> parseExactChar bytes '{'
# closingBrace : List U8 -> DecodeResult {}
# closingBrace = \bytes -> parseExactChar bytes '}'
openBracket : List U8 -> DecodeResult {}
openBracket = \bytes -> parseExactChar bytes '['
@ -474,9 +466,6 @@ closingBracket = \bytes -> parseExactChar bytes ']'
anything : List U8 -> DecodeResult {}
anything = \bytes -> { result: Err TooShort, rest: bytes }
# colon : List U8 -> DecodeResult {}
# colon = \bytes -> parseExactChar bytes ':'
comma : List U8 -> DecodeResult {}
comma = \bytes -> parseExactChar bytes ','
@ -588,10 +577,8 @@ expect
expected = { result: Ok 2u64, rest: [']'] }
actual == expected
# TODO why is this trying to decode as a Record?
# If you use Decode.fromBytesPartial it fails
expect
actual = "30,\n" |> Str.toUtf8 |> Decode.decodeWith decodeI64 fromUtf8
actual = "30,\n" |> Str.toUtf8 |> Decode.fromBytesPartial fromUtf8
expected = { result: Ok 30i64, rest: [',', '\n'] }
actual == expected
@ -1077,161 +1064,141 @@ expect
# JSON OBJECTS -----------------------------------------------------------------
# decodeRecord = \initialState, stepField, finalizer -> Decode.custom \bytes, @Json {} ->
# # NB: the stepper function must be passed explicitly until #2894 is resolved.
# decodeFields = \stepper, state, kvBytes ->
# { val: key, rest } <- (Decode.decodeWith kvBytes decodeString (@Json {})) |> tryDecode
# { rest: afterColonBytes } <- colon rest |> tryDecode
# { val: newState, rest: beforeCommaOrBreak } <- tryDecode
# (
# when stepper state key is
# Skip ->
# { rest: beforeCommaOrBreak } <- afterColonBytes |> anything |> tryDecode
# { result: Ok state, rest: beforeCommaOrBreak }
# Keep decoder ->
# Decode.decodeWith afterColonBytes decoder (@Json {})
# )
# { result: commaResult, rest: nextBytes } = comma beforeCommaOrBreak
# when commaResult is
# Ok {} -> decodeFields stepField newState nextBytes
# Err _ -> { result: Ok newState, rest: nextBytes }
# { rest: afterBraceBytes } <- bytes |> openBrace |> tryDecode
# { val: endStateResult, rest: beforeClosingBraceBytes } <- decodeFields stepField initialState afterBraceBytes |> tryDecode
# { rest: afterRecordBytes } <- beforeClosingBraceBytes |> closingBrace |> tryDecode
# when finalizer endStateResult is
# Ok val -> { result: Ok val, rest: afterRecordBytes }
# Err e -> { result: Err e, rest: afterRecordBytes }
decodeRecord = \initialState, stepField, finalizer -> Decode.custom \bytes, @Json {} ->
# Recursively build up record from object field:value pairs
decodeFields = \recordState, bytesBeforeField ->
# Recursively build up record from object field:value pairs
decodeFields = \recordState, bytesBeforeField ->
# Decode the json string field name
{result: fieldNameResult, rest: bytesAfterField} =
Decode.decodeWith bytesBeforeField decodeString fromUtf8
# Decode the json string field name
{ result: fieldNameResult, rest: bytesAfterField } =
Decode.decodeWith bytesBeforeField decodeString fromUtf8
# Count the bytes until the field value
countBytesBeforeValue = when List.walkUntil bytesAfterField (BeforeColon 0) objectHelp is
ObjectValueStart n -> n
_ -> 0
# Count the bytes until the field value
countBytesBeforeValue =
when List.walkUntil bytesAfterField (BeforeColon 0) objectHelp is
AfterColon n -> n
_ -> 0
valueBytes = List.drop bytesAfterField countBytesBeforeValue
valueBytes = List.drop bytesAfterField countBytesBeforeValue
when fieldNameResult is
Err TooShort ->
# Invalid object, unable to decode field name or find colon ':'
# after field and before the value
{result: Err TooShort, rest: bytes}
Ok fieldName ->
# Decode the json value
{val: updatedRecord, rest: bytesAfterValue } <-
(
# Retrieve value decoder for the current field
when stepField recordState fieldName is
Skip ->
# TODO This doesn't seem right, shouldn't we eat
# the remaining value bytes if we are skipping this
# field?
#
# Should rest be bytesAfterNextValue or similar?
{result: Ok recordState, rest: valueBytes}
when fieldNameResult is
Err TooShort ->
# Invalid object, unable to decode field name or find colon ':'
# after field and before the value
{ result: Err TooShort, rest: bytes }
Keep valueDecoder ->
# Decode the value using the decoder from the recordState
Decode.decodeWith valueBytes valueDecoder fromUtf8
)
|> tryDecode
Ok fieldName ->
# Decode the json value
{ val: updatedRecord, rest: bytesAfterValue } <-
(
# Retrieve value decoder for the current field
when stepField recordState fieldName is
Skip ->
# TODO This doesn't seem right, shouldn't we eat
# the remaining value bytes if we are skipping this
# field?
#
# Should rest be bytesAfterNextValue or similar?
{ result: Ok recordState, rest: valueBytes }
# Check if another field or '}' for end of object
when List.walkUntil bytesAfterValue (AfterObjectValue 0) objectHelp is
ObjectFieldNameStart n ->
rest = List.drop bytesAfterValue n
Keep valueDecoder ->
# Decode the value using the decoder from the recordState
Decode.decodeWith valueBytes valueDecoder fromUtf8
)
|> tryDecode
# Decode the next field and value
decodeFields updatedRecord rest
# Check if another field or '}' for end of object
when List.walkUntil bytesAfterValue (AfterObjectValue 0) objectHelp is
ObjectFieldNameStart n ->
rest = List.drop bytesAfterValue n
AfterClosingBrace n ->
rest = List.drop bytesAfterValue n
# Decode the next field and value
decodeFields updatedRecord rest
# Build final record from decoded fields and values
when finalizer updatedRecord is
Ok val -> { result: Ok val, rest }
Err e -> { result: Err e, rest }
AfterClosingBrace n ->
rest = List.drop bytesAfterValue n
_ ->
# Invalid object
{result : Err TooShort, rest: bytesAfterValue}
countBytesBeforeFirstField =
when List.walkUntil bytes (BeforeOpeningBrace 0) objectHelp is
ObjectFieldNameStart n -> n
_ -> 0
# Build final record from decoded fields and values
when finalizer updatedRecord is
Ok val -> { result: Ok val, rest }
Err e -> { result: Err e, rest }
if countBytesBeforeFirstField == 0 then
# Invalid object, expected opening brace '{' followed by a field
{result: Err TooShort, rest: bytes}
else
bytesBeforeFirstField = (List.drop bytes countBytesBeforeFirstField)
_ ->
# Invalid object
{ result: Err TooShort, rest: bytesAfterValue }
# Begin decoding field:value pairs
decodeFields initialState bytesBeforeFirstField
countBytesBeforeFirstField =
when List.walkUntil bytes (BeforeOpeningBrace 0) objectHelp is
ObjectFieldNameStart n -> n
_ -> 0
if countBytesBeforeFirstField == 0 then
# Invalid object, expected opening brace '{' followed by a field
{ result: Err TooShort, rest: bytes }
else
bytesBeforeFirstField = List.drop bytes countBytesBeforeFirstField
# Begin decoding field:value pairs
decodeFields initialState bytesBeforeFirstField
objectHelp : ObjectState, U8 -> [Break ObjectState, Continue ObjectState]
objectHelp = \state, byte ->
when (state, byte) is
(BeforeOpeningBrace n, b) if isWhitespace b -> Continue (BeforeOpeningBrace (n+1))
(BeforeOpeningBrace n, b) if b == '{' -> Continue (AfterOpeningBrace (n+1))
(AfterOpeningBrace n, b) if isWhitespace b -> Continue (AfterOpeningBrace (n+1))
when (state, byte) is
(BeforeOpeningBrace n, b) if isWhitespace b -> Continue (BeforeOpeningBrace (n + 1))
(BeforeOpeningBrace n, b) if b == '{' -> Continue (AfterOpeningBrace (n + 1))
(AfterOpeningBrace n, b) if isWhitespace b -> Continue (AfterOpeningBrace (n + 1))
(AfterOpeningBrace n, b) if b == '"' -> Break (ObjectFieldNameStart n) # field names must be a json string
(BeforeColon n, b) if isWhitespace b -> Continue (BeforeColon (n+1))
(BeforeColon n, b) if b == ':' -> Continue (AfterColon (n+1))
(AfterColon n, b) if isWhitespace b -> Continue (AfterColon (n+1))
(AfterColon n, _) -> Break (ObjectValueStart n) # object value could start with **almost** anything
(AfterObjectValue n, b) if isWhitespace b -> Continue (AfterObjectValue (n+1))
(AfterObjectValue n, b) if b == ',' -> Continue (AfterComma (n+1))
(AfterObjectValue n, b) if b == '}' -> Continue (AfterClosingBrace (n+1))
(AfterComma n, b) if isWhitespace b -> Continue (AfterComma (n+1))
(BeforeColon n, b) if isWhitespace b -> Continue (BeforeColon (n + 1))
(BeforeColon n, b) if b == ':' -> Continue (AfterColon (n + 1))
(AfterColon n, b) if isWhitespace b -> Continue (AfterColon (n + 1))
(AfterColon n, _) -> Break (AfterColon n) # object value could start with lots of things
(AfterObjectValue n, b) if isWhitespace b -> Continue (AfterObjectValue (n + 1))
(AfterObjectValue n, b) if b == ',' -> Continue (AfterComma (n + 1))
(AfterObjectValue n, b) if b == '}' -> Continue (AfterClosingBrace (n + 1))
(AfterComma n, b) if isWhitespace b -> Continue (AfterComma (n + 1))
(AfterComma n, b) if b == '"' -> Break (ObjectFieldNameStart n)
(AfterClosingBrace n, b) if isWhitespace b -> Continue (AfterClosingBrace (n+1))
(AfterClosingBrace n, b) if isWhitespace b -> Continue (AfterClosingBrace (n + 1))
_ -> Break InvalidObject
ObjectState : [
BeforeOpeningBrace Nat,
AfterOpeningBrace Nat,
ObjectFieldNameStart Nat,
BeforeColon Nat,
AfterColon Nat,
ObjectValueStart Nat,
BeforeColon Nat,
AfterColon Nat,
AfterObjectValue Nat,
AfterComma Nat,
AfterClosingBrace Nat,
AfterClosingBrace Nat,
InvalidObject,
]
# Test decode of simple Json Object into Roc Record
expect
input = Str.toUtf8 "{\"fruit\":2\n} "
actual = Decode.fromBytesPartial input fromUtf8
expected = Ok { fruit: 2 }
actual.result == expected
# Test decode of simple Json Object into Roc Record
# TODO assertion failed: value == 0 || value == 1
# Test decode of simple Json Object into Roc Record ignoring whitespace
# TODO this test makes `decodeI64` test fail
# expect
# input = Str.toUtf8 "{\"fruit\":\"two\"}"
# input = Str.toUtf8 " {\n\"fruit\"\t:2\n } "
# actual = Decode.fromBytesPartial input fromUtf8
# expected = Ok { fruit: "two" }
# expected = Ok { fruit: 2 }
# actual.result == expected
# Test decode of simple Json Object
# TODO this test makes `decodeString` tests fail
# expect
# input = Str.toUtf8 "{\"fruit\": \"apple\" }"
# actual = Decode.fromBytesPartial input fromUtf8
# expected = Ok { fruit: "apple" }
# actual.result == expected
# Test decode of simple Json Object
# TODO this test makes `decodeBool` tests fail
# expect
# input = Str.toUtf8 "{\"fruit\": true }"
# actual : DecodeResult { fruit : Bool }
# actual = Decode.fromBytesPartial input fromUtf8
# expected = Ok { fruit: Bool.true }
# actual.result == expected

View file

@ -7,7 +7,7 @@ procedure #Derived.2 (#Derived.3, #Derived.4, #Derived.1):
let #Derived_gen.8 : Str = CallByName #Derived.5 #Derived.1;
let #Derived_gen.6 : {Str, Str} = Struct {#Derived_gen.7, #Derived_gen.8};
let #Derived_gen.5 : List {Str, Str} = Array [#Derived_gen.6];
let #Derived_gen.4 : List {Str, Str} = CallByName Json.24 #Derived_gen.5;
let #Derived_gen.4 : List {Str, Str} = CallByName Json.25 #Derived_gen.5;
let #Derived_gen.3 : List U8 = CallByName Encode.24 #Derived.3 #Derived_gen.4 #Derived.4;
ret #Derived_gen.3;
@ -17,10 +17,10 @@ procedure #Derived.5 (#Derived.6):
procedure #Derived.7 (#Derived.8, #Derived.9, #Derived.6):
let #Derived_gen.21 : Str = "b";
let #Derived_gen.22 : Str = CallByName Json.22 #Derived.6;
let #Derived_gen.22 : Str = CallByName Json.23 #Derived.6;
let #Derived_gen.20 : {Str, Str} = Struct {#Derived_gen.21, #Derived_gen.22};
let #Derived_gen.19 : List {Str, Str} = Array [#Derived_gen.20];
let #Derived_gen.18 : List {Str, Str} = CallByName Json.24 #Derived_gen.19;
let #Derived_gen.18 : List {Str, Str} = CallByName Json.25 #Derived_gen.19;
let #Derived_gen.17 : List U8 = CallByName Encode.24 #Derived.8 #Derived_gen.18 #Derived.9;
ret #Derived_gen.17;
@ -44,7 +44,7 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.118 : List U8 = CallByName Json.155 Encode.99 Encode.101 Encode.107;
let Encode.118 : List U8 = CallByName Json.162 Encode.99 Encode.101 Encode.107;
ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
@ -52,11 +52,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.120;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.130 : List U8 = CallByName Json.155 Encode.99 Encode.101 Encode.107;
let Encode.130 : List U8 = CallByName Json.162 Encode.99 Encode.101 Encode.107;
ret Encode.130;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.133 : List U8 = CallByName Json.139 Encode.99 Encode.101 Encode.107;
let Encode.133 : List U8 = CallByName Json.146 Encode.99 Encode.101 Encode.107;
ret Encode.133;
procedure Encode.26 (Encode.105, Encode.106):
@ -66,150 +66,150 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108;
procedure Json.1 ():
let Json.814 : {} = Struct {};
ret Json.814;
let Json.878 : {} = Struct {};
ret Json.878;
procedure Json.139 (Json.140, Json.893, Json.138):
let Json.902 : I64 = 34i64;
let Json.901 : U8 = CallByName Num.127 Json.902;
let Json.899 : List U8 = CallByName List.4 Json.140 Json.901;
let Json.900 : List U8 = CallByName Str.12 Json.138;
let Json.896 : List U8 = CallByName List.8 Json.899 Json.900;
let Json.898 : I64 = 34i64;
let Json.897 : U8 = CallByName Num.127 Json.898;
let Json.895 : List U8 = CallByName List.4 Json.896 Json.897;
ret Json.895;
procedure Json.146 (Json.147, Json.957, Json.145):
let Json.966 : I64 = 34i64;
let Json.965 : U8 = CallByName Num.127 Json.966;
let Json.963 : List U8 = CallByName List.4 Json.147 Json.965;
let Json.964 : List U8 = CallByName Str.12 Json.145;
let Json.960 : List U8 = CallByName List.8 Json.963 Json.964;
let Json.962 : I64 = 34i64;
let Json.961 : U8 = CallByName Num.127 Json.962;
let Json.959 : List U8 = CallByName List.4 Json.960 Json.961;
ret Json.959;
procedure Json.155 (Json.156, Json.817, Json.154):
let Json.850 : I64 = 123i64;
let Json.849 : U8 = CallByName Num.127 Json.850;
let Json.158 : List U8 = CallByName List.4 Json.156 Json.849;
let Json.848 : U64 = CallByName List.6 Json.154;
let Json.825 : {List U8, U64} = Struct {Json.158, Json.848};
let Json.826 : {} = Struct {};
let Json.824 : {List U8, U64} = CallByName List.18 Json.154 Json.825 Json.826;
dec Json.154;
let Json.160 : List U8 = StructAtIndex 0 Json.824;
inc Json.160;
dec Json.824;
let Json.823 : I64 = 125i64;
let Json.822 : U8 = CallByName Num.127 Json.823;
let Json.821 : List U8 = CallByName List.4 Json.160 Json.822;
ret Json.821;
procedure Json.155 (Json.156, Json.817, Json.154):
let Json.890 : I64 = 123i64;
let Json.889 : U8 = CallByName Num.127 Json.890;
let Json.158 : List U8 = CallByName List.4 Json.156 Json.889;
let Json.888 : U64 = CallByName List.6 Json.154;
let Json.865 : {List U8, U64} = Struct {Json.158, Json.888};
let Json.866 : {} = Struct {};
let Json.864 : {List U8, U64} = CallByName List.18 Json.154 Json.865 Json.866;
dec Json.154;
let Json.160 : List U8 = StructAtIndex 0 Json.864;
inc Json.160;
dec Json.864;
let Json.863 : I64 = 125i64;
let Json.862 : U8 = CallByName Num.127 Json.863;
let Json.861 : List U8 = CallByName List.4 Json.160 Json.862;
ret Json.861;
procedure Json.157 (Json.819, Json.820):
let Json.163 : Str = StructAtIndex 0 Json.820;
inc Json.163;
let Json.164 : Str = StructAtIndex 1 Json.820;
inc Json.164;
dec Json.820;
let Json.161 : List U8 = StructAtIndex 0 Json.819;
inc Json.161;
let Json.162 : U64 = StructAtIndex 1 Json.819;
dec Json.819;
let Json.847 : I64 = 34i64;
let Json.846 : U8 = CallByName Num.127 Json.847;
let Json.844 : List U8 = CallByName List.4 Json.161 Json.846;
let Json.845 : List U8 = CallByName Str.12 Json.163;
let Json.841 : List U8 = CallByName List.8 Json.844 Json.845;
let Json.843 : I64 = 34i64;
let Json.842 : U8 = CallByName Num.127 Json.843;
let Json.838 : List U8 = CallByName List.4 Json.841 Json.842;
let Json.840 : I64 = 58i64;
let Json.839 : U8 = CallByName Num.127 Json.840;
let Json.836 : List U8 = CallByName List.4 Json.838 Json.839;
let Json.837 : {} = Struct {};
let Json.165 : List U8 = CallByName Encode.24 Json.836 Json.164 Json.837;
joinpoint Json.831 Json.166:
let Json.829 : U64 = 1i64;
let Json.828 : U64 = CallByName Num.20 Json.162 Json.829;
let Json.827 : {List U8, U64} = Struct {Json.166, Json.828};
ret Json.827;
in
let Json.835 : U64 = 1i64;
let Json.832 : Int1 = CallByName Num.24 Json.162 Json.835;
if Json.832 then
let Json.834 : I64 = 44i64;
let Json.833 : U8 = CallByName Num.127 Json.834;
let Json.830 : List U8 = CallByName List.4 Json.165 Json.833;
jump Json.831 Json.830;
else
jump Json.831 Json.165;
procedure Json.157 (Json.819, Json.820):
let Json.163 : Str = StructAtIndex 0 Json.820;
inc Json.163;
let Json.164 : Str = StructAtIndex 1 Json.820;
inc Json.164;
dec Json.820;
let Json.161 : List U8 = StructAtIndex 0 Json.819;
inc Json.161;
let Json.162 : U64 = StructAtIndex 1 Json.819;
dec Json.819;
let Json.887 : I64 = 34i64;
procedure Json.162 (Json.163, Json.881, Json.161):
let Json.914 : I64 = 123i64;
let Json.913 : U8 = CallByName Num.127 Json.914;
let Json.165 : List U8 = CallByName List.4 Json.163 Json.913;
let Json.912 : U64 = CallByName List.6 Json.161;
let Json.889 : {List U8, U64} = Struct {Json.165, Json.912};
let Json.890 : {} = Struct {};
let Json.888 : {List U8, U64} = CallByName List.18 Json.161 Json.889 Json.890;
dec Json.161;
let Json.167 : List U8 = StructAtIndex 0 Json.888;
inc Json.167;
dec Json.888;
let Json.887 : I64 = 125i64;
let Json.886 : U8 = CallByName Num.127 Json.887;
let Json.884 : List U8 = CallByName List.4 Json.161 Json.886;
let Json.885 : List U8 = CallByName Str.12 Json.163;
let Json.881 : List U8 = CallByName List.8 Json.884 Json.885;
let Json.883 : I64 = 34i64;
let Json.882 : U8 = CallByName Num.127 Json.883;
let Json.878 : List U8 = CallByName List.4 Json.881 Json.882;
let Json.880 : I64 = 58i64;
let Json.879 : U8 = CallByName Num.127 Json.880;
let Json.876 : List U8 = CallByName List.4 Json.878 Json.879;
let Json.877 : {} = Struct {};
let Json.165 : List U8 = CallByName Encode.24 Json.876 Json.164 Json.877;
joinpoint Json.871 Json.166:
let Json.869 : U64 = 1i64;
let Json.868 : U64 = CallByName Num.20 Json.162 Json.869;
let Json.867 : {List U8, U64} = Struct {Json.166, Json.868};
ret Json.867;
let Json.885 : List U8 = CallByName List.4 Json.167 Json.886;
ret Json.885;
procedure Json.162 (Json.163, Json.881, Json.161):
let Json.954 : I64 = 123i64;
let Json.953 : U8 = CallByName Num.127 Json.954;
let Json.165 : List U8 = CallByName List.4 Json.163 Json.953;
let Json.952 : U64 = CallByName List.6 Json.161;
let Json.929 : {List U8, U64} = Struct {Json.165, Json.952};
let Json.930 : {} = Struct {};
let Json.928 : {List U8, U64} = CallByName List.18 Json.161 Json.929 Json.930;
dec Json.161;
let Json.167 : List U8 = StructAtIndex 0 Json.928;
inc Json.167;
dec Json.928;
let Json.927 : I64 = 125i64;
let Json.926 : U8 = CallByName Num.127 Json.927;
let Json.925 : List U8 = CallByName List.4 Json.167 Json.926;
ret Json.925;
procedure Json.164 (Json.883, Json.884):
let Json.170 : Str = StructAtIndex 0 Json.884;
inc Json.170;
let Json.171 : Str = StructAtIndex 1 Json.884;
inc Json.171;
dec Json.884;
let Json.168 : List U8 = StructAtIndex 0 Json.883;
inc Json.168;
let Json.169 : U64 = StructAtIndex 1 Json.883;
dec Json.883;
let Json.911 : I64 = 34i64;
let Json.910 : U8 = CallByName Num.127 Json.911;
let Json.908 : List U8 = CallByName List.4 Json.168 Json.910;
let Json.909 : List U8 = CallByName Str.12 Json.170;
let Json.905 : List U8 = CallByName List.8 Json.908 Json.909;
let Json.907 : I64 = 34i64;
let Json.906 : U8 = CallByName Num.127 Json.907;
let Json.902 : List U8 = CallByName List.4 Json.905 Json.906;
let Json.904 : I64 = 58i64;
let Json.903 : U8 = CallByName Num.127 Json.904;
let Json.900 : List U8 = CallByName List.4 Json.902 Json.903;
let Json.901 : {} = Struct {};
let Json.172 : List U8 = CallByName Encode.24 Json.900 Json.171 Json.901;
joinpoint Json.895 Json.173:
let Json.893 : U64 = 1i64;
let Json.892 : U64 = CallByName Num.20 Json.169 Json.893;
let Json.891 : {List U8, U64} = Struct {Json.173, Json.892};
ret Json.891;
in
let Json.875 : U64 = 1i64;
let Json.872 : Int1 = CallByName Num.24 Json.162 Json.875;
if Json.872 then
let Json.874 : I64 = 44i64;
let Json.873 : U8 = CallByName Num.127 Json.874;
let Json.870 : List U8 = CallByName List.4 Json.165 Json.873;
jump Json.871 Json.870;
let Json.899 : U64 = 1i64;
let Json.896 : Int1 = CallByName Num.24 Json.169 Json.899;
if Json.896 then
let Json.898 : I64 = 44i64;
let Json.897 : U8 = CallByName Num.127 Json.898;
let Json.894 : List U8 = CallByName List.4 Json.172 Json.897;
jump Json.895 Json.894;
else
jump Json.871 Json.165;
jump Json.895 Json.172;
procedure Json.22 (Json.138):
let Json.891 : Str = CallByName Encode.23 Json.138;
ret Json.891;
procedure Json.164 (Json.883, Json.884):
let Json.170 : Str = StructAtIndex 0 Json.884;
inc Json.170;
let Json.171 : Str = StructAtIndex 1 Json.884;
inc Json.171;
dec Json.884;
let Json.168 : List U8 = StructAtIndex 0 Json.883;
inc Json.168;
let Json.169 : U64 = StructAtIndex 1 Json.883;
dec Json.883;
let Json.951 : I64 = 34i64;
let Json.950 : U8 = CallByName Num.127 Json.951;
let Json.948 : List U8 = CallByName List.4 Json.168 Json.950;
let Json.949 : List U8 = CallByName Str.12 Json.170;
let Json.945 : List U8 = CallByName List.8 Json.948 Json.949;
let Json.947 : I64 = 34i64;
let Json.946 : U8 = CallByName Num.127 Json.947;
let Json.942 : List U8 = CallByName List.4 Json.945 Json.946;
let Json.944 : I64 = 58i64;
let Json.943 : U8 = CallByName Num.127 Json.944;
let Json.940 : List U8 = CallByName List.4 Json.942 Json.943;
let Json.941 : {} = Struct {};
let Json.172 : List U8 = CallByName Encode.24 Json.940 Json.171 Json.941;
joinpoint Json.935 Json.173:
let Json.933 : U64 = 1i64;
let Json.932 : U64 = CallByName Num.20 Json.169 Json.933;
let Json.931 : {List U8, U64} = Struct {Json.173, Json.932};
ret Json.931;
in
let Json.939 : U64 = 1i64;
let Json.936 : Int1 = CallByName Num.24 Json.169 Json.939;
if Json.936 then
let Json.938 : I64 = 44i64;
let Json.937 : U8 = CallByName Num.127 Json.938;
let Json.934 : List U8 = CallByName List.4 Json.172 Json.937;
jump Json.935 Json.934;
else
jump Json.935 Json.172;
procedure Json.24 (Json.154):
let Json.815 : List {Str, Str} = CallByName Encode.23 Json.154;
ret Json.815;
procedure Json.23 (Json.145):
let Json.955 : Str = CallByName Encode.23 Json.145;
ret Json.955;
procedure Json.24 (Json.154):
let Json.857 : List {Str, Str} = CallByName Encode.23 Json.154;
ret Json.857;
procedure Json.25 (Json.161):
let Json.879 : List {Str, Str} = CallByName Encode.23 Json.161;
ret Json.879;
procedure Json.25 (Json.161):
let Json.921 : List {Str, Str} = CallByName Encode.23 Json.161;
ret Json.921;
procedure List.139 (List.140, List.141, List.138):
let List.535 : {List U8, U64} = CallByName Json.157 List.140 List.141;
let List.535 : {List U8, U64} = CallByName Json.164 List.140 List.141;
ret List.535;
procedure List.139 (List.140, List.141, List.138):
let List.608 : {List U8, U64} = CallByName Json.157 List.140 List.141;
let List.608 : {List U8, U64} = CallByName Json.164 List.140 List.141;
ret List.608;
procedure List.18 (List.136, List.137, List.138):

View file

@ -4,10 +4,10 @@ procedure #Derived.0 (#Derived.1):
procedure #Derived.2 (#Derived.3, #Derived.4, #Derived.1):
let #Derived_gen.7 : Str = "a";
let #Derived_gen.8 : Str = CallByName Json.22 #Derived.1;
let #Derived_gen.8 : Str = CallByName Json.23 #Derived.1;
let #Derived_gen.6 : {Str, Str} = Struct {#Derived_gen.7, #Derived_gen.8};
let #Derived_gen.5 : List {Str, Str} = Array [#Derived_gen.6];
let #Derived_gen.4 : List {Str, Str} = CallByName Json.24 #Derived_gen.5;
let #Derived_gen.4 : List {Str, Str} = CallByName Json.25 #Derived_gen.5;
let #Derived_gen.3 : List U8 = CallByName Encode.24 #Derived.3 #Derived_gen.4 #Derived.4;
ret #Derived_gen.3;
@ -25,11 +25,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.118 : List U8 = CallByName Json.155 Encode.99 Encode.101 Encode.107;
let Encode.118 : List U8 = CallByName Json.162 Encode.99 Encode.101 Encode.107;
ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.121 : List U8 = CallByName Json.139 Encode.99 Encode.101 Encode.107;
let Encode.121 : List U8 = CallByName Json.146 Encode.99 Encode.101 Encode.107;
ret Encode.121;
procedure Encode.26 (Encode.105, Encode.106):
@ -39,86 +39,86 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108;
procedure Json.1 ():
let Json.814 : {} = Struct {};
ret Json.814;
let Json.878 : {} = Struct {};
ret Json.878;
procedure Json.139 (Json.140, Json.853, Json.138):
let Json.862 : I64 = 34i64;
let Json.861 : U8 = CallByName Num.127 Json.862;
let Json.859 : List U8 = CallByName List.4 Json.140 Json.861;
let Json.860 : List U8 = CallByName Str.12 Json.138;
let Json.856 : List U8 = CallByName List.8 Json.859 Json.860;
let Json.858 : I64 = 34i64;
let Json.857 : U8 = CallByName Num.127 Json.858;
let Json.855 : List U8 = CallByName List.4 Json.856 Json.857;
ret Json.855;
procedure Json.146 (Json.147, Json.917, Json.145):
let Json.926 : I64 = 34i64;
let Json.925 : U8 = CallByName Num.127 Json.926;
let Json.923 : List U8 = CallByName List.4 Json.147 Json.925;
let Json.924 : List U8 = CallByName Str.12 Json.145;
let Json.920 : List U8 = CallByName List.8 Json.923 Json.924;
let Json.922 : I64 = 34i64;
let Json.921 : U8 = CallByName Num.127 Json.922;
let Json.919 : List U8 = CallByName List.4 Json.920 Json.921;
ret Json.919;
procedure Json.155 (Json.156, Json.817, Json.154):
let Json.850 : I64 = 123i64;
let Json.849 : U8 = CallByName Num.127 Json.850;
let Json.158 : List U8 = CallByName List.4 Json.156 Json.849;
let Json.848 : U64 = CallByName List.6 Json.154;
let Json.825 : {List U8, U64} = Struct {Json.158, Json.848};
let Json.826 : {} = Struct {};
let Json.824 : {List U8, U64} = CallByName List.18 Json.154 Json.825 Json.826;
dec Json.154;
let Json.160 : List U8 = StructAtIndex 0 Json.824;
inc Json.160;
dec Json.824;
let Json.823 : I64 = 125i64;
let Json.822 : U8 = CallByName Num.127 Json.823;
let Json.821 : List U8 = CallByName List.4 Json.160 Json.822;
ret Json.821;
procedure Json.162 (Json.163, Json.881, Json.161):
let Json.914 : I64 = 123i64;
let Json.913 : U8 = CallByName Num.127 Json.914;
let Json.165 : List U8 = CallByName List.4 Json.163 Json.913;
let Json.912 : U64 = CallByName List.6 Json.161;
let Json.889 : {List U8, U64} = Struct {Json.165, Json.912};
let Json.890 : {} = Struct {};
let Json.888 : {List U8, U64} = CallByName List.18 Json.161 Json.889 Json.890;
dec Json.161;
let Json.167 : List U8 = StructAtIndex 0 Json.888;
inc Json.167;
dec Json.888;
let Json.887 : I64 = 125i64;
let Json.886 : U8 = CallByName Num.127 Json.887;
let Json.885 : List U8 = CallByName List.4 Json.167 Json.886;
ret Json.885;
procedure Json.157 (Json.819, Json.820):
let Json.163 : Str = StructAtIndex 0 Json.820;
inc Json.163;
let Json.164 : Str = StructAtIndex 1 Json.820;
inc Json.164;
dec Json.820;
let Json.161 : List U8 = StructAtIndex 0 Json.819;
inc Json.161;
let Json.162 : U64 = StructAtIndex 1 Json.819;
dec Json.819;
let Json.847 : I64 = 34i64;
let Json.846 : U8 = CallByName Num.127 Json.847;
let Json.844 : List U8 = CallByName List.4 Json.161 Json.846;
let Json.845 : List U8 = CallByName Str.12 Json.163;
let Json.841 : List U8 = CallByName List.8 Json.844 Json.845;
let Json.843 : I64 = 34i64;
let Json.842 : U8 = CallByName Num.127 Json.843;
let Json.838 : List U8 = CallByName List.4 Json.841 Json.842;
let Json.840 : I64 = 58i64;
let Json.839 : U8 = CallByName Num.127 Json.840;
let Json.836 : List U8 = CallByName List.4 Json.838 Json.839;
let Json.837 : {} = Struct {};
let Json.165 : List U8 = CallByName Encode.24 Json.836 Json.164 Json.837;
joinpoint Json.831 Json.166:
let Json.829 : U64 = 1i64;
let Json.828 : U64 = CallByName Num.20 Json.162 Json.829;
let Json.827 : {List U8, U64} = Struct {Json.166, Json.828};
ret Json.827;
procedure Json.164 (Json.883, Json.884):
let Json.170 : Str = StructAtIndex 0 Json.884;
inc Json.170;
let Json.171 : Str = StructAtIndex 1 Json.884;
inc Json.171;
dec Json.884;
let Json.168 : List U8 = StructAtIndex 0 Json.883;
inc Json.168;
let Json.169 : U64 = StructAtIndex 1 Json.883;
dec Json.883;
let Json.911 : I64 = 34i64;
let Json.910 : U8 = CallByName Num.127 Json.911;
let Json.908 : List U8 = CallByName List.4 Json.168 Json.910;
let Json.909 : List U8 = CallByName Str.12 Json.170;
let Json.905 : List U8 = CallByName List.8 Json.908 Json.909;
let Json.907 : I64 = 34i64;
let Json.906 : U8 = CallByName Num.127 Json.907;
let Json.902 : List U8 = CallByName List.4 Json.905 Json.906;
let Json.904 : I64 = 58i64;
let Json.903 : U8 = CallByName Num.127 Json.904;
let Json.900 : List U8 = CallByName List.4 Json.902 Json.903;
let Json.901 : {} = Struct {};
let Json.172 : List U8 = CallByName Encode.24 Json.900 Json.171 Json.901;
joinpoint Json.895 Json.173:
let Json.893 : U64 = 1i64;
let Json.892 : U64 = CallByName Num.20 Json.169 Json.893;
let Json.891 : {List U8, U64} = Struct {Json.173, Json.892};
ret Json.891;
in
let Json.835 : U64 = 1i64;
let Json.832 : Int1 = CallByName Num.24 Json.162 Json.835;
if Json.832 then
let Json.834 : I64 = 44i64;
let Json.833 : U8 = CallByName Num.127 Json.834;
let Json.830 : List U8 = CallByName List.4 Json.165 Json.833;
jump Json.831 Json.830;
let Json.899 : U64 = 1i64;
let Json.896 : Int1 = CallByName Num.24 Json.169 Json.899;
if Json.896 then
let Json.898 : I64 = 44i64;
let Json.897 : U8 = CallByName Num.127 Json.898;
let Json.894 : List U8 = CallByName List.4 Json.172 Json.897;
jump Json.895 Json.894;
else
jump Json.831 Json.165;
jump Json.895 Json.172;
procedure Json.22 (Json.138):
let Json.851 : Str = CallByName Encode.23 Json.138;
ret Json.851;
procedure Json.23 (Json.145):
let Json.915 : Str = CallByName Encode.23 Json.145;
ret Json.915;
procedure Json.24 (Json.154):
let Json.815 : List {Str, Str} = CallByName Encode.23 Json.154;
ret Json.815;
procedure Json.25 (Json.161):
let Json.879 : List {Str, Str} = CallByName Encode.23 Json.161;
ret Json.879;
procedure List.139 (List.140, List.141, List.138):
let List.541 : {List U8, U64} = CallByName Json.157 List.140 List.141;
let List.541 : {List U8, U64} = CallByName Json.164 List.140 List.141;
ret List.541;
procedure List.18 (List.136, List.137, List.138):

View file

@ -6,16 +6,16 @@ procedure #Derived.2 (#Derived.3, #Derived.4, #Derived.1):
let #Derived_gen.11 : Str = "a";
let #Derived_gen.13 : Str = StructAtIndex 0 #Derived.1;
inc #Derived_gen.13;
let #Derived_gen.12 : Str = CallByName Json.22 #Derived_gen.13;
let #Derived_gen.12 : Str = CallByName Json.23 #Derived_gen.13;
let #Derived_gen.6 : {Str, Str} = Struct {#Derived_gen.11, #Derived_gen.12};
let #Derived_gen.8 : Str = "b";
let #Derived_gen.10 : Str = StructAtIndex 1 #Derived.1;
inc #Derived_gen.10;
dec #Derived.1;
let #Derived_gen.9 : Str = CallByName Json.22 #Derived_gen.10;
let #Derived_gen.9 : Str = CallByName Json.23 #Derived_gen.10;
let #Derived_gen.7 : {Str, Str} = Struct {#Derived_gen.8, #Derived_gen.9};
let #Derived_gen.5 : List {Str, Str} = Array [#Derived_gen.6, #Derived_gen.7];
let #Derived_gen.4 : List {Str, Str} = CallByName Json.24 #Derived_gen.5;
let #Derived_gen.4 : List {Str, Str} = CallByName Json.25 #Derived_gen.5;
let #Derived_gen.3 : List U8 = CallByName Encode.24 #Derived.3 #Derived_gen.4 #Derived.4;
ret #Derived_gen.3;
@ -33,11 +33,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.118 : List U8 = CallByName Json.155 Encode.99 Encode.101 Encode.107;
let Encode.118 : List U8 = CallByName Json.162 Encode.99 Encode.101 Encode.107;
ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.122 : List U8 = CallByName Json.139 Encode.99 Encode.101 Encode.107;
let Encode.122 : List U8 = CallByName Json.146 Encode.99 Encode.101 Encode.107;
ret Encode.122;
procedure Encode.26 (Encode.105, Encode.106):
@ -47,86 +47,86 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108;
procedure Json.1 ():
let Json.814 : {} = Struct {};
ret Json.814;
let Json.878 : {} = Struct {};
ret Json.878;
procedure Json.139 (Json.140, Json.853, Json.138):
let Json.862 : I64 = 34i64;
let Json.861 : U8 = CallByName Num.127 Json.862;
let Json.859 : List U8 = CallByName List.4 Json.140 Json.861;
let Json.860 : List U8 = CallByName Str.12 Json.138;
let Json.856 : List U8 = CallByName List.8 Json.859 Json.860;
let Json.858 : I64 = 34i64;
let Json.857 : U8 = CallByName Num.127 Json.858;
let Json.855 : List U8 = CallByName List.4 Json.856 Json.857;
ret Json.855;
procedure Json.146 (Json.147, Json.917, Json.145):
let Json.926 : I64 = 34i64;
let Json.925 : U8 = CallByName Num.127 Json.926;
let Json.923 : List U8 = CallByName List.4 Json.147 Json.925;
let Json.924 : List U8 = CallByName Str.12 Json.145;
let Json.920 : List U8 = CallByName List.8 Json.923 Json.924;
let Json.922 : I64 = 34i64;
let Json.921 : U8 = CallByName Num.127 Json.922;
let Json.919 : List U8 = CallByName List.4 Json.920 Json.921;
ret Json.919;
procedure Json.155 (Json.156, Json.817, Json.154):
let Json.850 : I64 = 123i64;
let Json.849 : U8 = CallByName Num.127 Json.850;
let Json.158 : List U8 = CallByName List.4 Json.156 Json.849;
let Json.848 : U64 = CallByName List.6 Json.154;
let Json.825 : {List U8, U64} = Struct {Json.158, Json.848};
let Json.826 : {} = Struct {};
let Json.824 : {List U8, U64} = CallByName List.18 Json.154 Json.825 Json.826;
dec Json.154;
let Json.160 : List U8 = StructAtIndex 0 Json.824;
inc Json.160;
dec Json.824;
let Json.823 : I64 = 125i64;
let Json.822 : U8 = CallByName Num.127 Json.823;
let Json.821 : List U8 = CallByName List.4 Json.160 Json.822;
ret Json.821;
procedure Json.162 (Json.163, Json.881, Json.161):
let Json.914 : I64 = 123i64;
let Json.913 : U8 = CallByName Num.127 Json.914;
let Json.165 : List U8 = CallByName List.4 Json.163 Json.913;
let Json.912 : U64 = CallByName List.6 Json.161;
let Json.889 : {List U8, U64} = Struct {Json.165, Json.912};
let Json.890 : {} = Struct {};
let Json.888 : {List U8, U64} = CallByName List.18 Json.161 Json.889 Json.890;
dec Json.161;
let Json.167 : List U8 = StructAtIndex 0 Json.888;
inc Json.167;
dec Json.888;
let Json.887 : I64 = 125i64;
let Json.886 : U8 = CallByName Num.127 Json.887;
let Json.885 : List U8 = CallByName List.4 Json.167 Json.886;
ret Json.885;
procedure Json.157 (Json.819, Json.820):
let Json.163 : Str = StructAtIndex 0 Json.820;
inc Json.163;
let Json.164 : Str = StructAtIndex 1 Json.820;
inc Json.164;
dec Json.820;
let Json.161 : List U8 = StructAtIndex 0 Json.819;
inc Json.161;
let Json.162 : U64 = StructAtIndex 1 Json.819;
dec Json.819;
let Json.847 : I64 = 34i64;
let Json.846 : U8 = CallByName Num.127 Json.847;
let Json.844 : List U8 = CallByName List.4 Json.161 Json.846;
let Json.845 : List U8 = CallByName Str.12 Json.163;
let Json.841 : List U8 = CallByName List.8 Json.844 Json.845;
let Json.843 : I64 = 34i64;
let Json.842 : U8 = CallByName Num.127 Json.843;
let Json.838 : List U8 = CallByName List.4 Json.841 Json.842;
let Json.840 : I64 = 58i64;
let Json.839 : U8 = CallByName Num.127 Json.840;
let Json.836 : List U8 = CallByName List.4 Json.838 Json.839;
let Json.837 : {} = Struct {};
let Json.165 : List U8 = CallByName Encode.24 Json.836 Json.164 Json.837;
joinpoint Json.831 Json.166:
let Json.829 : U64 = 1i64;
let Json.828 : U64 = CallByName Num.20 Json.162 Json.829;
let Json.827 : {List U8, U64} = Struct {Json.166, Json.828};
ret Json.827;
procedure Json.164 (Json.883, Json.884):
let Json.170 : Str = StructAtIndex 0 Json.884;
inc Json.170;
let Json.171 : Str = StructAtIndex 1 Json.884;
inc Json.171;
dec Json.884;
let Json.168 : List U8 = StructAtIndex 0 Json.883;
inc Json.168;
let Json.169 : U64 = StructAtIndex 1 Json.883;
dec Json.883;
let Json.911 : I64 = 34i64;
let Json.910 : U8 = CallByName Num.127 Json.911;
let Json.908 : List U8 = CallByName List.4 Json.168 Json.910;
let Json.909 : List U8 = CallByName Str.12 Json.170;
let Json.905 : List U8 = CallByName List.8 Json.908 Json.909;
let Json.907 : I64 = 34i64;
let Json.906 : U8 = CallByName Num.127 Json.907;
let Json.902 : List U8 = CallByName List.4 Json.905 Json.906;
let Json.904 : I64 = 58i64;
let Json.903 : U8 = CallByName Num.127 Json.904;
let Json.900 : List U8 = CallByName List.4 Json.902 Json.903;
let Json.901 : {} = Struct {};
let Json.172 : List U8 = CallByName Encode.24 Json.900 Json.171 Json.901;
joinpoint Json.895 Json.173:
let Json.893 : U64 = 1i64;
let Json.892 : U64 = CallByName Num.20 Json.169 Json.893;
let Json.891 : {List U8, U64} = Struct {Json.173, Json.892};
ret Json.891;
in
let Json.835 : U64 = 1i64;
let Json.832 : Int1 = CallByName Num.24 Json.162 Json.835;
if Json.832 then
let Json.834 : I64 = 44i64;
let Json.833 : U8 = CallByName Num.127 Json.834;
let Json.830 : List U8 = CallByName List.4 Json.165 Json.833;
jump Json.831 Json.830;
let Json.899 : U64 = 1i64;
let Json.896 : Int1 = CallByName Num.24 Json.169 Json.899;
if Json.896 then
let Json.898 : I64 = 44i64;
let Json.897 : U8 = CallByName Num.127 Json.898;
let Json.894 : List U8 = CallByName List.4 Json.172 Json.897;
jump Json.895 Json.894;
else
jump Json.831 Json.165;
jump Json.895 Json.172;
procedure Json.22 (Json.138):
let Json.863 : Str = CallByName Encode.23 Json.138;
ret Json.863;
procedure Json.23 (Json.145):
let Json.927 : Str = CallByName Encode.23 Json.145;
ret Json.927;
procedure Json.24 (Json.154):
let Json.815 : List {Str, Str} = CallByName Encode.23 Json.154;
ret Json.815;
procedure Json.25 (Json.161):
let Json.879 : List {Str, Str} = CallByName Encode.23 Json.161;
ret Json.879;
procedure List.139 (List.140, List.141, List.138):
let List.541 : {List U8, U64} = CallByName Json.157 List.140 List.141;
let List.541 : {List U8, U64} = CallByName Json.164 List.140 List.141;
ret List.541;
procedure List.18 (List.136, List.137, List.138):

View file

@ -2,33 +2,33 @@ procedure Encode.23 (Encode.98):
ret Encode.98;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.111 : List U8 = CallByName Json.139 Encode.99 Encode.101 Encode.107;
let Encode.111 : List U8 = CallByName Json.146 Encode.99 Encode.101 Encode.107;
ret Encode.111;
procedure Encode.26 (Encode.105, Encode.106):
let Encode.109 : List U8 = Array [];
let Encode.110 : Str = CallByName Json.22 Encode.105;
let Encode.110 : Str = CallByName Json.23 Encode.105;
let Encode.108 : List U8 = CallByName Encode.24 Encode.109 Encode.110 Encode.106;
ret Encode.108;
procedure Json.1 ():
let Json.814 : {} = Struct {};
ret Json.814;
let Json.878 : {} = Struct {};
ret Json.878;
procedure Json.139 (Json.140, Json.817, Json.138):
let Json.826 : I64 = 34i64;
let Json.825 : U8 = CallByName Num.127 Json.826;
let Json.823 : List U8 = CallByName List.4 Json.140 Json.825;
let Json.824 : List U8 = CallByName Str.12 Json.138;
let Json.820 : List U8 = CallByName List.8 Json.823 Json.824;
let Json.822 : I64 = 34i64;
let Json.821 : U8 = CallByName Num.127 Json.822;
let Json.819 : List U8 = CallByName List.4 Json.820 Json.821;
ret Json.819;
procedure Json.146 (Json.147, Json.881, Json.145):
let Json.890 : I64 = 34i64;
let Json.889 : U8 = CallByName Num.127 Json.890;
let Json.887 : List U8 = CallByName List.4 Json.147 Json.889;
let Json.888 : List U8 = CallByName Str.12 Json.145;
let Json.884 : List U8 = CallByName List.8 Json.887 Json.888;
let Json.886 : I64 = 34i64;
let Json.885 : U8 = CallByName Num.127 Json.886;
let Json.883 : List U8 = CallByName List.4 Json.884 Json.885;
ret Json.883;
procedure Json.22 (Json.138):
let Json.815 : Str = CallByName Encode.23 Json.138;
ret Json.815;
procedure Json.23 (Json.145):
let Json.879 : Str = CallByName Encode.23 Json.145;
ret Json.879;
procedure List.4 (List.107, List.108):
let List.503 : U64 = 1i64;

View file

@ -8,9 +8,9 @@ procedure #Derived.3 (#Derived.4, #Derived.5, #Derived.1):
ret #Derived_gen.3;
in
let #Derived_gen.7 : Str = "A";
let #Derived_gen.9 : Str = CallByName Json.22 #Derived.1;
let #Derived_gen.9 : Str = CallByName Json.23 #Derived.1;
let #Derived_gen.8 : List Str = Array [#Derived_gen.9];
let #Derived_gen.6 : {Str, List Str} = CallByName Json.26 #Derived_gen.7 #Derived_gen.8;
let #Derived_gen.6 : {Str, List Str} = CallByName Json.27 #Derived_gen.7 #Derived_gen.8;
jump #Derived_gen.5 #Derived_gen.6;
procedure Encode.23 (Encode.98):
@ -27,11 +27,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.118 : List U8 = CallByName Json.181 Encode.99 Encode.101 Encode.107;
let Encode.118 : List U8 = CallByName Json.188 Encode.99 Encode.101 Encode.107;
ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.121 : List U8 = CallByName Json.139 Encode.99 Encode.101 Encode.107;
let Encode.121 : List U8 = CallByName Json.146 Encode.99 Encode.101 Encode.107;
ret Encode.121;
procedure Encode.26 (Encode.105, Encode.106):
@ -41,93 +41,93 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108;
procedure Json.1 ():
let Json.814 : {} = Struct {};
ret Json.814;
let Json.878 : {} = Struct {};
ret Json.878;
procedure Json.139 (Json.140, Json.858, Json.138):
let Json.867 : I64 = 34i64;
let Json.866 : U8 = CallByName Num.127 Json.867;
let Json.864 : List U8 = CallByName List.4 Json.140 Json.866;
let Json.865 : List U8 = CallByName Str.12 Json.138;
let Json.861 : List U8 = CallByName List.8 Json.864 Json.865;
let Json.863 : I64 = 34i64;
let Json.862 : U8 = CallByName Num.127 Json.863;
let Json.860 : List U8 = CallByName List.4 Json.861 Json.862;
ret Json.860;
procedure Json.146 (Json.147, Json.922, Json.145):
let Json.931 : I64 = 34i64;
let Json.930 : U8 = CallByName Num.127 Json.931;
let Json.928 : List U8 = CallByName List.4 Json.147 Json.930;
let Json.929 : List U8 = CallByName Str.12 Json.145;
let Json.925 : List U8 = CallByName List.8 Json.928 Json.929;
let Json.927 : I64 = 34i64;
let Json.926 : U8 = CallByName Num.127 Json.927;
let Json.924 : List U8 = CallByName List.4 Json.925 Json.926;
ret Json.924;
procedure Json.181 (Json.182, Json.817, #Attr.12):
let Json.180 : List Str = StructAtIndex 1 #Attr.12;
inc Json.180;
let Json.179 : Str = StructAtIndex 0 #Attr.12;
inc Json.179;
dec #Attr.12;
let Json.855 : I64 = 123i64;
let Json.854 : U8 = CallByName Num.127 Json.855;
let Json.851 : List U8 = CallByName List.4 Json.182 Json.854;
let Json.853 : I64 = 34i64;
let Json.852 : U8 = CallByName Num.127 Json.853;
let Json.849 : List U8 = CallByName List.4 Json.851 Json.852;
let Json.850 : List U8 = CallByName Str.12 Json.179;
let Json.846 : List U8 = CallByName List.8 Json.849 Json.850;
let Json.848 : I64 = 34i64;
let Json.847 : U8 = CallByName Num.127 Json.848;
let Json.843 : List U8 = CallByName List.4 Json.846 Json.847;
let Json.845 : I64 = 58i64;
let Json.844 : U8 = CallByName Num.127 Json.845;
let Json.840 : List U8 = CallByName List.4 Json.843 Json.844;
let Json.842 : I64 = 91i64;
let Json.841 : U8 = CallByName Num.127 Json.842;
let Json.184 : List U8 = CallByName List.4 Json.840 Json.841;
let Json.839 : U64 = CallByName List.6 Json.180;
let Json.827 : {List U8, U64} = Struct {Json.184, Json.839};
let Json.828 : {} = Struct {};
let Json.826 : {List U8, U64} = CallByName List.18 Json.180 Json.827 Json.828;
dec Json.180;
let Json.186 : List U8 = StructAtIndex 0 Json.826;
inc Json.186;
dec Json.826;
let Json.825 : I64 = 93i64;
let Json.824 : U8 = CallByName Num.127 Json.825;
let Json.821 : List U8 = CallByName List.4 Json.186 Json.824;
let Json.823 : I64 = 125i64;
let Json.822 : U8 = CallByName Num.127 Json.823;
let Json.820 : List U8 = CallByName List.4 Json.821 Json.822;
ret Json.820;
procedure Json.183 (Json.819, Json.189):
let Json.187 : List U8 = StructAtIndex 0 Json.819;
procedure Json.188 (Json.189, Json.881, #Attr.12):
let Json.187 : List Str = StructAtIndex 1 #Attr.12;
inc Json.187;
let Json.188 : U64 = StructAtIndex 1 Json.819;
dec Json.819;
let Json.838 : {} = Struct {};
let Json.190 : List U8 = CallByName Encode.24 Json.187 Json.189 Json.838;
joinpoint Json.833 Json.191:
let Json.831 : U64 = 1i64;
let Json.830 : U64 = CallByName Num.20 Json.188 Json.831;
let Json.829 : {List U8, U64} = Struct {Json.191, Json.830};
ret Json.829;
let Json.186 : Str = StructAtIndex 0 #Attr.12;
inc Json.186;
dec #Attr.12;
let Json.919 : I64 = 123i64;
let Json.918 : U8 = CallByName Num.127 Json.919;
let Json.915 : List U8 = CallByName List.4 Json.189 Json.918;
let Json.917 : I64 = 34i64;
let Json.916 : U8 = CallByName Num.127 Json.917;
let Json.913 : List U8 = CallByName List.4 Json.915 Json.916;
let Json.914 : List U8 = CallByName Str.12 Json.186;
let Json.910 : List U8 = CallByName List.8 Json.913 Json.914;
let Json.912 : I64 = 34i64;
let Json.911 : U8 = CallByName Num.127 Json.912;
let Json.907 : List U8 = CallByName List.4 Json.910 Json.911;
let Json.909 : I64 = 58i64;
let Json.908 : U8 = CallByName Num.127 Json.909;
let Json.904 : List U8 = CallByName List.4 Json.907 Json.908;
let Json.906 : I64 = 91i64;
let Json.905 : U8 = CallByName Num.127 Json.906;
let Json.191 : List U8 = CallByName List.4 Json.904 Json.905;
let Json.903 : U64 = CallByName List.6 Json.187;
let Json.891 : {List U8, U64} = Struct {Json.191, Json.903};
let Json.892 : {} = Struct {};
let Json.890 : {List U8, U64} = CallByName List.18 Json.187 Json.891 Json.892;
dec Json.187;
let Json.193 : List U8 = StructAtIndex 0 Json.890;
inc Json.193;
dec Json.890;
let Json.889 : I64 = 93i64;
let Json.888 : U8 = CallByName Num.127 Json.889;
let Json.885 : List U8 = CallByName List.4 Json.193 Json.888;
let Json.887 : I64 = 125i64;
let Json.886 : U8 = CallByName Num.127 Json.887;
let Json.884 : List U8 = CallByName List.4 Json.885 Json.886;
ret Json.884;
procedure Json.190 (Json.883, Json.196):
let Json.194 : List U8 = StructAtIndex 0 Json.883;
inc Json.194;
let Json.195 : U64 = StructAtIndex 1 Json.883;
dec Json.883;
let Json.902 : {} = Struct {};
let Json.197 : List U8 = CallByName Encode.24 Json.194 Json.196 Json.902;
joinpoint Json.897 Json.198:
let Json.895 : U64 = 1i64;
let Json.894 : U64 = CallByName Num.20 Json.195 Json.895;
let Json.893 : {List U8, U64} = Struct {Json.198, Json.894};
ret Json.893;
in
let Json.837 : U64 = 1i64;
let Json.834 : Int1 = CallByName Num.24 Json.188 Json.837;
if Json.834 then
let Json.836 : I64 = 44i64;
let Json.835 : U8 = CallByName Num.127 Json.836;
let Json.832 : List U8 = CallByName List.4 Json.190 Json.835;
jump Json.833 Json.832;
let Json.901 : U64 = 1i64;
let Json.898 : Int1 = CallByName Num.24 Json.195 Json.901;
if Json.898 then
let Json.900 : I64 = 44i64;
let Json.899 : U8 = CallByName Num.127 Json.900;
let Json.896 : List U8 = CallByName List.4 Json.197 Json.899;
jump Json.897 Json.896;
else
jump Json.833 Json.190;
jump Json.897 Json.197;
procedure Json.22 (Json.138):
let Json.856 : Str = CallByName Encode.23 Json.138;
ret Json.856;
procedure Json.23 (Json.145):
let Json.920 : Str = CallByName Encode.23 Json.145;
ret Json.920;
procedure Json.26 (Json.179, Json.180):
let Json.816 : {Str, List Str} = Struct {Json.179, Json.180};
let Json.815 : {Str, List Str} = CallByName Encode.23 Json.816;
ret Json.815;
procedure Json.27 (Json.186, Json.187):
let Json.880 : {Str, List Str} = Struct {Json.186, Json.187};
let Json.879 : {Str, List Str} = CallByName Encode.23 Json.880;
ret Json.879;
procedure List.139 (List.140, List.141, List.138):
let List.547 : {List U8, U64} = CallByName Json.183 List.140 List.141;
let List.547 : {List U8, U64} = CallByName Json.190 List.140 List.141;
ret List.547;
procedure List.18 (List.136, List.137, List.138):

View file

@ -13,10 +13,10 @@ procedure #Derived.4 (#Derived.5, #Derived.6, #Derived.1):
inc #Derived.3;
dec #Derived.1;
let #Derived_gen.7 : Str = "A";
let #Derived_gen.9 : Str = CallByName Json.22 #Derived.2;
let #Derived_gen.10 : Str = CallByName Json.22 #Derived.3;
let #Derived_gen.9 : Str = CallByName Json.23 #Derived.2;
let #Derived_gen.10 : Str = CallByName Json.23 #Derived.3;
let #Derived_gen.8 : List Str = Array [#Derived_gen.9, #Derived_gen.10];
let #Derived_gen.6 : {Str, List Str} = CallByName Json.26 #Derived_gen.7 #Derived_gen.8;
let #Derived_gen.6 : {Str, List Str} = CallByName Json.27 #Derived_gen.7 #Derived_gen.8;
jump #Derived_gen.5 #Derived_gen.6;
procedure Encode.23 (Encode.98):
@ -33,11 +33,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.118 : List U8 = CallByName Json.181 Encode.99 Encode.101 Encode.107;
let Encode.118 : List U8 = CallByName Json.188 Encode.99 Encode.101 Encode.107;
ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.122 : List U8 = CallByName Json.139 Encode.99 Encode.101 Encode.107;
let Encode.122 : List U8 = CallByName Json.146 Encode.99 Encode.101 Encode.107;
ret Encode.122;
procedure Encode.26 (Encode.105, Encode.106):
@ -47,93 +47,93 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108;
procedure Json.1 ():
let Json.814 : {} = Struct {};
ret Json.814;
let Json.878 : {} = Struct {};
ret Json.878;
procedure Json.139 (Json.140, Json.858, Json.138):
let Json.867 : I64 = 34i64;
let Json.866 : U8 = CallByName Num.127 Json.867;
let Json.864 : List U8 = CallByName List.4 Json.140 Json.866;
let Json.865 : List U8 = CallByName Str.12 Json.138;
let Json.861 : List U8 = CallByName List.8 Json.864 Json.865;
let Json.863 : I64 = 34i64;
let Json.862 : U8 = CallByName Num.127 Json.863;
let Json.860 : List U8 = CallByName List.4 Json.861 Json.862;
ret Json.860;
procedure Json.146 (Json.147, Json.922, Json.145):
let Json.931 : I64 = 34i64;
let Json.930 : U8 = CallByName Num.127 Json.931;
let Json.928 : List U8 = CallByName List.4 Json.147 Json.930;
let Json.929 : List U8 = CallByName Str.12 Json.145;
let Json.925 : List U8 = CallByName List.8 Json.928 Json.929;
let Json.927 : I64 = 34i64;
let Json.926 : U8 = CallByName Num.127 Json.927;
let Json.924 : List U8 = CallByName List.4 Json.925 Json.926;
ret Json.924;
procedure Json.181 (Json.182, Json.817, #Attr.12):
let Json.180 : List Str = StructAtIndex 1 #Attr.12;
inc Json.180;
let Json.179 : Str = StructAtIndex 0 #Attr.12;
inc Json.179;
dec #Attr.12;
let Json.855 : I64 = 123i64;
let Json.854 : U8 = CallByName Num.127 Json.855;
let Json.851 : List U8 = CallByName List.4 Json.182 Json.854;
let Json.853 : I64 = 34i64;
let Json.852 : U8 = CallByName Num.127 Json.853;
let Json.849 : List U8 = CallByName List.4 Json.851 Json.852;
let Json.850 : List U8 = CallByName Str.12 Json.179;
let Json.846 : List U8 = CallByName List.8 Json.849 Json.850;
let Json.848 : I64 = 34i64;
let Json.847 : U8 = CallByName Num.127 Json.848;
let Json.843 : List U8 = CallByName List.4 Json.846 Json.847;
let Json.845 : I64 = 58i64;
let Json.844 : U8 = CallByName Num.127 Json.845;
let Json.840 : List U8 = CallByName List.4 Json.843 Json.844;
let Json.842 : I64 = 91i64;
let Json.841 : U8 = CallByName Num.127 Json.842;
let Json.184 : List U8 = CallByName List.4 Json.840 Json.841;
let Json.839 : U64 = CallByName List.6 Json.180;
let Json.827 : {List U8, U64} = Struct {Json.184, Json.839};
let Json.828 : {} = Struct {};
let Json.826 : {List U8, U64} = CallByName List.18 Json.180 Json.827 Json.828;
dec Json.180;
let Json.186 : List U8 = StructAtIndex 0 Json.826;
inc Json.186;
dec Json.826;
let Json.825 : I64 = 93i64;
let Json.824 : U8 = CallByName Num.127 Json.825;
let Json.821 : List U8 = CallByName List.4 Json.186 Json.824;
let Json.823 : I64 = 125i64;
let Json.822 : U8 = CallByName Num.127 Json.823;
let Json.820 : List U8 = CallByName List.4 Json.821 Json.822;
ret Json.820;
procedure Json.183 (Json.819, Json.189):
let Json.187 : List U8 = StructAtIndex 0 Json.819;
procedure Json.188 (Json.189, Json.881, #Attr.12):
let Json.187 : List Str = StructAtIndex 1 #Attr.12;
inc Json.187;
let Json.188 : U64 = StructAtIndex 1 Json.819;
dec Json.819;
let Json.838 : {} = Struct {};
let Json.190 : List U8 = CallByName Encode.24 Json.187 Json.189 Json.838;
joinpoint Json.833 Json.191:
let Json.831 : U64 = 1i64;
let Json.830 : U64 = CallByName Num.20 Json.188 Json.831;
let Json.829 : {List U8, U64} = Struct {Json.191, Json.830};
ret Json.829;
let Json.186 : Str = StructAtIndex 0 #Attr.12;
inc Json.186;
dec #Attr.12;
let Json.919 : I64 = 123i64;
let Json.918 : U8 = CallByName Num.127 Json.919;
let Json.915 : List U8 = CallByName List.4 Json.189 Json.918;
let Json.917 : I64 = 34i64;
let Json.916 : U8 = CallByName Num.127 Json.917;
let Json.913 : List U8 = CallByName List.4 Json.915 Json.916;
let Json.914 : List U8 = CallByName Str.12 Json.186;
let Json.910 : List U8 = CallByName List.8 Json.913 Json.914;
let Json.912 : I64 = 34i64;
let Json.911 : U8 = CallByName Num.127 Json.912;
let Json.907 : List U8 = CallByName List.4 Json.910 Json.911;
let Json.909 : I64 = 58i64;
let Json.908 : U8 = CallByName Num.127 Json.909;
let Json.904 : List U8 = CallByName List.4 Json.907 Json.908;
let Json.906 : I64 = 91i64;
let Json.905 : U8 = CallByName Num.127 Json.906;
let Json.191 : List U8 = CallByName List.4 Json.904 Json.905;
let Json.903 : U64 = CallByName List.6 Json.187;
let Json.891 : {List U8, U64} = Struct {Json.191, Json.903};
let Json.892 : {} = Struct {};
let Json.890 : {List U8, U64} = CallByName List.18 Json.187 Json.891 Json.892;
dec Json.187;
let Json.193 : List U8 = StructAtIndex 0 Json.890;
inc Json.193;
dec Json.890;
let Json.889 : I64 = 93i64;
let Json.888 : U8 = CallByName Num.127 Json.889;
let Json.885 : List U8 = CallByName List.4 Json.193 Json.888;
let Json.887 : I64 = 125i64;
let Json.886 : U8 = CallByName Num.127 Json.887;
let Json.884 : List U8 = CallByName List.4 Json.885 Json.886;
ret Json.884;
procedure Json.190 (Json.883, Json.196):
let Json.194 : List U8 = StructAtIndex 0 Json.883;
inc Json.194;
let Json.195 : U64 = StructAtIndex 1 Json.883;
dec Json.883;
let Json.902 : {} = Struct {};
let Json.197 : List U8 = CallByName Encode.24 Json.194 Json.196 Json.902;
joinpoint Json.897 Json.198:
let Json.895 : U64 = 1i64;
let Json.894 : U64 = CallByName Num.20 Json.195 Json.895;
let Json.893 : {List U8, U64} = Struct {Json.198, Json.894};
ret Json.893;
in
let Json.837 : U64 = 1i64;
let Json.834 : Int1 = CallByName Num.24 Json.188 Json.837;
if Json.834 then
let Json.836 : I64 = 44i64;
let Json.835 : U8 = CallByName Num.127 Json.836;
let Json.832 : List U8 = CallByName List.4 Json.190 Json.835;
jump Json.833 Json.832;
let Json.901 : U64 = 1i64;
let Json.898 : Int1 = CallByName Num.24 Json.195 Json.901;
if Json.898 then
let Json.900 : I64 = 44i64;
let Json.899 : U8 = CallByName Num.127 Json.900;
let Json.896 : List U8 = CallByName List.4 Json.197 Json.899;
jump Json.897 Json.896;
else
jump Json.833 Json.190;
jump Json.897 Json.197;
procedure Json.22 (Json.138):
let Json.868 : Str = CallByName Encode.23 Json.138;
ret Json.868;
procedure Json.23 (Json.145):
let Json.932 : Str = CallByName Encode.23 Json.145;
ret Json.932;
procedure Json.26 (Json.179, Json.180):
let Json.816 : {Str, List Str} = Struct {Json.179, Json.180};
let Json.815 : {Str, List Str} = CallByName Encode.23 Json.816;
ret Json.815;
procedure Json.27 (Json.186, Json.187):
let Json.880 : {Str, List Str} = Struct {Json.186, Json.187};
let Json.879 : {Str, List Str} = CallByName Encode.23 Json.880;
ret Json.879;
procedure List.139 (List.140, List.141, List.138):
let List.547 : {List U8, U64} = CallByName Json.183 List.140 List.141;
let List.547 : {List U8, U64} = CallByName Json.190 List.140 List.141;
ret List.547;
procedure List.18 (List.136, List.137, List.138):

File diff suppressed because it is too large Load diff

View file

@ -16,11 +16,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.118 : List U8 = CallByName Json.181 Encode.99 Encode.101 Encode.107;
let Encode.118 : List U8 = CallByName Json.188 Encode.99 Encode.101 Encode.107;
ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.123 : List U8 = CallByName Json.139 Encode.99 Encode.101 Encode.107;
let Encode.123 : List U8 = CallByName Json.146 Encode.99 Encode.101 Encode.107;
ret Encode.123;
procedure Encode.26 (Encode.105, Encode.106):
@ -30,93 +30,93 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108;
procedure Json.1 ():
let Json.814 : {} = Struct {};
ret Json.814;
let Json.878 : {} = Struct {};
ret Json.878;
procedure Json.139 (Json.140, Json.861, Json.138):
let Json.870 : I64 = 34i64;
let Json.869 : U8 = CallByName Num.127 Json.870;
let Json.867 : List U8 = CallByName List.4 Json.140 Json.869;
let Json.868 : List U8 = CallByName Str.12 Json.138;
let Json.864 : List U8 = CallByName List.8 Json.867 Json.868;
let Json.866 : I64 = 34i64;
let Json.865 : U8 = CallByName Num.127 Json.866;
let Json.863 : List U8 = CallByName List.4 Json.864 Json.865;
ret Json.863;
procedure Json.146 (Json.147, Json.925, Json.145):
let Json.934 : I64 = 34i64;
let Json.933 : U8 = CallByName Num.127 Json.934;
let Json.931 : List U8 = CallByName List.4 Json.147 Json.933;
let Json.932 : List U8 = CallByName Str.12 Json.145;
let Json.928 : List U8 = CallByName List.8 Json.931 Json.932;
let Json.930 : I64 = 34i64;
let Json.929 : U8 = CallByName Num.127 Json.930;
let Json.927 : List U8 = CallByName List.4 Json.928 Json.929;
ret Json.927;
procedure Json.181 (Json.182, Json.817, #Attr.12):
let Json.180 : List Str = StructAtIndex 1 #Attr.12;
inc Json.180;
let Json.179 : Str = StructAtIndex 0 #Attr.12;
inc Json.179;
dec #Attr.12;
let Json.855 : I64 = 123i64;
let Json.854 : U8 = CallByName Num.127 Json.855;
let Json.851 : List U8 = CallByName List.4 Json.182 Json.854;
let Json.853 : I64 = 34i64;
let Json.852 : U8 = CallByName Num.127 Json.853;
let Json.849 : List U8 = CallByName List.4 Json.851 Json.852;
let Json.850 : List U8 = CallByName Str.12 Json.179;
let Json.846 : List U8 = CallByName List.8 Json.849 Json.850;
let Json.848 : I64 = 34i64;
let Json.847 : U8 = CallByName Num.127 Json.848;
let Json.843 : List U8 = CallByName List.4 Json.846 Json.847;
let Json.845 : I64 = 58i64;
let Json.844 : U8 = CallByName Num.127 Json.845;
let Json.840 : List U8 = CallByName List.4 Json.843 Json.844;
let Json.842 : I64 = 91i64;
let Json.841 : U8 = CallByName Num.127 Json.842;
let Json.184 : List U8 = CallByName List.4 Json.840 Json.841;
let Json.839 : U64 = CallByName List.6 Json.180;
let Json.827 : {List U8, U64} = Struct {Json.184, Json.839};
let Json.828 : {} = Struct {};
let Json.826 : {List U8, U64} = CallByName List.18 Json.180 Json.827 Json.828;
dec Json.180;
let Json.186 : List U8 = StructAtIndex 0 Json.826;
inc Json.186;
dec Json.826;
let Json.825 : I64 = 93i64;
let Json.824 : U8 = CallByName Num.127 Json.825;
let Json.821 : List U8 = CallByName List.4 Json.186 Json.824;
let Json.823 : I64 = 125i64;
let Json.822 : U8 = CallByName Num.127 Json.823;
let Json.820 : List U8 = CallByName List.4 Json.821 Json.822;
ret Json.820;
procedure Json.183 (Json.819, Json.189):
let Json.187 : List U8 = StructAtIndex 0 Json.819;
procedure Json.188 (Json.189, Json.881, #Attr.12):
let Json.187 : List Str = StructAtIndex 1 #Attr.12;
inc Json.187;
let Json.188 : U64 = StructAtIndex 1 Json.819;
dec Json.819;
let Json.838 : {} = Struct {};
let Json.190 : List U8 = CallByName Encode.24 Json.187 Json.189 Json.838;
joinpoint Json.833 Json.191:
let Json.831 : U64 = 1i64;
let Json.830 : U64 = CallByName Num.20 Json.188 Json.831;
let Json.829 : {List U8, U64} = Struct {Json.191, Json.830};
ret Json.829;
let Json.186 : Str = StructAtIndex 0 #Attr.12;
inc Json.186;
dec #Attr.12;
let Json.919 : I64 = 123i64;
let Json.918 : U8 = CallByName Num.127 Json.919;
let Json.915 : List U8 = CallByName List.4 Json.189 Json.918;
let Json.917 : I64 = 34i64;
let Json.916 : U8 = CallByName Num.127 Json.917;
let Json.913 : List U8 = CallByName List.4 Json.915 Json.916;
let Json.914 : List U8 = CallByName Str.12 Json.186;
let Json.910 : List U8 = CallByName List.8 Json.913 Json.914;
let Json.912 : I64 = 34i64;
let Json.911 : U8 = CallByName Num.127 Json.912;
let Json.907 : List U8 = CallByName List.4 Json.910 Json.911;
let Json.909 : I64 = 58i64;
let Json.908 : U8 = CallByName Num.127 Json.909;
let Json.904 : List U8 = CallByName List.4 Json.907 Json.908;
let Json.906 : I64 = 91i64;
let Json.905 : U8 = CallByName Num.127 Json.906;
let Json.191 : List U8 = CallByName List.4 Json.904 Json.905;
let Json.903 : U64 = CallByName List.6 Json.187;
let Json.891 : {List U8, U64} = Struct {Json.191, Json.903};
let Json.892 : {} = Struct {};
let Json.890 : {List U8, U64} = CallByName List.18 Json.187 Json.891 Json.892;
dec Json.187;
let Json.193 : List U8 = StructAtIndex 0 Json.890;
inc Json.193;
dec Json.890;
let Json.889 : I64 = 93i64;
let Json.888 : U8 = CallByName Num.127 Json.889;
let Json.885 : List U8 = CallByName List.4 Json.193 Json.888;
let Json.887 : I64 = 125i64;
let Json.886 : U8 = CallByName Num.127 Json.887;
let Json.884 : List U8 = CallByName List.4 Json.885 Json.886;
ret Json.884;
procedure Json.190 (Json.883, Json.196):
let Json.194 : List U8 = StructAtIndex 0 Json.883;
inc Json.194;
let Json.195 : U64 = StructAtIndex 1 Json.883;
dec Json.883;
let Json.902 : {} = Struct {};
let Json.197 : List U8 = CallByName Encode.24 Json.194 Json.196 Json.902;
joinpoint Json.897 Json.198:
let Json.895 : U64 = 1i64;
let Json.894 : U64 = CallByName Num.20 Json.195 Json.895;
let Json.893 : {List U8, U64} = Struct {Json.198, Json.894};
ret Json.893;
in
let Json.837 : U64 = 1i64;
let Json.834 : Int1 = CallByName Num.24 Json.188 Json.837;
if Json.834 then
let Json.836 : I64 = 44i64;
let Json.835 : U8 = CallByName Num.127 Json.836;
let Json.832 : List U8 = CallByName List.4 Json.190 Json.835;
jump Json.833 Json.832;
let Json.901 : U64 = 1i64;
let Json.898 : Int1 = CallByName Num.24 Json.195 Json.901;
if Json.898 then
let Json.900 : I64 = 44i64;
let Json.899 : U8 = CallByName Num.127 Json.900;
let Json.896 : List U8 = CallByName List.4 Json.197 Json.899;
jump Json.897 Json.896;
else
jump Json.833 Json.190;
jump Json.897 Json.197;
procedure Json.22 (Json.138):
let Json.871 : Str = CallByName Encode.23 Json.138;
ret Json.871;
procedure Json.23 (Json.145):
let Json.935 : Str = CallByName Encode.23 Json.145;
ret Json.935;
procedure Json.26 (Json.179, Json.180):
let Json.857 : {Str, List Str} = Struct {Json.179, Json.180};
let Json.856 : {Str, List Str} = CallByName Encode.23 Json.857;
ret Json.856;
procedure Json.27 (Json.186, Json.187):
let Json.921 : {Str, List Str} = Struct {Json.186, Json.187};
let Json.920 : {Str, List Str} = CallByName Encode.23 Json.921;
ret Json.920;
procedure List.139 (List.140, List.141, List.138):
let List.545 : {List U8, U64} = CallByName Json.183 List.140 List.141;
let List.545 : {List U8, U64} = CallByName Json.190 List.140 List.141;
ret List.545;
procedure List.18 (List.136, List.137, List.138):
@ -214,18 +214,18 @@ procedure Test.5 (Test.6, Test.7, Test.4):
let Test.29 : Str = StructAtIndex 0 Test.4;
inc Test.29;
dec Test.4;
let Test.28 : Str = CallByName Json.22 Test.29;
let Test.28 : Str = CallByName Json.23 Test.29;
let Test.27 : List Str = Array [Test.28];
let Test.19 : {Str, List Str} = CallByName Json.26 Test.26 Test.27;
let Test.19 : {Str, List Str} = CallByName Json.27 Test.26 Test.27;
jump Test.20 Test.19;
else
let Test.21 : Str = "B";
let Test.24 : Str = StructAtIndex 1 Test.4;
inc Test.24;
dec Test.4;
let Test.23 : Str = CallByName Json.22 Test.24;
let Test.23 : Str = CallByName Json.23 Test.24;
let Test.22 : List Str = Array [Test.23];
let Test.19 : {Str, List Str} = CallByName Json.26 Test.21 Test.22;
let Test.19 : {Str, List Str} = CallByName Json.27 Test.21 Test.22;
jump Test.20 Test.19;
procedure Test.0 ():

View file

@ -11,7 +11,7 @@ procedure #Derived.2 (#Derived.3, #Derived.4, #Attr.12):
in
let #Derived_gen.16 : Str = "A";
let #Derived_gen.17 : List [] = Array [];
let #Derived_gen.15 : {Str, List []} = CallByName Json.26 #Derived_gen.16 #Derived_gen.17;
let #Derived_gen.15 : {Str, List []} = CallByName Json.27 #Derived_gen.16 #Derived_gen.17;
jump #Derived_gen.14 #Derived_gen.15;
procedure #Derived.5 (#Derived.6):
@ -27,7 +27,7 @@ procedure #Derived.7 (#Derived.8, #Derived.9, #Attr.12):
in
let #Derived_gen.7 : Str = "B";
let #Derived_gen.8 : List [] = Array [];
let #Derived_gen.6 : {Str, List []} = CallByName Json.26 #Derived_gen.7 #Derived_gen.8;
let #Derived_gen.6 : {Str, List []} = CallByName Json.27 #Derived_gen.7 #Derived_gen.8;
jump #Derived_gen.5 #Derived_gen.6;
procedure Bool.2 ():
@ -51,7 +51,7 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.118 : List U8 = CallByName Json.181 Encode.99 Encode.101 Encode.107;
let Encode.118 : List U8 = CallByName Json.188 Encode.99 Encode.101 Encode.107;
ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
@ -67,7 +67,7 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
let Encode.134 : List U8 = CallByName Json.181 Encode.99 Encode.101 Encode.107;
let Encode.134 : List U8 = CallByName Json.188 Encode.99 Encode.101 Encode.107;
ret Encode.134;
procedure Encode.24 (Encode.99, Encode.107, Encode.101):
@ -81,150 +81,150 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108;
procedure Json.1 ():
let Json.814 : {} = Struct {};
ret Json.814;
procedure Json.181 (Json.182, Json.817, #Attr.12):
let Json.180 : List [C {}, C {}] = StructAtIndex 1 #Attr.12;
inc Json.180;
let Json.179 : Str = StructAtIndex 0 #Attr.12;
inc Json.179;
dec #Attr.12;
let Json.855 : I64 = 123i64;
let Json.854 : U8 = CallByName Num.127 Json.855;
let Json.851 : List U8 = CallByName List.4 Json.182 Json.854;
let Json.853 : I64 = 34i64;
let Json.852 : U8 = CallByName Num.127 Json.853;
let Json.849 : List U8 = CallByName List.4 Json.851 Json.852;
let Json.850 : List U8 = CallByName Str.12 Json.179;
let Json.846 : List U8 = CallByName List.8 Json.849 Json.850;
let Json.848 : I64 = 34i64;
let Json.847 : U8 = CallByName Num.127 Json.848;
let Json.843 : List U8 = CallByName List.4 Json.846 Json.847;
let Json.845 : I64 = 58i64;
let Json.844 : U8 = CallByName Num.127 Json.845;
let Json.840 : List U8 = CallByName List.4 Json.843 Json.844;
let Json.842 : I64 = 91i64;
let Json.841 : U8 = CallByName Num.127 Json.842;
let Json.184 : List U8 = CallByName List.4 Json.840 Json.841;
let Json.839 : U64 = CallByName List.6 Json.180;
let Json.827 : {List U8, U64} = Struct {Json.184, Json.839};
let Json.828 : {} = Struct {};
let Json.826 : {List U8, U64} = CallByName List.18 Json.180 Json.827 Json.828;
dec Json.180;
let Json.186 : List U8 = StructAtIndex 0 Json.826;
inc Json.186;
dec Json.826;
let Json.825 : I64 = 93i64;
let Json.824 : U8 = CallByName Num.127 Json.825;
let Json.821 : List U8 = CallByName List.4 Json.186 Json.824;
let Json.823 : I64 = 125i64;
let Json.822 : U8 = CallByName Num.127 Json.823;
let Json.820 : List U8 = CallByName List.4 Json.821 Json.822;
ret Json.820;
procedure Json.181 (Json.182, Json.817, #Attr.12):
let Json.180 : List [] = StructAtIndex 1 #Attr.12;
inc Json.180;
let Json.179 : Str = StructAtIndex 0 #Attr.12;
inc Json.179;
dec #Attr.12;
let Json.905 : I64 = 123i64;
let Json.904 : U8 = CallByName Num.127 Json.905;
let Json.901 : List U8 = CallByName List.4 Json.182 Json.904;
let Json.903 : I64 = 34i64;
let Json.902 : U8 = CallByName Num.127 Json.903;
let Json.899 : List U8 = CallByName List.4 Json.901 Json.902;
let Json.900 : List U8 = CallByName Str.12 Json.179;
let Json.896 : List U8 = CallByName List.8 Json.899 Json.900;
let Json.898 : I64 = 34i64;
let Json.897 : U8 = CallByName Num.127 Json.898;
let Json.893 : List U8 = CallByName List.4 Json.896 Json.897;
let Json.895 : I64 = 58i64;
let Json.894 : U8 = CallByName Num.127 Json.895;
let Json.890 : List U8 = CallByName List.4 Json.893 Json.894;
let Json.892 : I64 = 91i64;
let Json.891 : U8 = CallByName Num.127 Json.892;
let Json.184 : List U8 = CallByName List.4 Json.890 Json.891;
let Json.889 : U64 = CallByName List.6 Json.180;
let Json.877 : {List U8, U64} = Struct {Json.184, Json.889};
let Json.878 : {} = Struct {};
let Json.876 : {List U8, U64} = CallByName List.18 Json.180 Json.877 Json.878;
dec Json.180;
let Json.186 : List U8 = StructAtIndex 0 Json.876;
ret Json.878;
procedure Json.188 (Json.189, Json.881, #Attr.12):
let Json.187 : List [C {}, C {}] = StructAtIndex 1 #Attr.12;
inc Json.187;
let Json.186 : Str = StructAtIndex 0 #Attr.12;
inc Json.186;
dec Json.876;
let Json.875 : I64 = 93i64;
let Json.874 : U8 = CallByName Num.127 Json.875;
let Json.871 : List U8 = CallByName List.4 Json.186 Json.874;
let Json.873 : I64 = 125i64;
let Json.872 : U8 = CallByName Num.127 Json.873;
let Json.870 : List U8 = CallByName List.4 Json.871 Json.872;
ret Json.870;
procedure Json.183 (Json.819, Json.189):
let Json.187 : List U8 = StructAtIndex 0 Json.819;
inc Json.187;
let Json.188 : U64 = StructAtIndex 1 Json.819;
dec Json.819;
let Json.838 : {} = Struct {};
let Json.190 : List U8 = CallByName Encode.24 Json.187 Json.189 Json.838;
joinpoint Json.833 Json.191:
let Json.831 : U64 = 1i64;
let Json.830 : U64 = CallByName Num.20 Json.188 Json.831;
let Json.829 : {List U8, U64} = Struct {Json.191, Json.830};
ret Json.829;
in
let Json.837 : U64 = 1i64;
let Json.834 : Int1 = CallByName Num.24 Json.188 Json.837;
if Json.834 then
let Json.836 : I64 = 44i64;
let Json.835 : U8 = CallByName Num.127 Json.836;
let Json.832 : List U8 = CallByName List.4 Json.190 Json.835;
jump Json.833 Json.832;
else
jump Json.833 Json.190;
procedure Json.183 (Json.819, Json.189):
let Json.187 : List U8 = StructAtIndex 0 Json.819;
inc Json.187;
let Json.188 : U64 = StructAtIndex 1 Json.819;
dec Json.819;
let Json.888 : {} = Struct {};
let Json.190 : List U8 = CallByName Encode.24 Json.187 Json.189 Json.888;
dec #Attr.12;
let Json.919 : I64 = 123i64;
let Json.918 : U8 = CallByName Num.127 Json.919;
let Json.915 : List U8 = CallByName List.4 Json.189 Json.918;
let Json.917 : I64 = 34i64;
let Json.916 : U8 = CallByName Num.127 Json.917;
let Json.913 : List U8 = CallByName List.4 Json.915 Json.916;
let Json.914 : List U8 = CallByName Str.12 Json.186;
let Json.910 : List U8 = CallByName List.8 Json.913 Json.914;
let Json.912 : I64 = 34i64;
let Json.911 : U8 = CallByName Num.127 Json.912;
let Json.907 : List U8 = CallByName List.4 Json.910 Json.911;
let Json.909 : I64 = 58i64;
let Json.908 : U8 = CallByName Num.127 Json.909;
let Json.904 : List U8 = CallByName List.4 Json.907 Json.908;
let Json.906 : I64 = 91i64;
let Json.905 : U8 = CallByName Num.127 Json.906;
let Json.191 : List U8 = CallByName List.4 Json.904 Json.905;
let Json.903 : U64 = CallByName List.6 Json.187;
let Json.891 : {List U8, U64} = Struct {Json.191, Json.903};
let Json.892 : {} = Struct {};
let Json.890 : {List U8, U64} = CallByName List.18 Json.187 Json.891 Json.892;
dec Json.187;
joinpoint Json.883 Json.191:
let Json.881 : U64 = 1i64;
let Json.880 : U64 = CallByName Num.20 Json.188 Json.881;
let Json.879 : {List U8, U64} = Struct {Json.191, Json.880};
ret Json.879;
let Json.193 : List U8 = StructAtIndex 0 Json.890;
inc Json.193;
dec Json.890;
let Json.889 : I64 = 93i64;
let Json.888 : U8 = CallByName Num.127 Json.889;
let Json.885 : List U8 = CallByName List.4 Json.193 Json.888;
let Json.887 : I64 = 125i64;
let Json.886 : U8 = CallByName Num.127 Json.887;
let Json.884 : List U8 = CallByName List.4 Json.885 Json.886;
ret Json.884;
procedure Json.188 (Json.189, Json.881, #Attr.12):
let Json.187 : List [] = StructAtIndex 1 #Attr.12;
inc Json.187;
let Json.186 : Str = StructAtIndex 0 #Attr.12;
inc Json.186;
dec #Attr.12;
let Json.969 : I64 = 123i64;
let Json.968 : U8 = CallByName Num.127 Json.969;
let Json.965 : List U8 = CallByName List.4 Json.189 Json.968;
let Json.967 : I64 = 34i64;
let Json.966 : U8 = CallByName Num.127 Json.967;
let Json.963 : List U8 = CallByName List.4 Json.965 Json.966;
let Json.964 : List U8 = CallByName Str.12 Json.186;
let Json.960 : List U8 = CallByName List.8 Json.963 Json.964;
let Json.962 : I64 = 34i64;
let Json.961 : U8 = CallByName Num.127 Json.962;
let Json.957 : List U8 = CallByName List.4 Json.960 Json.961;
let Json.959 : I64 = 58i64;
let Json.958 : U8 = CallByName Num.127 Json.959;
let Json.954 : List U8 = CallByName List.4 Json.957 Json.958;
let Json.956 : I64 = 91i64;
let Json.955 : U8 = CallByName Num.127 Json.956;
let Json.191 : List U8 = CallByName List.4 Json.954 Json.955;
let Json.953 : U64 = CallByName List.6 Json.187;
let Json.941 : {List U8, U64} = Struct {Json.191, Json.953};
let Json.942 : {} = Struct {};
let Json.940 : {List U8, U64} = CallByName List.18 Json.187 Json.941 Json.942;
dec Json.187;
let Json.193 : List U8 = StructAtIndex 0 Json.940;
inc Json.193;
dec Json.940;
let Json.939 : I64 = 93i64;
let Json.938 : U8 = CallByName Num.127 Json.939;
let Json.935 : List U8 = CallByName List.4 Json.193 Json.938;
let Json.937 : I64 = 125i64;
let Json.936 : U8 = CallByName Num.127 Json.937;
let Json.934 : List U8 = CallByName List.4 Json.935 Json.936;
ret Json.934;
procedure Json.190 (Json.883, Json.196):
let Json.194 : List U8 = StructAtIndex 0 Json.883;
inc Json.194;
let Json.195 : U64 = StructAtIndex 1 Json.883;
dec Json.883;
let Json.902 : {} = Struct {};
let Json.197 : List U8 = CallByName Encode.24 Json.194 Json.196 Json.902;
joinpoint Json.897 Json.198:
let Json.895 : U64 = 1i64;
let Json.894 : U64 = CallByName Num.20 Json.195 Json.895;
let Json.893 : {List U8, U64} = Struct {Json.198, Json.894};
ret Json.893;
in
let Json.887 : U64 = 1i64;
let Json.884 : Int1 = CallByName Num.24 Json.188 Json.887;
if Json.884 then
let Json.886 : I64 = 44i64;
let Json.885 : U8 = CallByName Num.127 Json.886;
let Json.882 : List U8 = CallByName List.4 Json.190 Json.885;
jump Json.883 Json.882;
let Json.901 : U64 = 1i64;
let Json.898 : Int1 = CallByName Num.24 Json.195 Json.901;
if Json.898 then
let Json.900 : I64 = 44i64;
let Json.899 : U8 = CallByName Num.127 Json.900;
let Json.896 : List U8 = CallByName List.4 Json.197 Json.899;
jump Json.897 Json.896;
else
jump Json.883 Json.190;
jump Json.897 Json.197;
procedure Json.26 (Json.179, Json.180):
let Json.857 : {Str, List [C {}, C {}]} = Struct {Json.179, Json.180};
let Json.856 : {Str, List [C {}, C {}]} = CallByName Encode.23 Json.857;
ret Json.856;
procedure Json.190 (Json.883, Json.196):
let Json.194 : List U8 = StructAtIndex 0 Json.883;
inc Json.194;
let Json.195 : U64 = StructAtIndex 1 Json.883;
dec Json.883;
let Json.952 : {} = Struct {};
let Json.197 : List U8 = CallByName Encode.24 Json.194 Json.196 Json.952;
dec Json.194;
joinpoint Json.947 Json.198:
let Json.945 : U64 = 1i64;
let Json.944 : U64 = CallByName Num.20 Json.195 Json.945;
let Json.943 : {List U8, U64} = Struct {Json.198, Json.944};
ret Json.943;
in
let Json.951 : U64 = 1i64;
let Json.948 : Int1 = CallByName Num.24 Json.195 Json.951;
if Json.948 then
let Json.950 : I64 = 44i64;
let Json.949 : U8 = CallByName Num.127 Json.950;
let Json.946 : List U8 = CallByName List.4 Json.197 Json.949;
jump Json.947 Json.946;
else
jump Json.947 Json.197;
procedure Json.26 (Json.179, Json.180):
let Json.907 : {Str, List []} = Struct {Json.179, Json.180};
let Json.906 : {Str, List []} = CallByName Encode.23 Json.907;
ret Json.906;
procedure Json.27 (Json.186, Json.187):
let Json.921 : {Str, List [C {}, C {}]} = Struct {Json.186, Json.187};
let Json.920 : {Str, List [C {}, C {}]} = CallByName Encode.23 Json.921;
ret Json.920;
procedure Json.27 (Json.186, Json.187):
let Json.971 : {Str, List []} = Struct {Json.186, Json.187};
let Json.970 : {Str, List []} = CallByName Encode.23 Json.971;
ret Json.970;
procedure List.139 (List.140, List.141, List.138):
let List.539 : {List U8, U64} = CallByName Json.183 List.140 List.141;
let List.539 : {List U8, U64} = CallByName Json.190 List.140 List.141;
ret List.539;
procedure List.139 (List.140, List.141, List.138):
let List.612 : {List U8, U64} = CallByName Json.183 List.140 List.141;
let List.612 : {List U8, U64} = CallByName Json.190 List.140 List.141;
ret List.612;
procedure List.18 (List.136, List.137, List.138):
@ -354,14 +354,14 @@ procedure Test.5 (Test.6, Test.7, Test.4):
let Test.32 : {} = StructAtIndex 0 Test.4;
let Test.31 : [C {}, C {}] = CallByName #Derived.0 Test.32;
let Test.30 : List [C {}, C {}] = Array [Test.31];
let Test.22 : {Str, List [C {}, C {}]} = CallByName Json.26 Test.29 Test.30;
let Test.22 : {Str, List [C {}, C {}]} = CallByName Json.27 Test.29 Test.30;
jump Test.23 Test.22;
else
let Test.24 : Str = "B";
let Test.27 : {} = StructAtIndex 1 Test.4;
let Test.26 : [C {}, C {}] = CallByName #Derived.5 Test.27;
let Test.25 : List [C {}, C {}] = Array [Test.26];
let Test.22 : {Str, List [C {}, C {}]} = CallByName Json.26 Test.24 Test.25;
let Test.22 : {Str, List [C {}, C {}]} = CallByName Json.27 Test.24 Test.25;
jump Test.23 Test.22;
procedure Test.0 ():