Source/Packages

Compiler.NaturalMagnitude

packages/compiler/src/Compiler/NaturalMagnitude.alpha

453 lines33 declarations18.7 KiBSHA-256 8508c0c0b7d6

def · lines 122–170

magnitudeRadixDigits

Full file
122def magnitudeRadixDigits =
123  (lambda unrestricted radix : (family IntegerLiteralRadix) .
124    (lambda unrestricted digits : Bytes .
125      (app
126        (bytes-eliminate
127          (lambda unrestricted rest : Bytes .
128            (pi unrestricted accumulator : Bytes . (family NaturalMagnitudeResult)))
129          (lambda unrestricted accumulator : Bytes .
130            (constructor NaturalMagnitudeResult NaturalMagnitudeAccepted accumulator))
131          (lambda unrestricted head : Byte .
132            (lambda unrestricted tail : Bytes .
133              (lambda unrestricted continue : (pi unrestricted accumulator : Bytes . (family NaturalMagnitudeResult)) .
134                (lambda unrestricted accumulator : Bytes .
135                  (eliminate
136                    IntegerLiteralDigitResult
137                    (lambda unrestricted current : (family IntegerLiteralDigitResult) .
138                      (family NaturalMagnitudeResult))
139                    (Compiler.IntegerLiteral/integerLiteralDecodeDigit radix head)
140                    (branch
141                      IntegerLiteralDigitValue
142                      digit
143                      .
144                      (eliminate
145                        NaturalMagnitudeResult
146                        (lambda unrestricted current : (family NaturalMagnitudeResult) .
147                          (family NaturalMagnitudeResult))
148                        (magnitudeBudgetAccept
149                          (magnitudeAdd
150                            (magnitudeFromNatural digit)
151                            (magnitudeRadixScale radix accumulator)))
152                        (branch NaturalMagnitudeAccepted next . (continue next))
153                        (branch
154                          NaturalMagnitudeRejected
155                          failure
156                          .
157                          (constructor NaturalMagnitudeResult NaturalMagnitudeRejected failure))))
158                    (branch
159                      IntegerLiteralDigitFailed
160                      failure
161                      .
162                      (constructor
163                        NaturalMagnitudeResult
164                        NaturalMagnitudeRejected
165                        (constructor
166                          NaturalMagnitudeFailure
167                          NaturalMagnitudeLiteralMalformed
168                          failure))))))))
169          digits)
170        b"")))

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.