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,131 +1064,100 @@ 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 }
_ ->
# Invalid object
{ result: Err TooShort, rest: bytesAfterValue }
countBytesBeforeFirstField = countBytesBeforeFirstField =
when List.walkUntil bytes (BeforeOpeningBrace 0) objectHelp is when List.walkUntil bytes (BeforeOpeningBrace 0) objectHelp is
ObjectFieldNameStart n -> n ObjectFieldNameStart n -> n
_ -> 0 _ -> 0
if countBytesBeforeFirstField == 0 then if countBytesBeforeFirstField == 0 then
# Invalid object, expected opening brace '{' followed by a field # Invalid object, expected opening brace '{' followed by a field
{result: Err TooShort, rest: bytes} { result: Err TooShort, rest: bytes }
else else
bytesBeforeFirstField = (List.drop bytes countBytesBeforeFirstField) bytesBeforeFirstField = List.drop bytes countBytesBeforeFirstField
# Begin decoding field:value pairs # Begin decoding field:value pairs
decodeFields initialState bytesBeforeFirstField 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 : [
@ -1210,28 +1166,39 @@ ObjectState : [
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 ():