github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library@v0.2.0/JSON_Utils_Str_CharStrEscaping/JSON_Utils_Str_CharStrEscaping.go (about) 1 // Package JSON_Utils_Str_CharStrEscaping 2 // Dafny module JSON_Utils_Str_CharStrEscaping compiled into Go 3 4 package JSON_Utils_Str_CharStrEscaping 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_Utils_Cursors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Cursors" 23 m_JSON_Utils_Lexers_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Core" 24 m_JSON_Utils_Lexers_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Strings" 25 m_JSON_Utils_Parsers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Parsers" 26 m_JSON_Utils_Str_CharStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrConversion" 27 m_JSON_Utils_Views_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Core" 28 m_JSON_Utils_Views_Writers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Writers" 29 m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm" 30 m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_" 31 m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals" 32 m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear" 33 m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul" 34 m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals" 35 m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear" 36 m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power" 37 m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations" 38 m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq" 39 m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort" 40 m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting" 41 m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary" 42 m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop" 43 m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence" 44 m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String" 45 m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt" 46 m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams" 47 m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings" 48 m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_" 49 m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm" 50 m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm" 51 m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers" 52 m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_" 53 _dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny" 54 ) 55 56 var _ = os.Args 57 var _ _dafny.Dummy__ 58 var _ m__System.Dummy__ 59 var _ m_Wrappers.Dummy__ 60 var _ m_Relations.Dummy__ 61 var _ m_Seq_MergeSort.Dummy__ 62 var _ m__Math.Dummy__ 63 var _ m_Seq.Dummy__ 64 var _ m_BoundedInts.Dummy__ 65 var _ m__Unicode.Dummy__ 66 var _ m_Functions.Dummy__ 67 var _ m_Utf8EncodingForm.Dummy__ 68 var _ m_Utf16EncodingForm.Dummy__ 69 var _ m_UnicodeStrings.Dummy__ 70 var _ m_FileIO.Dummy__ 71 var _ m_GeneralInternals.Dummy__ 72 var _ m_MulInternalsNonlinear.Dummy__ 73 var _ m_MulInternals.Dummy__ 74 var _ m_Mul.Dummy__ 75 var _ m_ModInternalsNonlinear.Dummy__ 76 var _ m_DivInternalsNonlinear.Dummy__ 77 var _ m_ModInternals.Dummy__ 78 var _ m_DivInternals.Dummy__ 79 var _ m_DivMod.Dummy__ 80 var _ m_Power.Dummy__ 81 var _ m_Logarithm.Dummy__ 82 var _ m_StandardLibraryInterop.Dummy__ 83 var _ m_StandardLibrary_UInt.Dummy__ 84 var _ m_StandardLibrary_Sequence.Dummy__ 85 var _ m_StandardLibrary_String.Dummy__ 86 var _ m_StandardLibrary.Dummy__ 87 var _ m_Streams.Dummy__ 88 var _ m_Sorting.Dummy__ 89 var _ m_HexStrings.Dummy__ 90 var _ m_GetOpt.Dummy__ 91 var _ m_FloatCompare.Dummy__ 92 var _ m_Base64.Dummy__ 93 var _ m_Base64Lemmas.Dummy__ 94 var _ m_Actions.Dummy__ 95 var _ m_JSON_Utils_Views_Core.Dummy__ 96 var _ m_JSON_Utils_Views_Writers.Dummy__ 97 var _ m_JSON_Utils_Lexers_Core.Dummy__ 98 var _ m_JSON_Utils_Lexers_Strings.Dummy__ 99 var _ m_JSON_Utils_Cursors.Dummy__ 100 var _ m_JSON_Utils_Parsers.Dummy__ 101 var _ m_JSON_Utils_Str_CharStrConversion.Dummy__ 102 103 type Dummy__ struct{} 104 105 // Definition of class Default__ 106 type Default__ struct { 107 dummy byte 108 } 109 110 func New_Default___() *Default__ { 111 _this := Default__{} 112 113 return &_this 114 } 115 116 type CompanionStruct_Default___ struct { 117 } 118 119 var Companion_Default___ = CompanionStruct_Default___{} 120 121 func (_this *Default__) Equals(other *Default__) bool { 122 return _this == other 123 } 124 125 func (_this *Default__) EqualsGeneric(x interface{}) bool { 126 other, ok := x.(*Default__) 127 return ok && _this.Equals(other) 128 } 129 130 func (*Default__) String() string { 131 return "JSON_Utils_Str_CharStrEscaping.Default__" 132 } 133 func (_this *Default__) ParentTraits_() []*_dafny.TraitID { 134 return [](*_dafny.TraitID){} 135 } 136 137 var _ _dafny.TraitOffspring = &Default__{} 138 139 func (_static *CompanionStruct_Default___) Escape(str _dafny.Sequence, special _dafny.Set, escape _dafny.Char) _dafny.Sequence { 140 var _0___accumulator _dafny.Sequence = _dafny.SeqOfChars() 141 _ = _0___accumulator 142 goto TAIL_CALL_START 143 TAIL_CALL_START: 144 if _dafny.Companion_Sequence_.Equal(str, _dafny.SeqOfChars()) { 145 return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, str) 146 } else if (special).Contains((str).Select(0).(_dafny.Char)) { 147 _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOfChars(escape, (str).Select(0).(_dafny.Char))) 148 var _in0 _dafny.Sequence = (str).Drop(1) 149 _ = _in0 150 var _in1 _dafny.Set = special 151 _ = _in1 152 var _in2 _dafny.Char = escape 153 _ = _in2 154 str = _in0 155 special = _in1 156 escape = _in2 157 goto TAIL_CALL_START 158 } else { 159 _0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOfChars((str).Select(0).(_dafny.Char))) 160 var _in3 _dafny.Sequence = (str).Drop(1) 161 _ = _in3 162 var _in4 _dafny.Set = special 163 _ = _in4 164 var _in5 _dafny.Char = escape 165 _ = _in5 166 str = _in3 167 special = _in4 168 escape = _in5 169 goto TAIL_CALL_START 170 } 171 } 172 func (_static *CompanionStruct_Default___) Unescape(str _dafny.Sequence, escape _dafny.Char) m_Wrappers.Result { 173 if _dafny.Companion_Sequence_.Equal(str, _dafny.SeqOfChars()) { 174 return m_Wrappers.Companion_Result_.Create_Success_(str) 175 } else if ((str).Select(0).(_dafny.Char)) == (escape) { 176 if (_dafny.IntOfUint32((str).Cardinality())).Cmp(_dafny.One) > 0 { 177 var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.Unescape((str).Drop(2), escape) 178 _ = _0_valueOrError0 179 if (_0_valueOrError0).IsFailure() { 180 return (_0_valueOrError0).PropagateFailure() 181 } else { 182 var _1_tl _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence) 183 _ = _1_tl 184 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfChars((str).Select(1).(_dafny.Char)), _1_tl)) 185 } 186 } else { 187 return m_Wrappers.Companion_Result_.Create_Failure_(Companion_UnescapeError_.Create_EscapeAtEOS_()) 188 } 189 } else { 190 var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.Unescape((str).Drop(1), escape) 191 _ = _2_valueOrError1 192 if (_2_valueOrError1).IsFailure() { 193 return (_2_valueOrError1).PropagateFailure() 194 } else { 195 var _3_tl _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence) 196 _ = _3_tl 197 return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.SeqOfChars((str).Select(0).(_dafny.Char)), _3_tl)) 198 } 199 } 200 } 201 202 // End of class Default__ 203 204 // Definition of datatype UnescapeError 205 type UnescapeError struct { 206 Data_UnescapeError_ 207 } 208 209 func (_this UnescapeError) Get_() Data_UnescapeError_ { 210 return _this.Data_UnescapeError_ 211 } 212 213 type Data_UnescapeError_ interface { 214 isUnescapeError() 215 } 216 217 type CompanionStruct_UnescapeError_ struct { 218 } 219 220 var Companion_UnescapeError_ = CompanionStruct_UnescapeError_{} 221 222 type UnescapeError_EscapeAtEOS struct { 223 } 224 225 func (UnescapeError_EscapeAtEOS) isUnescapeError() {} 226 227 func (CompanionStruct_UnescapeError_) Create_EscapeAtEOS_() UnescapeError { 228 return UnescapeError{UnescapeError_EscapeAtEOS{}} 229 } 230 231 func (_this UnescapeError) Is_EscapeAtEOS() bool { 232 _, ok := _this.Get_().(UnescapeError_EscapeAtEOS) 233 return ok 234 } 235 236 func (CompanionStruct_UnescapeError_) Default() UnescapeError { 237 return Companion_UnescapeError_.Create_EscapeAtEOS_() 238 } 239 240 func (_ CompanionStruct_UnescapeError_) AllSingletonConstructors() _dafny.Iterator { 241 i := -1 242 return func() (interface{}, bool) { 243 i++ 244 switch i { 245 case 0: 246 return Companion_UnescapeError_.Create_EscapeAtEOS_(), true 247 default: 248 return UnescapeError{}, false 249 } 250 } 251 } 252 253 func (_this UnescapeError) String() string { 254 switch _this.Get_().(type) { 255 case nil: 256 return "null" 257 case UnescapeError_EscapeAtEOS: 258 { 259 return "CharStrEscaping.UnescapeError.EscapeAtEOS" 260 } 261 default: 262 { 263 return "<unexpected>" 264 } 265 } 266 } 267 268 func (_this UnescapeError) Equals(other UnescapeError) bool { 269 switch _this.Get_().(type) { 270 case UnescapeError_EscapeAtEOS: 271 { 272 _, ok := other.Get_().(UnescapeError_EscapeAtEOS) 273 return ok 274 } 275 default: 276 { 277 return false // unexpected 278 } 279 } 280 } 281 282 func (_this UnescapeError) EqualsGeneric(other interface{}) bool { 283 typed, ok := other.(UnescapeError) 284 return ok && _this.Equals(typed) 285 } 286 287 func Type_UnescapeError_() _dafny.TypeDescriptor { 288 return type_UnescapeError_{} 289 } 290 291 type type_UnescapeError_ struct { 292 } 293 294 func (_this type_UnescapeError_) Default() interface{} { 295 return Companion_UnescapeError_.Default() 296 } 297 298 func (_this type_UnescapeError_) String() string { 299 return "JSON_Utils_Str_CharStrEscaping.UnescapeError" 300 } 301 func (_this UnescapeError) ParentTraits_() []*_dafny.TraitID { 302 return [](*_dafny.TraitID){} 303 } 304 305 var _ _dafny.TraitOffspring = UnescapeError{} 306 307 // End of datatype UnescapeError