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 } _ -> { result: Err TooShort, rest: bytes }
expect expect
actual : DecodeResult Bool
actual = "true\n" |> Str.toUtf8 |> Decode.fromBytesPartial fromUtf8 actual = "true\n" |> Str.toUtf8 |> Decode.fromBytesPartial fromUtf8
expected = Ok Bool.true expected = Ok Bool.true
actual.result == expected actual.result == expected
expect expect
actual : DecodeResult Bool
actual = "false ]\n" |> Str.toUtf8 |> Decode.fromBytesPartial fromUtf8 actual = "false ]\n" |> Str.toUtf8 |> Decode.fromBytesPartial fromUtf8
expected = Ok Bool.false expected = Ok Bool.false
actual.result == expected actual.result == expected
@ -459,12 +457,6 @@ parseExactChar = \bytes, char ->
Err _ -> { result: Err TooShort, rest: bytes } 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 : List U8 -> DecodeResult {}
openBracket = \bytes -> parseExactChar bytes '[' openBracket = \bytes -> parseExactChar bytes '['
@ -474,9 +466,6 @@ closingBracket = \bytes -> parseExactChar bytes ']'
anything : List U8 -> DecodeResult {} anything : List U8 -> DecodeResult {}
anything = \bytes -> { result: Err TooShort, rest: bytes } anything = \bytes -> { result: Err TooShort, rest: bytes }
# colon : List U8 -> DecodeResult {}
# colon = \bytes -> parseExactChar bytes ':'
comma : List U8 -> DecodeResult {} comma : List U8 -> DecodeResult {}
comma = \bytes -> parseExactChar bytes ',' comma = \bytes -> parseExactChar bytes ','
@ -588,10 +577,8 @@ expect
expected = { result: Ok 2u64, rest: [']'] } expected = { result: Ok 2u64, rest: [']'] }
actual == expected actual == expected
# TODO why is this trying to decode as a Record?
# If you use Decode.fromBytesPartial it fails
expect expect
actual = "30,\n" |> Str.toUtf8 |> Decode.decodeWith decodeI64 fromUtf8 actual = "30,\n" |> Str.toUtf8 |> Decode.fromBytesPartial fromUtf8
expected = { result: Ok 30i64, rest: [',', '\n'] } expected = { result: Ok 30i64, rest: [',', '\n'] }
actual == expected actual == expected
@ -1077,161 +1064,141 @@ expect
# JSON OBJECTS ----------------------------------------------------------------- # 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 {} -> decodeRecord = \initialState, stepField, finalizer -> Decode.custom \bytes, @Json {} ->
# Recursively build up record from object field:value pairs # Recursively build up record from object field:value pairs
decodeFields = \recordState, bytesBeforeField -> decodeFields = \recordState, bytesBeforeField ->
# Decode the json string field name # Decode the json string field name
{result: fieldNameResult, rest: bytesAfterField} = { result: fieldNameResult, rest: bytesAfterField } =
Decode.decodeWith bytesBeforeField decodeString fromUtf8 Decode.decodeWith bytesBeforeField decodeString fromUtf8
# Count the bytes until the field value # Count the bytes until the field value
countBytesBeforeValue = when List.walkUntil bytesAfterField (BeforeColon 0) objectHelp is countBytesBeforeValue =
ObjectValueStart n -> n when List.walkUntil bytesAfterField (BeforeColon 0) objectHelp is
_ -> 0 AfterColon n -> n
_ -> 0
valueBytes = List.drop bytesAfterField countBytesBeforeValue valueBytes = List.drop bytesAfterField countBytesBeforeValue
when fieldNameResult is when fieldNameResult is
Err TooShort -> Err TooShort ->
# Invalid object, unable to decode field name or find colon ':' # Invalid object, unable to decode field name or find colon ':'
# after field and before the value # after field and before the value
{result: Err TooShort, rest: bytes} { 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}
Keep valueDecoder -> Ok fieldName ->
# Decode the value using the decoder from the recordState # Decode the json value
Decode.decodeWith valueBytes valueDecoder fromUtf8 { val: updatedRecord, rest: bytesAfterValue } <-
) (
|> tryDecode # 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 Keep valueDecoder ->
when List.walkUntil bytesAfterValue (AfterObjectValue 0) objectHelp is # Decode the value using the decoder from the recordState
ObjectFieldNameStart n -> Decode.decodeWith valueBytes valueDecoder fromUtf8
rest = List.drop bytesAfterValue n )
|> tryDecode
# Decode the next field and value # Check if another field or '}' for end of object
decodeFields updatedRecord rest when List.walkUntil bytesAfterValue (AfterObjectValue 0) objectHelp is
ObjectFieldNameStart n ->
rest = List.drop bytesAfterValue n
AfterClosingBrace n -> # Decode the next field and value
rest = List.drop bytesAfterValue n decodeFields updatedRecord rest
# Build final record from decoded fields and values AfterClosingBrace n ->
when finalizer updatedRecord is rest = List.drop bytesAfterValue n
Ok val -> { result: Ok val, rest }
Err e -> { result: Err e, rest }
_ -> # Build final record from decoded fields and values
# Invalid object when finalizer updatedRecord is
{result : Err TooShort, rest: bytesAfterValue} Ok val -> { result: Ok val, rest }
Err e -> { result: Err e, rest }
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 # Invalid object
{result: Err TooShort, rest: bytes} { result: Err TooShort, rest: bytesAfterValue }
else
bytesBeforeFirstField = (List.drop bytes countBytesBeforeFirstField)
# Begin decoding field:value pairs countBytesBeforeFirstField =
decodeFields initialState bytesBeforeFirstField 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 : ObjectState, U8 -> [Break ObjectState, Continue ObjectState]
objectHelp = \state, byte -> objectHelp = \state, byte ->
when (state, byte) is when (state, byte) is
(BeforeOpeningBrace n, b) if isWhitespace b -> Continue (BeforeOpeningBrace (n+1)) (BeforeOpeningBrace n, b) if isWhitespace b -> Continue (BeforeOpeningBrace (n + 1))
(BeforeOpeningBrace n, b) if b == '{' -> Continue (AfterOpeningBrace (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 isWhitespace b -> Continue (AfterOpeningBrace (n + 1))
(AfterOpeningBrace n, b) if b == '"' -> Break (ObjectFieldNameStart n) # field names must be a json string (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 isWhitespace b -> Continue (BeforeColon (n + 1))
(BeforeColon n, b) if b == ':' -> Continue (AfterColon (n+1)) (BeforeColon n, b) if b == ':' -> Continue (AfterColon (n + 1))
(AfterColon n, b) if isWhitespace 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 (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 isWhitespace b -> Continue (AfterObjectValue (n + 1))
(AfterObjectValue n, b) if b == ',' -> Continue (AfterComma (n+1)) (AfterObjectValue n, b) if b == ',' -> Continue (AfterComma (n + 1))
(AfterObjectValue n, b) if b == '}' -> Continue (AfterClosingBrace (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 isWhitespace b -> Continue (AfterComma (n + 1))
(AfterComma n, b) if b == '"' -> Break (ObjectFieldNameStart n) (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 _ -> Break InvalidObject
ObjectState : [ ObjectState : [
BeforeOpeningBrace Nat, BeforeOpeningBrace Nat,
AfterOpeningBrace Nat, AfterOpeningBrace Nat,
ObjectFieldNameStart Nat, ObjectFieldNameStart Nat,
BeforeColon Nat, BeforeColon Nat,
AfterColon Nat, AfterColon Nat,
ObjectValueStart Nat,
AfterObjectValue Nat, AfterObjectValue Nat,
AfterComma Nat, AfterComma Nat,
AfterClosingBrace Nat, AfterClosingBrace Nat,
InvalidObject, InvalidObject,
] ]
# Test decode of simple Json Object into Roc Record # Test decode of simple Json Object into Roc Record ignoring whitespace
expect # TODO this test makes `decodeI64` test fail
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
# expect # expect
# input = Str.toUtf8 "{\"fruit\":\"two\"}" # input = Str.toUtf8 " {\n\"fruit\"\t:2\n } "
# actual = Decode.fromBytesPartial input fromUtf8 # 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 # 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.8 : Str = CallByName #Derived.5 #Derived.1;
let #Derived_gen.6 : {Str, Str} = Struct {#Derived_gen.7, #Derived_gen.8}; 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.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; let #Derived_gen.3 : List U8 = CallByName Encode.24 #Derived.3 #Derived_gen.4 #Derived.4;
ret #Derived_gen.3; ret #Derived_gen.3;
@ -17,10 +17,10 @@ procedure #Derived.5 (#Derived.6):
procedure #Derived.7 (#Derived.8, #Derived.9, #Derived.6): procedure #Derived.7 (#Derived.8, #Derived.9, #Derived.6):
let #Derived_gen.21 : Str = "b"; 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.20 : {Str, Str} = Struct {#Derived_gen.21, #Derived_gen.22};
let #Derived_gen.19 : List {Str, Str} = Array [#Derived_gen.20]; 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; let #Derived_gen.17 : List U8 = CallByName Encode.24 #Derived.8 #Derived_gen.18 #Derived.9;
ret #Derived_gen.17; ret #Derived_gen.17;
@ -44,7 +44,7 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111; ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.120;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.130;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.133;
procedure Encode.26 (Encode.105, Encode.106): procedure Encode.26 (Encode.105, Encode.106):
@ -66,150 +66,150 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108; ret Encode.108;
procedure Json.1 (): procedure Json.1 ():
let Json.814 : {} = Struct {}; let Json.878 : {} = Struct {};
ret Json.814; ret Json.878;
procedure Json.139 (Json.140, Json.893, Json.138): procedure Json.146 (Json.147, Json.957, Json.145):
let Json.902 : I64 = 34i64; let Json.966 : I64 = 34i64;
let Json.901 : U8 = CallByName Num.127 Json.902; let Json.965 : U8 = CallByName Num.127 Json.966;
let Json.899 : List U8 = CallByName List.4 Json.140 Json.901; let Json.963 : List U8 = CallByName List.4 Json.147 Json.965;
let Json.900 : List U8 = CallByName Str.12 Json.138; let Json.964 : List U8 = CallByName Str.12 Json.145;
let Json.896 : List U8 = CallByName List.8 Json.899 Json.900; let Json.960 : List U8 = CallByName List.8 Json.963 Json.964;
let Json.898 : I64 = 34i64; let Json.962 : I64 = 34i64;
let Json.897 : U8 = CallByName Num.127 Json.898; let Json.961 : U8 = CallByName Num.127 Json.962;
let Json.895 : List U8 = CallByName List.4 Json.896 Json.897; let Json.959 : List U8 = CallByName List.4 Json.960 Json.961;
ret Json.895; ret Json.959;
procedure Json.155 (Json.156, Json.817, Json.154): procedure Json.162 (Json.163, Json.881, Json.161):
let Json.850 : I64 = 123i64; let Json.914 : I64 = 123i64;
let Json.849 : U8 = CallByName Num.127 Json.850; let Json.913 : U8 = CallByName Num.127 Json.914;
let Json.158 : List U8 = CallByName List.4 Json.156 Json.849; let Json.165 : List U8 = CallByName List.4 Json.163 Json.913;
let Json.848 : U64 = CallByName List.6 Json.154; let Json.912 : U64 = CallByName List.6 Json.161;
let Json.825 : {List U8, U64} = Struct {Json.158, Json.848}; let Json.889 : {List U8, U64} = Struct {Json.165, Json.912};
let Json.826 : {} = Struct {}; let Json.890 : {} = Struct {};
let Json.824 : {List U8, U64} = CallByName List.18 Json.154 Json.825 Json.826; let Json.888 : {List U8, U64} = CallByName List.18 Json.161 Json.889 Json.890;
dec Json.154; dec Json.161;
let Json.160 : List U8 = StructAtIndex 0 Json.824; let Json.167 : List U8 = StructAtIndex 0 Json.888;
inc Json.160; inc Json.167;
dec Json.824; dec Json.888;
let Json.823 : I64 = 125i64; let Json.887 : 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;
let Json.886 : U8 = CallByName Num.127 Json.887; 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 List.4 Json.167 Json.886;
let Json.885 : List U8 = CallByName Str.12 Json.163; ret Json.885;
let Json.881 : List U8 = CallByName List.8 Json.884 Json.885;
let Json.883 : I64 = 34i64; procedure Json.162 (Json.163, Json.881, Json.161):
let Json.882 : U8 = CallByName Num.127 Json.883; let Json.954 : I64 = 123i64;
let Json.878 : List U8 = CallByName List.4 Json.881 Json.882; let Json.953 : U8 = CallByName Num.127 Json.954;
let Json.880 : I64 = 58i64; let Json.165 : List U8 = CallByName List.4 Json.163 Json.953;
let Json.879 : U8 = CallByName Num.127 Json.880; let Json.952 : U64 = CallByName List.6 Json.161;
let Json.876 : List U8 = CallByName List.4 Json.878 Json.879; let Json.929 : {List U8, U64} = Struct {Json.165, Json.952};
let Json.877 : {} = Struct {}; let Json.930 : {} = Struct {};
let Json.165 : List U8 = CallByName Encode.24 Json.876 Json.164 Json.877; let Json.928 : {List U8, U64} = CallByName List.18 Json.161 Json.929 Json.930;
joinpoint Json.871 Json.166: dec Json.161;
let Json.869 : U64 = 1i64; let Json.167 : List U8 = StructAtIndex 0 Json.928;
let Json.868 : U64 = CallByName Num.20 Json.162 Json.869; inc Json.167;
let Json.867 : {List U8, U64} = Struct {Json.166, Json.868}; dec Json.928;
ret Json.867; 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 in
let Json.875 : U64 = 1i64; let Json.899 : U64 = 1i64;
let Json.872 : Int1 = CallByName Num.24 Json.162 Json.875; let Json.896 : Int1 = CallByName Num.24 Json.169 Json.899;
if Json.872 then if Json.896 then
let Json.874 : I64 = 44i64; let Json.898 : I64 = 44i64;
let Json.873 : U8 = CallByName Num.127 Json.874; let Json.897 : U8 = CallByName Num.127 Json.898;
let Json.870 : List U8 = CallByName List.4 Json.165 Json.873; let Json.894 : List U8 = CallByName List.4 Json.172 Json.897;
jump Json.871 Json.870; jump Json.895 Json.894;
else else
jump Json.871 Json.165; jump Json.895 Json.172;
procedure Json.22 (Json.138): procedure Json.164 (Json.883, Json.884):
let Json.891 : Str = CallByName Encode.23 Json.138; let Json.170 : Str = StructAtIndex 0 Json.884;
ret Json.891; 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): procedure Json.23 (Json.145):
let Json.815 : List {Str, Str} = CallByName Encode.23 Json.154; let Json.955 : Str = CallByName Encode.23 Json.145;
ret Json.815; ret Json.955;
procedure Json.24 (Json.154): procedure Json.25 (Json.161):
let Json.857 : List {Str, Str} = CallByName Encode.23 Json.154; let Json.879 : List {Str, Str} = CallByName Encode.23 Json.161;
ret Json.857; 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): 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; ret List.535;
procedure List.139 (List.140, List.141, List.138): 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; ret List.608;
procedure List.18 (List.136, List.137, List.138): 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): procedure #Derived.2 (#Derived.3, #Derived.4, #Derived.1):
let #Derived_gen.7 : Str = "a"; 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.6 : {Str, Str} = Struct {#Derived_gen.7, #Derived_gen.8};
let #Derived_gen.5 : List {Str, Str} = Array [#Derived_gen.6]; 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; let #Derived_gen.3 : List U8 = CallByName Encode.24 #Derived.3 #Derived_gen.4 #Derived.4;
ret #Derived_gen.3; ret #Derived_gen.3;
@ -25,11 +25,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111; ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.121;
procedure Encode.26 (Encode.105, Encode.106): procedure Encode.26 (Encode.105, Encode.106):
@ -39,86 +39,86 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108; ret Encode.108;
procedure Json.1 (): procedure Json.1 ():
let Json.814 : {} = Struct {}; let Json.878 : {} = Struct {};
ret Json.814; ret Json.878;
procedure Json.139 (Json.140, Json.853, Json.138): procedure Json.146 (Json.147, Json.917, Json.145):
let Json.862 : I64 = 34i64; let Json.926 : I64 = 34i64;
let Json.861 : U8 = CallByName Num.127 Json.862; let Json.925 : U8 = CallByName Num.127 Json.926;
let Json.859 : List U8 = CallByName List.4 Json.140 Json.861; let Json.923 : List U8 = CallByName List.4 Json.147 Json.925;
let Json.860 : List U8 = CallByName Str.12 Json.138; let Json.924 : List U8 = CallByName Str.12 Json.145;
let Json.856 : List U8 = CallByName List.8 Json.859 Json.860; let Json.920 : List U8 = CallByName List.8 Json.923 Json.924;
let Json.858 : I64 = 34i64; let Json.922 : I64 = 34i64;
let Json.857 : U8 = CallByName Num.127 Json.858; let Json.921 : U8 = CallByName Num.127 Json.922;
let Json.855 : List U8 = CallByName List.4 Json.856 Json.857; let Json.919 : List U8 = CallByName List.4 Json.920 Json.921;
ret Json.855; ret Json.919;
procedure Json.155 (Json.156, Json.817, Json.154): procedure Json.162 (Json.163, Json.881, Json.161):
let Json.850 : I64 = 123i64; let Json.914 : I64 = 123i64;
let Json.849 : U8 = CallByName Num.127 Json.850; let Json.913 : U8 = CallByName Num.127 Json.914;
let Json.158 : List U8 = CallByName List.4 Json.156 Json.849; let Json.165 : List U8 = CallByName List.4 Json.163 Json.913;
let Json.848 : U64 = CallByName List.6 Json.154; let Json.912 : U64 = CallByName List.6 Json.161;
let Json.825 : {List U8, U64} = Struct {Json.158, Json.848}; let Json.889 : {List U8, U64} = Struct {Json.165, Json.912};
let Json.826 : {} = Struct {}; let Json.890 : {} = Struct {};
let Json.824 : {List U8, U64} = CallByName List.18 Json.154 Json.825 Json.826; let Json.888 : {List U8, U64} = CallByName List.18 Json.161 Json.889 Json.890;
dec Json.154; dec Json.161;
let Json.160 : List U8 = StructAtIndex 0 Json.824; let Json.167 : List U8 = StructAtIndex 0 Json.888;
inc Json.160; inc Json.167;
dec Json.824; dec Json.888;
let Json.823 : I64 = 125i64; let Json.887 : I64 = 125i64;
let Json.822 : U8 = CallByName Num.127 Json.823; let Json.886 : U8 = CallByName Num.127 Json.887;
let Json.821 : List U8 = CallByName List.4 Json.160 Json.822; let Json.885 : List U8 = CallByName List.4 Json.167 Json.886;
ret Json.821; ret Json.885;
procedure Json.157 (Json.819, Json.820): procedure Json.164 (Json.883, Json.884):
let Json.163 : Str = StructAtIndex 0 Json.820; let Json.170 : Str = StructAtIndex 0 Json.884;
inc Json.163; inc Json.170;
let Json.164 : Str = StructAtIndex 1 Json.820; let Json.171 : Str = StructAtIndex 1 Json.884;
inc Json.164; inc Json.171;
dec Json.820; dec Json.884;
let Json.161 : List U8 = StructAtIndex 0 Json.819; let Json.168 : List U8 = StructAtIndex 0 Json.883;
inc Json.161; inc Json.168;
let Json.162 : U64 = StructAtIndex 1 Json.819; let Json.169 : U64 = StructAtIndex 1 Json.883;
dec Json.819; dec Json.883;
let Json.847 : I64 = 34i64; let Json.911 : I64 = 34i64;
let Json.846 : U8 = CallByName Num.127 Json.847; let Json.910 : U8 = CallByName Num.127 Json.911;
let Json.844 : List U8 = CallByName List.4 Json.161 Json.846; let Json.908 : List U8 = CallByName List.4 Json.168 Json.910;
let Json.845 : List U8 = CallByName Str.12 Json.163; let Json.909 : List U8 = CallByName Str.12 Json.170;
let Json.841 : List U8 = CallByName List.8 Json.844 Json.845; let Json.905 : List U8 = CallByName List.8 Json.908 Json.909;
let Json.843 : I64 = 34i64; let Json.907 : I64 = 34i64;
let Json.842 : U8 = CallByName Num.127 Json.843; let Json.906 : U8 = CallByName Num.127 Json.907;
let Json.838 : List U8 = CallByName List.4 Json.841 Json.842; let Json.902 : List U8 = CallByName List.4 Json.905 Json.906;
let Json.840 : I64 = 58i64; let Json.904 : I64 = 58i64;
let Json.839 : U8 = CallByName Num.127 Json.840; let Json.903 : U8 = CallByName Num.127 Json.904;
let Json.836 : List U8 = CallByName List.4 Json.838 Json.839; let Json.900 : List U8 = CallByName List.4 Json.902 Json.903;
let Json.837 : {} = Struct {}; let Json.901 : {} = Struct {};
let Json.165 : List U8 = CallByName Encode.24 Json.836 Json.164 Json.837; let Json.172 : List U8 = CallByName Encode.24 Json.900 Json.171 Json.901;
joinpoint Json.831 Json.166: joinpoint Json.895 Json.173:
let Json.829 : U64 = 1i64; let Json.893 : U64 = 1i64;
let Json.828 : U64 = CallByName Num.20 Json.162 Json.829; let Json.892 : U64 = CallByName Num.20 Json.169 Json.893;
let Json.827 : {List U8, U64} = Struct {Json.166, Json.828}; let Json.891 : {List U8, U64} = Struct {Json.173, Json.892};
ret Json.827; ret Json.891;
in in
let Json.835 : U64 = 1i64; let Json.899 : U64 = 1i64;
let Json.832 : Int1 = CallByName Num.24 Json.162 Json.835; let Json.896 : Int1 = CallByName Num.24 Json.169 Json.899;
if Json.832 then if Json.896 then
let Json.834 : I64 = 44i64; let Json.898 : I64 = 44i64;
let Json.833 : U8 = CallByName Num.127 Json.834; let Json.897 : U8 = CallByName Num.127 Json.898;
let Json.830 : List U8 = CallByName List.4 Json.165 Json.833; let Json.894 : List U8 = CallByName List.4 Json.172 Json.897;
jump Json.831 Json.830; jump Json.895 Json.894;
else else
jump Json.831 Json.165; jump Json.895 Json.172;
procedure Json.22 (Json.138): procedure Json.23 (Json.145):
let Json.851 : Str = CallByName Encode.23 Json.138; let Json.915 : Str = CallByName Encode.23 Json.145;
ret Json.851; ret Json.915;
procedure Json.24 (Json.154): procedure Json.25 (Json.161):
let Json.815 : List {Str, Str} = CallByName Encode.23 Json.154; let Json.879 : List {Str, Str} = CallByName Encode.23 Json.161;
ret Json.815; ret Json.879;
procedure List.139 (List.140, List.141, List.138): 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; ret List.541;
procedure List.18 (List.136, List.137, List.138): 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.11 : Str = "a";
let #Derived_gen.13 : Str = StructAtIndex 0 #Derived.1; let #Derived_gen.13 : Str = StructAtIndex 0 #Derived.1;
inc #Derived_gen.13; 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.6 : {Str, Str} = Struct {#Derived_gen.11, #Derived_gen.12};
let #Derived_gen.8 : Str = "b"; let #Derived_gen.8 : Str = "b";
let #Derived_gen.10 : Str = StructAtIndex 1 #Derived.1; let #Derived_gen.10 : Str = StructAtIndex 1 #Derived.1;
inc #Derived_gen.10; inc #Derived_gen.10;
dec #Derived.1; 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.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.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; let #Derived_gen.3 : List U8 = CallByName Encode.24 #Derived.3 #Derived_gen.4 #Derived.4;
ret #Derived_gen.3; ret #Derived_gen.3;
@ -33,11 +33,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111; ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.122;
procedure Encode.26 (Encode.105, Encode.106): procedure Encode.26 (Encode.105, Encode.106):
@ -47,86 +47,86 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108; ret Encode.108;
procedure Json.1 (): procedure Json.1 ():
let Json.814 : {} = Struct {}; let Json.878 : {} = Struct {};
ret Json.814; ret Json.878;
procedure Json.139 (Json.140, Json.853, Json.138): procedure Json.146 (Json.147, Json.917, Json.145):
let Json.862 : I64 = 34i64; let Json.926 : I64 = 34i64;
let Json.861 : U8 = CallByName Num.127 Json.862; let Json.925 : U8 = CallByName Num.127 Json.926;
let Json.859 : List U8 = CallByName List.4 Json.140 Json.861; let Json.923 : List U8 = CallByName List.4 Json.147 Json.925;
let Json.860 : List U8 = CallByName Str.12 Json.138; let Json.924 : List U8 = CallByName Str.12 Json.145;
let Json.856 : List U8 = CallByName List.8 Json.859 Json.860; let Json.920 : List U8 = CallByName List.8 Json.923 Json.924;
let Json.858 : I64 = 34i64; let Json.922 : I64 = 34i64;
let Json.857 : U8 = CallByName Num.127 Json.858; let Json.921 : U8 = CallByName Num.127 Json.922;
let Json.855 : List U8 = CallByName List.4 Json.856 Json.857; let Json.919 : List U8 = CallByName List.4 Json.920 Json.921;
ret Json.855; ret Json.919;
procedure Json.155 (Json.156, Json.817, Json.154): procedure Json.162 (Json.163, Json.881, Json.161):
let Json.850 : I64 = 123i64; let Json.914 : I64 = 123i64;
let Json.849 : U8 = CallByName Num.127 Json.850; let Json.913 : U8 = CallByName Num.127 Json.914;
let Json.158 : List U8 = CallByName List.4 Json.156 Json.849; let Json.165 : List U8 = CallByName List.4 Json.163 Json.913;
let Json.848 : U64 = CallByName List.6 Json.154; let Json.912 : U64 = CallByName List.6 Json.161;
let Json.825 : {List U8, U64} = Struct {Json.158, Json.848}; let Json.889 : {List U8, U64} = Struct {Json.165, Json.912};
let Json.826 : {} = Struct {}; let Json.890 : {} = Struct {};
let Json.824 : {List U8, U64} = CallByName List.18 Json.154 Json.825 Json.826; let Json.888 : {List U8, U64} = CallByName List.18 Json.161 Json.889 Json.890;
dec Json.154; dec Json.161;
let Json.160 : List U8 = StructAtIndex 0 Json.824; let Json.167 : List U8 = StructAtIndex 0 Json.888;
inc Json.160; inc Json.167;
dec Json.824; dec Json.888;
let Json.823 : I64 = 125i64; let Json.887 : I64 = 125i64;
let Json.822 : U8 = CallByName Num.127 Json.823; let Json.886 : U8 = CallByName Num.127 Json.887;
let Json.821 : List U8 = CallByName List.4 Json.160 Json.822; let Json.885 : List U8 = CallByName List.4 Json.167 Json.886;
ret Json.821; ret Json.885;
procedure Json.157 (Json.819, Json.820): procedure Json.164 (Json.883, Json.884):
let Json.163 : Str = StructAtIndex 0 Json.820; let Json.170 : Str = StructAtIndex 0 Json.884;
inc Json.163; inc Json.170;
let Json.164 : Str = StructAtIndex 1 Json.820; let Json.171 : Str = StructAtIndex 1 Json.884;
inc Json.164; inc Json.171;
dec Json.820; dec Json.884;
let Json.161 : List U8 = StructAtIndex 0 Json.819; let Json.168 : List U8 = StructAtIndex 0 Json.883;
inc Json.161; inc Json.168;
let Json.162 : U64 = StructAtIndex 1 Json.819; let Json.169 : U64 = StructAtIndex 1 Json.883;
dec Json.819; dec Json.883;
let Json.847 : I64 = 34i64; let Json.911 : I64 = 34i64;
let Json.846 : U8 = CallByName Num.127 Json.847; let Json.910 : U8 = CallByName Num.127 Json.911;
let Json.844 : List U8 = CallByName List.4 Json.161 Json.846; let Json.908 : List U8 = CallByName List.4 Json.168 Json.910;
let Json.845 : List U8 = CallByName Str.12 Json.163; let Json.909 : List U8 = CallByName Str.12 Json.170;
let Json.841 : List U8 = CallByName List.8 Json.844 Json.845; let Json.905 : List U8 = CallByName List.8 Json.908 Json.909;
let Json.843 : I64 = 34i64; let Json.907 : I64 = 34i64;
let Json.842 : U8 = CallByName Num.127 Json.843; let Json.906 : U8 = CallByName Num.127 Json.907;
let Json.838 : List U8 = CallByName List.4 Json.841 Json.842; let Json.902 : List U8 = CallByName List.4 Json.905 Json.906;
let Json.840 : I64 = 58i64; let Json.904 : I64 = 58i64;
let Json.839 : U8 = CallByName Num.127 Json.840; let Json.903 : U8 = CallByName Num.127 Json.904;
let Json.836 : List U8 = CallByName List.4 Json.838 Json.839; let Json.900 : List U8 = CallByName List.4 Json.902 Json.903;
let Json.837 : {} = Struct {}; let Json.901 : {} = Struct {};
let Json.165 : List U8 = CallByName Encode.24 Json.836 Json.164 Json.837; let Json.172 : List U8 = CallByName Encode.24 Json.900 Json.171 Json.901;
joinpoint Json.831 Json.166: joinpoint Json.895 Json.173:
let Json.829 : U64 = 1i64; let Json.893 : U64 = 1i64;
let Json.828 : U64 = CallByName Num.20 Json.162 Json.829; let Json.892 : U64 = CallByName Num.20 Json.169 Json.893;
let Json.827 : {List U8, U64} = Struct {Json.166, Json.828}; let Json.891 : {List U8, U64} = Struct {Json.173, Json.892};
ret Json.827; ret Json.891;
in in
let Json.835 : U64 = 1i64; let Json.899 : U64 = 1i64;
let Json.832 : Int1 = CallByName Num.24 Json.162 Json.835; let Json.896 : Int1 = CallByName Num.24 Json.169 Json.899;
if Json.832 then if Json.896 then
let Json.834 : I64 = 44i64; let Json.898 : I64 = 44i64;
let Json.833 : U8 = CallByName Num.127 Json.834; let Json.897 : U8 = CallByName Num.127 Json.898;
let Json.830 : List U8 = CallByName List.4 Json.165 Json.833; let Json.894 : List U8 = CallByName List.4 Json.172 Json.897;
jump Json.831 Json.830; jump Json.895 Json.894;
else else
jump Json.831 Json.165; jump Json.895 Json.172;
procedure Json.22 (Json.138): procedure Json.23 (Json.145):
let Json.863 : Str = CallByName Encode.23 Json.138; let Json.927 : Str = CallByName Encode.23 Json.145;
ret Json.863; ret Json.927;
procedure Json.24 (Json.154): procedure Json.25 (Json.161):
let Json.815 : List {Str, Str} = CallByName Encode.23 Json.154; let Json.879 : List {Str, Str} = CallByName Encode.23 Json.161;
ret Json.815; ret Json.879;
procedure List.139 (List.140, List.141, List.138): 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; ret List.541;
procedure List.18 (List.136, List.137, List.138): procedure List.18 (List.136, List.137, List.138):

View file

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

View file

@ -8,9 +8,9 @@ procedure #Derived.3 (#Derived.4, #Derived.5, #Derived.1):
ret #Derived_gen.3; ret #Derived_gen.3;
in in
let #Derived_gen.7 : Str = "A"; 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.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; jump #Derived_gen.5 #Derived_gen.6;
procedure Encode.23 (Encode.98): procedure Encode.23 (Encode.98):
@ -27,11 +27,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111; ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.121;
procedure Encode.26 (Encode.105, Encode.106): procedure Encode.26 (Encode.105, Encode.106):
@ -41,93 +41,93 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108; ret Encode.108;
procedure Json.1 (): procedure Json.1 ():
let Json.814 : {} = Struct {}; let Json.878 : {} = Struct {};
ret Json.814; ret Json.878;
procedure Json.139 (Json.140, Json.858, Json.138): procedure Json.146 (Json.147, Json.922, Json.145):
let Json.867 : I64 = 34i64; let Json.931 : I64 = 34i64;
let Json.866 : U8 = CallByName Num.127 Json.867; let Json.930 : U8 = CallByName Num.127 Json.931;
let Json.864 : List U8 = CallByName List.4 Json.140 Json.866; let Json.928 : List U8 = CallByName List.4 Json.147 Json.930;
let Json.865 : List U8 = CallByName Str.12 Json.138; let Json.929 : List U8 = CallByName Str.12 Json.145;
let Json.861 : List U8 = CallByName List.8 Json.864 Json.865; let Json.925 : List U8 = CallByName List.8 Json.928 Json.929;
let Json.863 : I64 = 34i64; let Json.927 : I64 = 34i64;
let Json.862 : U8 = CallByName Num.127 Json.863; let Json.926 : U8 = CallByName Num.127 Json.927;
let Json.860 : List U8 = CallByName List.4 Json.861 Json.862; let Json.924 : List U8 = CallByName List.4 Json.925 Json.926;
ret Json.860; ret Json.924;
procedure Json.181 (Json.182, Json.817, #Attr.12): procedure Json.188 (Json.189, Json.881, #Attr.12):
let Json.180 : List Str = StructAtIndex 1 #Attr.12; let Json.187 : 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;
inc Json.187; inc Json.187;
let Json.188 : U64 = StructAtIndex 1 Json.819; let Json.186 : Str = StructAtIndex 0 #Attr.12;
dec Json.819; inc Json.186;
let Json.838 : {} = Struct {}; dec #Attr.12;
let Json.190 : List U8 = CallByName Encode.24 Json.187 Json.189 Json.838; let Json.919 : I64 = 123i64;
joinpoint Json.833 Json.191: let Json.918 : U8 = CallByName Num.127 Json.919;
let Json.831 : U64 = 1i64; let Json.915 : List U8 = CallByName List.4 Json.189 Json.918;
let Json.830 : U64 = CallByName Num.20 Json.188 Json.831; let Json.917 : I64 = 34i64;
let Json.829 : {List U8, U64} = Struct {Json.191, Json.830}; let Json.916 : U8 = CallByName Num.127 Json.917;
ret Json.829; 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 in
let Json.837 : U64 = 1i64; let Json.901 : U64 = 1i64;
let Json.834 : Int1 = CallByName Num.24 Json.188 Json.837; let Json.898 : Int1 = CallByName Num.24 Json.195 Json.901;
if Json.834 then if Json.898 then
let Json.836 : I64 = 44i64; let Json.900 : I64 = 44i64;
let Json.835 : U8 = CallByName Num.127 Json.836; let Json.899 : U8 = CallByName Num.127 Json.900;
let Json.832 : List U8 = CallByName List.4 Json.190 Json.835; let Json.896 : List U8 = CallByName List.4 Json.197 Json.899;
jump Json.833 Json.832; jump Json.897 Json.896;
else else
jump Json.833 Json.190; jump Json.897 Json.197;
procedure Json.22 (Json.138): procedure Json.23 (Json.145):
let Json.856 : Str = CallByName Encode.23 Json.138; let Json.920 : Str = CallByName Encode.23 Json.145;
ret Json.856; ret Json.920;
procedure Json.26 (Json.179, Json.180): procedure Json.27 (Json.186, Json.187):
let Json.816 : {Str, List Str} = Struct {Json.179, Json.180}; let Json.880 : {Str, List Str} = Struct {Json.186, Json.187};
let Json.815 : {Str, List Str} = CallByName Encode.23 Json.816; let Json.879 : {Str, List Str} = CallByName Encode.23 Json.880;
ret Json.815; ret Json.879;
procedure List.139 (List.140, List.141, List.138): 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; ret List.547;
procedure List.18 (List.136, List.137, List.138): 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; inc #Derived.3;
dec #Derived.1; dec #Derived.1;
let #Derived_gen.7 : Str = "A"; let #Derived_gen.7 : Str = "A";
let #Derived_gen.9 : Str = CallByName Json.22 #Derived.2; let #Derived_gen.9 : Str = CallByName Json.23 #Derived.2;
let #Derived_gen.10 : Str = CallByName Json.22 #Derived.3; 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.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; jump #Derived_gen.5 #Derived_gen.6;
procedure Encode.23 (Encode.98): procedure Encode.23 (Encode.98):
@ -33,11 +33,11 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111; ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.122;
procedure Encode.26 (Encode.105, Encode.106): procedure Encode.26 (Encode.105, Encode.106):
@ -47,93 +47,93 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108; ret Encode.108;
procedure Json.1 (): procedure Json.1 ():
let Json.814 : {} = Struct {}; let Json.878 : {} = Struct {};
ret Json.814; ret Json.878;
procedure Json.139 (Json.140, Json.858, Json.138): procedure Json.146 (Json.147, Json.922, Json.145):
let Json.867 : I64 = 34i64; let Json.931 : I64 = 34i64;
let Json.866 : U8 = CallByName Num.127 Json.867; let Json.930 : U8 = CallByName Num.127 Json.931;
let Json.864 : List U8 = CallByName List.4 Json.140 Json.866; let Json.928 : List U8 = CallByName List.4 Json.147 Json.930;
let Json.865 : List U8 = CallByName Str.12 Json.138; let Json.929 : List U8 = CallByName Str.12 Json.145;
let Json.861 : List U8 = CallByName List.8 Json.864 Json.865; let Json.925 : List U8 = CallByName List.8 Json.928 Json.929;
let Json.863 : I64 = 34i64; let Json.927 : I64 = 34i64;
let Json.862 : U8 = CallByName Num.127 Json.863; let Json.926 : U8 = CallByName Num.127 Json.927;
let Json.860 : List U8 = CallByName List.4 Json.861 Json.862; let Json.924 : List U8 = CallByName List.4 Json.925 Json.926;
ret Json.860; ret Json.924;
procedure Json.181 (Json.182, Json.817, #Attr.12): procedure Json.188 (Json.189, Json.881, #Attr.12):
let Json.180 : List Str = StructAtIndex 1 #Attr.12; let Json.187 : 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;
inc Json.187; inc Json.187;
let Json.188 : U64 = StructAtIndex 1 Json.819; let Json.186 : Str = StructAtIndex 0 #Attr.12;
dec Json.819; inc Json.186;
let Json.838 : {} = Struct {}; dec #Attr.12;
let Json.190 : List U8 = CallByName Encode.24 Json.187 Json.189 Json.838; let Json.919 : I64 = 123i64;
joinpoint Json.833 Json.191: let Json.918 : U8 = CallByName Num.127 Json.919;
let Json.831 : U64 = 1i64; let Json.915 : List U8 = CallByName List.4 Json.189 Json.918;
let Json.830 : U64 = CallByName Num.20 Json.188 Json.831; let Json.917 : I64 = 34i64;
let Json.829 : {List U8, U64} = Struct {Json.191, Json.830}; let Json.916 : U8 = CallByName Num.127 Json.917;
ret Json.829; 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 in
let Json.837 : U64 = 1i64; let Json.901 : U64 = 1i64;
let Json.834 : Int1 = CallByName Num.24 Json.188 Json.837; let Json.898 : Int1 = CallByName Num.24 Json.195 Json.901;
if Json.834 then if Json.898 then
let Json.836 : I64 = 44i64; let Json.900 : I64 = 44i64;
let Json.835 : U8 = CallByName Num.127 Json.836; let Json.899 : U8 = CallByName Num.127 Json.900;
let Json.832 : List U8 = CallByName List.4 Json.190 Json.835; let Json.896 : List U8 = CallByName List.4 Json.197 Json.899;
jump Json.833 Json.832; jump Json.897 Json.896;
else else
jump Json.833 Json.190; jump Json.897 Json.197;
procedure Json.22 (Json.138): procedure Json.23 (Json.145):
let Json.868 : Str = CallByName Encode.23 Json.138; let Json.932 : Str = CallByName Encode.23 Json.145;
ret Json.868; ret Json.932;
procedure Json.26 (Json.179, Json.180): procedure Json.27 (Json.186, Json.187):
let Json.816 : {Str, List Str} = Struct {Json.179, Json.180}; let Json.880 : {Str, List Str} = Struct {Json.186, Json.187};
let Json.815 : {Str, List Str} = CallByName Encode.23 Json.816; let Json.879 : {Str, List Str} = CallByName Encode.23 Json.880;
ret Json.815; ret Json.879;
procedure List.139 (List.140, List.141, List.138): 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; ret List.547;
procedure List.18 (List.136, List.137, List.138): 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; ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.123;
procedure Encode.26 (Encode.105, Encode.106): procedure Encode.26 (Encode.105, Encode.106):
@ -30,93 +30,93 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108; ret Encode.108;
procedure Json.1 (): procedure Json.1 ():
let Json.814 : {} = Struct {}; let Json.878 : {} = Struct {};
ret Json.814; ret Json.878;
procedure Json.139 (Json.140, Json.861, Json.138): procedure Json.146 (Json.147, Json.925, Json.145):
let Json.870 : I64 = 34i64; let Json.934 : I64 = 34i64;
let Json.869 : U8 = CallByName Num.127 Json.870; let Json.933 : U8 = CallByName Num.127 Json.934;
let Json.867 : List U8 = CallByName List.4 Json.140 Json.869; let Json.931 : List U8 = CallByName List.4 Json.147 Json.933;
let Json.868 : List U8 = CallByName Str.12 Json.138; let Json.932 : List U8 = CallByName Str.12 Json.145;
let Json.864 : List U8 = CallByName List.8 Json.867 Json.868; let Json.928 : List U8 = CallByName List.8 Json.931 Json.932;
let Json.866 : I64 = 34i64; let Json.930 : I64 = 34i64;
let Json.865 : U8 = CallByName Num.127 Json.866; let Json.929 : U8 = CallByName Num.127 Json.930;
let Json.863 : List U8 = CallByName List.4 Json.864 Json.865; let Json.927 : List U8 = CallByName List.4 Json.928 Json.929;
ret Json.863; ret Json.927;
procedure Json.181 (Json.182, Json.817, #Attr.12): procedure Json.188 (Json.189, Json.881, #Attr.12):
let Json.180 : List Str = StructAtIndex 1 #Attr.12; let Json.187 : 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;
inc Json.187; inc Json.187;
let Json.188 : U64 = StructAtIndex 1 Json.819; let Json.186 : Str = StructAtIndex 0 #Attr.12;
dec Json.819; inc Json.186;
let Json.838 : {} = Struct {}; dec #Attr.12;
let Json.190 : List U8 = CallByName Encode.24 Json.187 Json.189 Json.838; let Json.919 : I64 = 123i64;
joinpoint Json.833 Json.191: let Json.918 : U8 = CallByName Num.127 Json.919;
let Json.831 : U64 = 1i64; let Json.915 : List U8 = CallByName List.4 Json.189 Json.918;
let Json.830 : U64 = CallByName Num.20 Json.188 Json.831; let Json.917 : I64 = 34i64;
let Json.829 : {List U8, U64} = Struct {Json.191, Json.830}; let Json.916 : U8 = CallByName Num.127 Json.917;
ret Json.829; 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 in
let Json.837 : U64 = 1i64; let Json.901 : U64 = 1i64;
let Json.834 : Int1 = CallByName Num.24 Json.188 Json.837; let Json.898 : Int1 = CallByName Num.24 Json.195 Json.901;
if Json.834 then if Json.898 then
let Json.836 : I64 = 44i64; let Json.900 : I64 = 44i64;
let Json.835 : U8 = CallByName Num.127 Json.836; let Json.899 : U8 = CallByName Num.127 Json.900;
let Json.832 : List U8 = CallByName List.4 Json.190 Json.835; let Json.896 : List U8 = CallByName List.4 Json.197 Json.899;
jump Json.833 Json.832; jump Json.897 Json.896;
else else
jump Json.833 Json.190; jump Json.897 Json.197;
procedure Json.22 (Json.138): procedure Json.23 (Json.145):
let Json.871 : Str = CallByName Encode.23 Json.138; let Json.935 : Str = CallByName Encode.23 Json.145;
ret Json.871; ret Json.935;
procedure Json.26 (Json.179, Json.180): procedure Json.27 (Json.186, Json.187):
let Json.857 : {Str, List Str} = Struct {Json.179, Json.180}; let Json.921 : {Str, List Str} = Struct {Json.186, Json.187};
let Json.856 : {Str, List Str} = CallByName Encode.23 Json.857; let Json.920 : {Str, List Str} = CallByName Encode.23 Json.921;
ret Json.856; ret Json.920;
procedure List.139 (List.140, List.141, List.138): 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; ret List.545;
procedure List.18 (List.136, List.137, List.138): 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; let Test.29 : Str = StructAtIndex 0 Test.4;
inc Test.29; inc Test.29;
dec Test.4; 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.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; jump Test.20 Test.19;
else else
let Test.21 : Str = "B"; let Test.21 : Str = "B";
let Test.24 : Str = StructAtIndex 1 Test.4; let Test.24 : Str = StructAtIndex 1 Test.4;
inc Test.24; inc Test.24;
dec Test.4; 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.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; jump Test.20 Test.19;
procedure Test.0 (): procedure Test.0 ():

View file

@ -11,7 +11,7 @@ procedure #Derived.2 (#Derived.3, #Derived.4, #Attr.12):
in in
let #Derived_gen.16 : Str = "A"; let #Derived_gen.16 : Str = "A";
let #Derived_gen.17 : List [] = Array []; 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; jump #Derived_gen.14 #Derived_gen.15;
procedure #Derived.5 (#Derived.6): procedure #Derived.5 (#Derived.6):
@ -27,7 +27,7 @@ procedure #Derived.7 (#Derived.8, #Derived.9, #Attr.12):
in in
let #Derived_gen.7 : Str = "B"; let #Derived_gen.7 : Str = "B";
let #Derived_gen.8 : List [] = Array []; 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; jump #Derived_gen.5 #Derived_gen.6;
procedure Bool.2 (): procedure Bool.2 ():
@ -51,7 +51,7 @@ procedure Encode.24 (Encode.99, Encode.107, Encode.101):
ret Encode.111; ret Encode.111;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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; ret Encode.118;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): 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): 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; ret Encode.134;
procedure Encode.24 (Encode.99, Encode.107, Encode.101): procedure Encode.24 (Encode.99, Encode.107, Encode.101):
@ -81,150 +81,150 @@ procedure Encode.26 (Encode.105, Encode.106):
ret Encode.108; ret Encode.108;
procedure Json.1 (): 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.878 : {} = Struct {};
let Json.876 : {List U8, U64} = CallByName List.18 Json.180 Json.877 Json.878; ret Json.878;
dec Json.180;
let Json.186 : List U8 = StructAtIndex 0 Json.876; 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; inc Json.186;
dec Json.876; dec #Attr.12;
let Json.875 : I64 = 93i64; let Json.919 : I64 = 123i64;
let Json.874 : U8 = CallByName Num.127 Json.875; let Json.918 : U8 = CallByName Num.127 Json.919;
let Json.871 : List U8 = CallByName List.4 Json.186 Json.874; let Json.915 : List U8 = CallByName List.4 Json.189 Json.918;
let Json.873 : I64 = 125i64; let Json.917 : I64 = 34i64;
let Json.872 : U8 = CallByName Num.127 Json.873; let Json.916 : U8 = CallByName Num.127 Json.917;
let Json.870 : List U8 = CallByName List.4 Json.871 Json.872; let Json.913 : List U8 = CallByName List.4 Json.915 Json.916;
ret Json.870; let Json.914 : List U8 = CallByName Str.12 Json.186;
let Json.910 : List U8 = CallByName List.8 Json.913 Json.914;
procedure Json.183 (Json.819, Json.189): let Json.912 : I64 = 34i64;
let Json.187 : List U8 = StructAtIndex 0 Json.819; let Json.911 : U8 = CallByName Num.127 Json.912;
inc Json.187; let Json.907 : List U8 = CallByName List.4 Json.910 Json.911;
let Json.188 : U64 = StructAtIndex 1 Json.819; let Json.909 : I64 = 58i64;
dec Json.819; let Json.908 : U8 = CallByName Num.127 Json.909;
let Json.838 : {} = Struct {}; let Json.904 : List U8 = CallByName List.4 Json.907 Json.908;
let Json.190 : List U8 = CallByName Encode.24 Json.187 Json.189 Json.838; let Json.906 : I64 = 91i64;
joinpoint Json.833 Json.191: let Json.905 : U8 = CallByName Num.127 Json.906;
let Json.831 : U64 = 1i64; let Json.191 : List U8 = CallByName List.4 Json.904 Json.905;
let Json.830 : U64 = CallByName Num.20 Json.188 Json.831; let Json.903 : U64 = CallByName List.6 Json.187;
let Json.829 : {List U8, U64} = Struct {Json.191, Json.830}; let Json.891 : {List U8, U64} = Struct {Json.191, Json.903};
ret Json.829; let Json.892 : {} = Struct {};
in let Json.890 : {List U8, U64} = CallByName List.18 Json.187 Json.891 Json.892;
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 Json.187; dec Json.187;
joinpoint Json.883 Json.191: let Json.193 : List U8 = StructAtIndex 0 Json.890;
let Json.881 : U64 = 1i64; inc Json.193;
let Json.880 : U64 = CallByName Num.20 Json.188 Json.881; dec Json.890;
let Json.879 : {List U8, U64} = Struct {Json.191, Json.880}; let Json.889 : I64 = 93i64;
ret Json.879; 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 in
let Json.887 : U64 = 1i64; let Json.901 : U64 = 1i64;
let Json.884 : Int1 = CallByName Num.24 Json.188 Json.887; let Json.898 : Int1 = CallByName Num.24 Json.195 Json.901;
if Json.884 then if Json.898 then
let Json.886 : I64 = 44i64; let Json.900 : I64 = 44i64;
let Json.885 : U8 = CallByName Num.127 Json.886; let Json.899 : U8 = CallByName Num.127 Json.900;
let Json.882 : List U8 = CallByName List.4 Json.190 Json.885; let Json.896 : List U8 = CallByName List.4 Json.197 Json.899;
jump Json.883 Json.882; jump Json.897 Json.896;
else else
jump Json.883 Json.190; jump Json.897 Json.197;
procedure Json.26 (Json.179, Json.180): procedure Json.190 (Json.883, Json.196):
let Json.857 : {Str, List [C {}, C {}]} = Struct {Json.179, Json.180}; let Json.194 : List U8 = StructAtIndex 0 Json.883;
let Json.856 : {Str, List [C {}, C {}]} = CallByName Encode.23 Json.857; inc Json.194;
ret Json.856; 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): procedure Json.27 (Json.186, Json.187):
let Json.907 : {Str, List []} = Struct {Json.179, Json.180}; let Json.921 : {Str, List [C {}, C {}]} = Struct {Json.186, Json.187};
let Json.906 : {Str, List []} = CallByName Encode.23 Json.907; let Json.920 : {Str, List [C {}, C {}]} = CallByName Encode.23 Json.921;
ret Json.906; 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): 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; ret List.539;
procedure List.139 (List.140, List.141, List.138): 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; ret List.612;
procedure List.18 (List.136, List.137, List.138): 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.32 : {} = StructAtIndex 0 Test.4;
let Test.31 : [C {}, C {}] = CallByName #Derived.0 Test.32; let Test.31 : [C {}, C {}] = CallByName #Derived.0 Test.32;
let Test.30 : List [C {}, C {}] = Array [Test.31]; 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; jump Test.23 Test.22;
else else
let Test.24 : Str = "B"; let Test.24 : Str = "B";
let Test.27 : {} = StructAtIndex 1 Test.4; let Test.27 : {} = StructAtIndex 1 Test.4;
let Test.26 : [C {}, C {}] = CallByName #Derived.5 Test.27; let Test.26 : [C {}, C {}] = CallByName #Derived.5 Test.27;
let Test.25 : List [C {}, C {}] = Array [Test.26]; 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; jump Test.23 Test.22;
procedure Test.0 (): procedure Test.0 ():