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