github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library@v0.2.0/JSON_Deserializer/JSON_Deserializer.go (about) 1 // Package JSON_Deserializer 2 // Dafny module JSON_Deserializer compiled into Go 3 4 package JSON_Deserializer 5 6 import ( 7 os "os" 8 9 m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions" 10 m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64" 11 m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas" 12 m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts" 13 m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals" 14 m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear" 15 m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod" 16 m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO" 17 m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare" 18 m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions" 19 m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals" 20 m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt" 21 m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings" 22 m_JSON_Deserializer_ByteStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Deserializer_ByteStrConversion" 23 m_JSON_Deserializer_Uint16StrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Deserializer_Uint16StrConversion" 24 m_JSON_Errors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Errors" 25 m_JSON_Grammar "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Grammar" 26 m_JSON_Serializer "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Serializer" 27 m_JSON_Serializer_ByteStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Serializer_ByteStrConversion" 28 m_JSON_Spec "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Spec" 29 m_JSON_Utils_Cursors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Cursors" 30 m_JSON_Utils_Lexers_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Core" 31 m_JSON_Utils_Lexers_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Strings" 32 m_JSON_Utils_Parsers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Parsers" 33 m_JSON_Utils_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Seq" 34 m_JSON_Utils_Str "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str" 35 m_JSON_Utils_Str_CharStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrConversion" 36 m_JSON_Utils_Str_CharStrEscaping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrEscaping" 37 m_JSON_Utils_Vectors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Vectors" 38 m_JSON_Utils_Views_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Core" 39 m_JSON_Utils_Views_Writers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Writers" 40 m_JSON_Values "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Values" 41 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 42 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 43 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 44 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 45 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 46 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 47 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 48 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 49 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 50 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 51 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 52 m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" 53 m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" 54 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 55 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 56 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 57 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 58 m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" 59 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 60 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 61 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 62 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 63 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 64 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 65 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 66 ) 67 68 var _ = os.Args 69 var _ _dafny.Dummy__ 70 var _ m__System.Dummy__ 71 var _ m_Wrappers.Dummy__ 72 var _ m_Relations.Dummy__ 73 var _ m_Seq_MergeSort.Dummy__ 74 var _ m__Math.Dummy__ 75 var _ m_Seq.Dummy__ 76 var _ m_BoundedInts.Dummy__ 77 var _ m__Unicode.Dummy__ 78 var _ m_Functions.Dummy__ 79 var _ m_Utf8EncodingForm.Dummy__ 80 var _ m_Utf16EncodingForm.Dummy__ 81 var _ m_UnicodeStrings.Dummy__ 82 var _ m_FileIO.Dummy__ 83 var _ m_GeneralInternals.Dummy__ 84 var _ m_MulInternalsNonlinear.Dummy__ 85 var _ m_MulInternals.Dummy__ 86 var _ m_Mul.Dummy__ 87 var _ m_ModInternalsNonlinear.Dummy__ 88 var _ m_DivInternalsNonlinear.Dummy__ 89 var _ m_ModInternals.Dummy__ 90 var _ m_DivInternals.Dummy__ 91 var _ m_DivMod.Dummy__ 92 var _ m_Power.Dummy__ 93 var _ m_Logarithm.Dummy__ 94 var _ m_StandardLibraryInterop.Dummy__ 95 var _ m_StandardLibrary_UInt.Dummy__ 96 var _ m_StandardLibrary_Sequence.Dummy__ 97 var _ m_StandardLibrary_String.Dummy__ 98 var _ m_StandardLibrary.Dummy__ 99 var _ m_Streams.Dummy__ 100 var _ m_Sorting.Dummy__ 101 var _ m_HexStrings.Dummy__ 102 var _ m_GetOpt.Dummy__ 103 var _ m_FloatCompare.Dummy__ 104 var _ m_Base64.Dummy__ 105 var _ m_Base64Lemmas.Dummy__ 106 var _ m_Actions.Dummy__ 107 var _ m_JSON_Utils_Views_Core.Dummy__ 108 var _ m_JSON_Utils_Views_Writers.Dummy__ 109 var _ m_JSON_Utils_Lexers_Core.Dummy__ 110 var _ m_JSON_Utils_Lexers_Strings.Dummy__ 111 var _ m_JSON_Utils_Cursors.Dummy__ 112 var _ m_JSON_Utils_Parsers.Dummy__ 113 var _ m_JSON_Utils_Str_CharStrConversion.Dummy__ 114 var _ m_JSON_Utils_Str_CharStrEscaping.Dummy__ 115 var _ m_JSON_Utils_Str.Dummy__ 116 var _ m_JSON_Utils_Seq.Dummy__ 117 var _ m_JSON_Utils_Vectors.Dummy__ 118 var _ m_JSON_Errors.Dummy__ 119 var _ m_JSON_Values.Dummy__ 120 var _ m_JSON_Spec.Dummy__ 121 var _ m_JSON_Grammar.Dummy__ 122 var _ m_JSON_Serializer_ByteStrConversion.Dummy__ 123 var _ m_JSON_Serializer.Dummy__ 124 var _ m_JSON_Deserializer_Uint16StrConversion.Dummy__ 125 var _ m_JSON_Deserializer_ByteStrConversion.Dummy__ 126 127 type Dummy__ struct{} 128 129 // Definition of class Default__ 130 type Default__ struct { 131 dummy byte 132 } 133 134 func New_Default___() *Default__ { 135 _this := Default__{} 136 137 return &_this 138 } 139 140 type CompanionStruct_Default___ struct { 141 } 142 143 var Companion_Default___ = CompanionStruct_Default___{} 144 145 func (_this *Default__) Equals(other *Default__) bool { 146 return _this == other 147 } 148 149 func (_this *Default__) EqualsGeneric(x interface{}) bool { 150 other, ok := x.(*Default__) 151 return ok && _this.Equals(other) 152 } 153 154 func (*Default__) String() string { 155 return "JSON_Deserializer.Default__" 156 } 157 func (_this *Default__) ParentTraits_() []*_dafny.TraitID { 158 return [](*_dafny.TraitID){} 159 } 160 161 var _ _dafny.TraitOffspring = &Default__{} 162 163 func (_static *CompanionStruct_Default___) Bool(js m_JSON_Utils_Views_Core.View__) bool { 164 return ((js).At(uint32(0))) == (uint8(_dafny.Char('t'))) 165 } 166 func (_static *CompanionStruct_Default___) UnsupportedEscape16(code _dafny.Sequence) m_JSON_Errors.DeserializationError { 167 return m_JSON_Errors.Companion_DeserializationError_.Create_UnsupportedEscape_((m_UnicodeStrings.Companion_Default___.FromUTF16Checked(code)).UnwrapOr(_dafny.SeqOfString("Couldn't decode UTF-16")).(_dafny.Sequence)) 168 } 169 func (_static *CompanionStruct_Default___) ToNat16(str _dafny.Sequence) uint16 { 170 var _0_hd _dafny.Int = m_JSON_Deserializer_Uint16StrConversion.Companion_Default___.ToNat__any(str, _dafny.IntOfInt64(16), Companion_Default___.HEX__TABLE__16()) 171 _ = _0_hd 172 return (_0_hd).Uint16() 173 } 174 func (_static *CompanionStruct_Default___) Unescape(str _dafny.Sequence, start _dafny.Int, prefix _dafny.Sequence) m_Wrappers.Result { 175 goto TAIL_CALL_START 176 TAIL_CALL_START: 177 if (start).Cmp(_dafny.IntOfUint32((str).Cardinality())) >= 0 { 178 return m_Wrappers.Companion_Result_.Create_Success_(prefix) 179 } else if ((str).Select((start).Uint32()).(uint16)) == (uint16(_dafny.Char('\\'))) { 180 if (_dafny.IntOfUint32((str).Cardinality())).Cmp((start).Plus(_dafny.One)) == 0 { 181 return m_Wrappers.Companion_Result_.Create_Failure_(m_JSON_Errors.Companion_DeserializationError_.Create_EscapeAtEOS_()) 182 } else { 183 var _0_c uint16 = (str).Select(((start).Plus(_dafny.One)).Uint32()).(uint16) 184 _ = _0_c 185 if (_0_c) == (uint16(_dafny.Char('u'))) { 186 if (_dafny.IntOfUint32((str).Cardinality())).Cmp((start).Plus(_dafny.IntOfInt64(6))) <= 0 { 187 return m_Wrappers.Companion_Result_.Create_Failure_(m_JSON_Errors.Companion_DeserializationError_.Create_EscapeAtEOS_()) 188 } else { 189 var _1_code _dafny.Sequence = (str).Subsequence(((start).Plus(_dafny.IntOfInt64(2))).Uint32(), ((start).Plus(_dafny.IntOfInt64(6))).Uint32()) 190 _ = _1_code 191 if _dafny.Quantifier((_1_code).UniqueElements(), false, func(_exists_var_0 uint16) bool { 192 var _2_c uint16 193 _2_c = interface{}(_exists_var_0).(uint16) 194 if true { 195 return (_dafny.Companion_Sequence_.Contains(_1_code, _2_c)) && (!(Companion_Default___.HEX__TABLE__16()).Contains(_2_c)) 196 } else { 197 return false 198 } 199 }) { 200 return m_Wrappers.Companion_Result_.Create_Failure_(Companion_Default___.UnsupportedEscape16(_1_code)) 201 } else { 202 var _3_hd uint16 = Companion_Default___.ToNat16(_1_code) 203 _ = _3_hd 204 var _in0 _dafny.Sequence = str 205 _ = _in0 206 var _in1 _dafny.Int = (start).Plus(_dafny.IntOfInt64(6)) 207 _ = _in1 208 var _in2 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(prefix, _dafny.SeqOf(_3_hd)) 209 _ = _in2 210 str = _in0 211 start = _in1 212 prefix = _in2 213 goto TAIL_CALL_START 214 } 215 } 216 } else { 217 var _4_unescaped uint16 = func() uint16 { 218 var _source0 uint16 = _0_c 219 _ = _source0 220 { 221 if (_source0) == (uint16(34)) { 222 return uint16(34) 223 } 224 } 225 { 226 if (_source0) == (uint16(92)) { 227 return uint16(92) 228 } 229 } 230 { 231 if (_source0) == (uint16(98)) { 232 return uint16(8) 233 } 234 } 235 { 236 if (_source0) == (uint16(102)) { 237 return uint16(12) 238 } 239 } 240 { 241 if (_source0) == (uint16(110)) { 242 return uint16(10) 243 } 244 } 245 { 246 if (_source0) == (uint16(114)) { 247 return uint16(13) 248 } 249 } 250 { 251 if (_source0) == (uint16(116)) { 252 return uint16(9) 253 } 254 } 255 { 256 return uint16(0) 257 } 258 }() 259 _ = _4_unescaped 260 if (_dafny.IntOfUint16(_4_unescaped)).Sign() == 0 { 261 return m_Wrappers.Companion_Result_.Create_Failure_(Companion_Default___.UnsupportedEscape16((str).Subsequence((start).Uint32(), ((start).Plus(_dafny.IntOfInt64(2))).Uint32()))) 262 } else { 263 var _in3 _dafny.Sequence = str 264 _ = _in3 265 var _in4 _dafny.Int = (start).Plus(_dafny.IntOfInt64(2)) 266 _ = _in4 267 var _in5 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(prefix, _dafny.SeqOf(_4_unescaped)) 268 _ = _in5 269 str = _in3 270 start = _in4 271 prefix = _in5 272 goto TAIL_CALL_START 273 } 274 } 275 } 276 } else { 277 var _in6 _dafny.Sequence = str 278 _ = _in6 279 var _in7 _dafny.Int = (start).Plus(_dafny.One) 280 _ = _in7 281 var _in8 _dafny.Sequence = _dafny.Companion_Sequence_.Concatenate(prefix, _dafny.SeqOf((str).Select((start).Uint32()).(uint16))) 282 _ = _in8 283 str = _in6 284 start = _in7 285 prefix = _in8 286 goto TAIL_CALL_START 287 } 288 } 289 func (_static *CompanionStruct_Default___) String(js m_JSON_Grammar.Jstring) m_Wrappers.Result { 290 var _0_valueOrError0 m_Wrappers.Result = (m_UnicodeStrings.Companion_Default___.FromUTF8Checked(((js).Dtor_contents()).Bytes())).ToResult_k(m_JSON_Errors.Companion_DeserializationError_.Create_InvalidUnicode_()) 291 _ = _0_valueOrError0 292 if (_0_valueOrError0).IsFailure() { 293 return (_0_valueOrError0).PropagateFailure() 294 } else { 295 var _1_asUtf32 _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) 296 _ = _1_asUtf32 297 var _2_valueOrError1 m_Wrappers.Result = (m_UnicodeStrings.Companion_Default___.ToUTF16Checked(_1_asUtf32)).ToResult_k(m_JSON_Errors.Companion_DeserializationError_.Create_InvalidUnicode_()) 298 _ = _2_valueOrError1 299 if (_2_valueOrError1).IsFailure() { 300 return (_2_valueOrError1).PropagateFailure() 301 } else { 302 var _3_asUint16 _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) 303 _ = _3_asUint16 304 var _4_valueOrError2 m_Wrappers.Result = Companion_Default___.Unescape(_3_asUint16, _dafny.Zero, _dafny.SeqOf()) 305 _ = _4_valueOrError2 306 if (_4_valueOrError2).IsFailure() { 307 return (_4_valueOrError2).PropagateFailure() 308 } else { 309 var _5_unescaped _dafny.Sequence = (_4_valueOrError2).Extract().(_dafny.Sequence) 310 _ = _5_unescaped 311 return (m_UnicodeStrings.Companion_Default___.FromUTF16Checked(_5_unescaped)).ToResult_k(m_JSON_Errors.Companion_DeserializationError_.Create_InvalidUnicode_()) 312 } 313 } 314 } 315 } 316 func (_static *CompanionStruct_Default___) ToInt(sign m_JSON_Utils_Views_Core.View__, n m_JSON_Utils_Views_Core.View__) m_Wrappers.Result { 317 var _0_n _dafny.Int = m_JSON_Deserializer_ByteStrConversion.Companion_Default___.ToNat__any((n).Bytes(), _dafny.IntOfInt64(10), Companion_Default___.DIGITS()) 318 _ = _0_n 319 return m_Wrappers.Companion_Result_.Create_Success_((func() _dafny.Int { 320 if (sign).Char_q(_dafny.Char('-')) { 321 return (_dafny.Zero).Minus(_0_n) 322 } 323 return _0_n 324 })()) 325 } 326 func (_static *CompanionStruct_Default___) Number(js m_JSON_Grammar.Jnumber) m_Wrappers.Result { 327 var _let_tmp_rhs0 m_JSON_Grammar.Jnumber = js 328 _ = _let_tmp_rhs0 329 var _0_minus m_JSON_Utils_Views_Core.View__ = _let_tmp_rhs0.Get_().(m_JSON_Grammar.Jnumber_JNumber).Minus 330 _ = _0_minus 331 var _1_num m_JSON_Utils_Views_Core.View__ = _let_tmp_rhs0.Get_().(m_JSON_Grammar.Jnumber_JNumber).Num 332 _ = _1_num 333 var _2_frac m_JSON_Grammar.Maybe = _let_tmp_rhs0.Get_().(m_JSON_Grammar.Jnumber_JNumber).Frac 334 _ = _2_frac 335 var _3_exp m_JSON_Grammar.Maybe = _let_tmp_rhs0.Get_().(m_JSON_Grammar.Jnumber_JNumber).Exp 336 _ = _3_exp 337 var _4_valueOrError0 m_Wrappers.Result = Companion_Default___.ToInt(_0_minus, _1_num) 338 _ = _4_valueOrError0 339 if (_4_valueOrError0).IsFailure() { 340 return (_4_valueOrError0).PropagateFailure() 341 } else { 342 var _5_n _dafny.Int = (_4_valueOrError0).Extract().(_dafny.Int) 343 _ = _5_n 344 var _6_valueOrError1 m_Wrappers.Result = func() m_Wrappers.Result { 345 var _source0 m_JSON_Grammar.Maybe = _3_exp 346 _ = _source0 347 { 348 if _source0.Is_Empty() { 349 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Zero) 350 } 351 } 352 { 353 var t0 m_JSON_Grammar.Jexp = _source0.Get_().(m_JSON_Grammar.Maybe_NonEmpty).T.(m_JSON_Grammar.Jexp) 354 _ = t0 355 var _7_sign m_JSON_Utils_Views_Core.View__ = t0.Get_().(m_JSON_Grammar.Jexp_JExp).Sign 356 _ = _7_sign 357 var _8_num m_JSON_Utils_Views_Core.View__ = t0.Get_().(m_JSON_Grammar.Jexp_JExp).Num 358 _ = _8_num 359 return Companion_Default___.ToInt(_7_sign, _8_num) 360 } 361 }() 362 _ = _6_valueOrError1 363 if (_6_valueOrError1).IsFailure() { 364 return (_6_valueOrError1).PropagateFailure() 365 } else { 366 var _9_e10 _dafny.Int = (_6_valueOrError1).Extract().(_dafny.Int) 367 _ = _9_e10 368 var _source1 m_JSON_Grammar.Maybe = _2_frac 369 _ = _source1 370 { 371 if _source1.Is_Empty() { 372 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Values.Companion_Decimal_.Create_Decimal_(_5_n, _9_e10)) 373 } 374 } 375 { 376 var t1 m_JSON_Grammar.Jfrac = _source1.Get_().(m_JSON_Grammar.Maybe_NonEmpty).T.(m_JSON_Grammar.Jfrac) 377 _ = t1 378 var _10_num m_JSON_Utils_Views_Core.View__ = t1.Get_().(m_JSON_Grammar.Jfrac_JFrac).Num 379 _ = _10_num 380 var _11_pow10 _dafny.Int = _dafny.IntOfUint32((_10_num).Length()) 381 _ = _11_pow10 382 var _12_valueOrError2 m_Wrappers.Result = Companion_Default___.ToInt(_0_minus, _10_num) 383 _ = _12_valueOrError2 384 if (_12_valueOrError2).IsFailure() { 385 return (_12_valueOrError2).PropagateFailure() 386 } else { 387 var _13_frac _dafny.Int = (_12_valueOrError2).Extract().(_dafny.Int) 388 _ = _13_frac 389 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Values.Companion_Decimal_.Create_Decimal_(((_5_n).Times(m_Power.Companion_Default___.Pow(_dafny.IntOfInt64(10), _11_pow10))).Plus(_13_frac), (_9_e10).Minus(_11_pow10))) 390 } 391 } 392 } 393 } 394 } 395 func (_static *CompanionStruct_Default___) KeyValue(js m_JSON_Grammar.JKeyValue) m_Wrappers.Result { 396 var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.String((js).Dtor_k()) 397 _ = _0_valueOrError0 398 if (_0_valueOrError0).IsFailure() { 399 return (_0_valueOrError0).PropagateFailure() 400 } else { 401 var _1_k _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) 402 _ = _1_k 403 var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.Value((js).Dtor_v()) 404 _ = _2_valueOrError1 405 if (_2_valueOrError1).IsFailure() { 406 return (_2_valueOrError1).PropagateFailure() 407 } else { 408 var _3_v m_JSON_Values.JSON = (_2_valueOrError1).Extract().(m_JSON_Values.JSON) 409 _ = _3_v 410 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_1_k, _3_v)) 411 } 412 } 413 } 414 func (_static *CompanionStruct_Default___) Object(js m_JSON_Grammar.Bracketed) m_Wrappers.Result { 415 return m_Seq.Companion_Default___.MapWithResult(func(coer41 func(m_JSON_Grammar.Suffixed) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { 416 return func(arg45 interface{}) m_Wrappers.Result { 417 return coer41(arg45.(m_JSON_Grammar.Suffixed)) 418 } 419 }((func(_0_js m_JSON_Grammar.Bracketed) func(m_JSON_Grammar.Suffixed) m_Wrappers.Result { 420 return func(_1_d m_JSON_Grammar.Suffixed) m_Wrappers.Result { 421 return Companion_Default___.KeyValue((_1_d).Dtor_t().(m_JSON_Grammar.JKeyValue)) 422 } 423 })(js)), (js).Dtor_data()) 424 } 425 func (_static *CompanionStruct_Default___) Array(js m_JSON_Grammar.Bracketed) m_Wrappers.Result { 426 return m_Seq.Companion_Default___.MapWithResult(func(coer42 func(m_JSON_Grammar.Suffixed) m_Wrappers.Result) func(interface{}) m_Wrappers.Result { 427 return func(arg46 interface{}) m_Wrappers.Result { 428 return coer42(arg46.(m_JSON_Grammar.Suffixed)) 429 } 430 }((func(_0_js m_JSON_Grammar.Bracketed) func(m_JSON_Grammar.Suffixed) m_Wrappers.Result { 431 return func(_1_d m_JSON_Grammar.Suffixed) m_Wrappers.Result { 432 return Companion_Default___.Value((_1_d).Dtor_t().(m_JSON_Grammar.Value)) 433 } 434 })(js)), (js).Dtor_data()) 435 } 436 func (_static *CompanionStruct_Default___) Value(js m_JSON_Grammar.Value) m_Wrappers.Result { 437 var _source0 m_JSON_Grammar.Value = js 438 _ = _source0 439 { 440 if _source0.Is_Null() { 441 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Values.Companion_JSON_.Create_Null_()) 442 } 443 } 444 { 445 if _source0.Is_Bool() { 446 var _0_b m_JSON_Utils_Views_Core.View__ = _source0.Get_().(m_JSON_Grammar.Value_Bool).B 447 _ = _0_b 448 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Values.Companion_JSON_.Create_Bool_(Companion_Default___.Bool(_0_b))) 449 } 450 } 451 { 452 if _source0.Is_String() { 453 var _1_str m_JSON_Grammar.Jstring = _source0.Get_().(m_JSON_Grammar.Value_String).Str 454 _ = _1_str 455 var _2_valueOrError0 m_Wrappers.Result = Companion_Default___.String(_1_str) 456 _ = _2_valueOrError0 457 if (_2_valueOrError0).IsFailure() { 458 return (_2_valueOrError0).PropagateFailure() 459 } else { 460 var _3_s _dafny.Sequence = (_2_valueOrError0).Extract().(_dafny.Sequence) 461 _ = _3_s 462 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Values.Companion_JSON_.Create_String_(_3_s)) 463 } 464 } 465 } 466 { 467 if _source0.Is_Number() { 468 var _4_dec m_JSON_Grammar.Jnumber = _source0.Get_().(m_JSON_Grammar.Value_Number).Num 469 _ = _4_dec 470 var _5_valueOrError1 m_Wrappers.Result = Companion_Default___.Number(_4_dec) 471 _ = _5_valueOrError1 472 if (_5_valueOrError1).IsFailure() { 473 return (_5_valueOrError1).PropagateFailure() 474 } else { 475 var _6_n m_JSON_Values.Decimal = (_5_valueOrError1).Extract().(m_JSON_Values.Decimal) 476 _ = _6_n 477 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Values.Companion_JSON_.Create_Number_(_6_n)) 478 } 479 } 480 } 481 { 482 if _source0.Is_Object() { 483 var _7_obj m_JSON_Grammar.Bracketed = _source0.Get_().(m_JSON_Grammar.Value_Object).Obj 484 _ = _7_obj 485 var _8_valueOrError2 m_Wrappers.Result = Companion_Default___.Object(_7_obj) 486 _ = _8_valueOrError2 487 if (_8_valueOrError2).IsFailure() { 488 return (_8_valueOrError2).PropagateFailure() 489 } else { 490 var _9_o _dafny.Sequence = (_8_valueOrError2).Extract().(_dafny.Sequence) 491 _ = _9_o 492 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Values.Companion_JSON_.Create_Object_(_9_o)) 493 } 494 } 495 } 496 { 497 var _10_arr m_JSON_Grammar.Bracketed = _source0.Get_().(m_JSON_Grammar.Value_Array).Arr 498 _ = _10_arr 499 var _11_valueOrError3 m_Wrappers.Result = Companion_Default___.Array(_10_arr) 500 _ = _11_valueOrError3 501 if (_11_valueOrError3).IsFailure() { 502 return (_11_valueOrError3).PropagateFailure() 503 } else { 504 var _12_a _dafny.Sequence = (_11_valueOrError3).Extract().(_dafny.Sequence) 505 _ = _12_a 506 return m_Wrappers.Companion_Result_.Create_Success_(m_JSON_Values.Companion_JSON_.Create_Array_(_12_a)) 507 } 508 } 509 } 510 func (_static *CompanionStruct_Default___) JSON(js m_JSON_Grammar.Structural) m_Wrappers.Result { 511 return Companion_Default___.Value((js).Dtor_t().(m_JSON_Grammar.Value)) 512 } 513 func (_static *CompanionStruct_Default___) HEX__TABLE__16() _dafny.Map { 514 return _dafny.NewMapBuilder().ToMap().UpdateUnsafe(uint16(_dafny.Char('0')), _dafny.Zero).UpdateUnsafe(uint16(_dafny.Char('1')), _dafny.One).UpdateUnsafe(uint16(_dafny.Char('2')), _dafny.IntOfInt64(2)).UpdateUnsafe(uint16(_dafny.Char('3')), _dafny.IntOfInt64(3)).UpdateUnsafe(uint16(_dafny.Char('4')), _dafny.IntOfInt64(4)).UpdateUnsafe(uint16(_dafny.Char('5')), _dafny.IntOfInt64(5)).UpdateUnsafe(uint16(_dafny.Char('6')), _dafny.IntOfInt64(6)).UpdateUnsafe(uint16(_dafny.Char('7')), _dafny.IntOfInt64(7)).UpdateUnsafe(uint16(_dafny.Char('8')), _dafny.IntOfInt64(8)).UpdateUnsafe(uint16(_dafny.Char('9')), _dafny.IntOfInt64(9)).UpdateUnsafe(uint16(_dafny.Char('a')), _dafny.IntOfInt64(10)).UpdateUnsafe(uint16(_dafny.Char('b')), _dafny.IntOfInt64(11)).UpdateUnsafe(uint16(_dafny.Char('c')), _dafny.IntOfInt64(12)).UpdateUnsafe(uint16(_dafny.Char('d')), _dafny.IntOfInt64(13)).UpdateUnsafe(uint16(_dafny.Char('e')), _dafny.IntOfInt64(14)).UpdateUnsafe(uint16(_dafny.Char('f')), _dafny.IntOfInt64(15)).UpdateUnsafe(uint16(_dafny.Char('A')), _dafny.IntOfInt64(10)).UpdateUnsafe(uint16(_dafny.Char('B')), _dafny.IntOfInt64(11)).UpdateUnsafe(uint16(_dafny.Char('C')), _dafny.IntOfInt64(12)).UpdateUnsafe(uint16(_dafny.Char('D')), _dafny.IntOfInt64(13)).UpdateUnsafe(uint16(_dafny.Char('E')), _dafny.IntOfInt64(14)).UpdateUnsafe(uint16(_dafny.Char('F')), _dafny.IntOfInt64(15)) 515 } 516 func (_static *CompanionStruct_Default___) DIGITS() _dafny.Map { 517 return _dafny.NewMapBuilder().ToMap().UpdateUnsafe(uint8(_dafny.Char('0')), _dafny.Zero).UpdateUnsafe(uint8(_dafny.Char('1')), _dafny.One).UpdateUnsafe(uint8(_dafny.Char('2')), _dafny.IntOfInt64(2)).UpdateUnsafe(uint8(_dafny.Char('3')), _dafny.IntOfInt64(3)).UpdateUnsafe(uint8(_dafny.Char('4')), _dafny.IntOfInt64(4)).UpdateUnsafe(uint8(_dafny.Char('5')), _dafny.IntOfInt64(5)).UpdateUnsafe(uint8(_dafny.Char('6')), _dafny.IntOfInt64(6)).UpdateUnsafe(uint8(_dafny.Char('7')), _dafny.IntOfInt64(7)).UpdateUnsafe(uint8(_dafny.Char('8')), _dafny.IntOfInt64(8)).UpdateUnsafe(uint8(_dafny.Char('9')), _dafny.IntOfInt64(9)) 518 } 519 func (_static *CompanionStruct_Default___) MINUS() uint8 { 520 return uint8(_dafny.Char('-')) 521 } 522 523 // End of class Default__