def extents

stelliferous@0.0.2.0 · tensor_file.bend:213

import stelliferous@0.0.2.0/tensor_file.bend as TensorFile
import Base

213# Extents up to the closing parenthesis: digits, commas and spaces.
214def extents(text: List<&2,U32>,+current: U32,digits: Bool,valid: Bool,shape: List<&2,U32>) -> Maybe<&2,List<&2,U32>>:
215  match text:
216    case Nil{}: None{}
217    case Con{+byte,rest}:
218      match byte:
219        case 41: closed_shape(valid,pushed(digits,current,shape))
220        case 44: extents(rest,0,False{},valid,pushed(digits,current,shape))
221        case 32: extents(rest,current,digits,valid,shape)
222        case _: extents(rest,(current * 10 + byte - 48 : U32),True{},valid && U32.is_le(48,byte) && U32.is_le(byte,57),shape)

Uses (13)

Used by (1)