Advertisement
GroggyOtter

from if to ternary part 2

Jun 30th, 2023
1,753
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     case xval:
  2.        v:
  3.         (char == '{')
  4.             ? (o := Map(), (path[path.Length] is Array)
  5.                 ? path[path.Length].Push(o)
  6.                 : path[path.Length][key] := o, path.Push(o), expect := xobj, ji++)
  7.         : (char == '[')
  8.             ? (a := [], (path[path.Length] is Array)
  9.                 ? path[path.Length].Push(a)
  10.                 : path[path.Length][key] := a, path.Push(a)
  11.             , expect := xarr
  12.             , ji++)
  13.         : (char == str_flag)
  14.             ? (end := InStr(jtxt, str_flag, 1, ji+1))
  15.                 is_key
  16.                     ? (is_key := 0, key := SubStr(jtxt, ji+1, end-ji-1), expect := xcln, ji := end+1)
  17.                     : (rev(SubStr(jtxt, ji+1, end-ji-1)), expect := xend, ji := end+1)
  18.             : err(24, ji, '"', SubStr(jtxt, ji))
  19.        : InStr('-0123456789', char, 1)
  20.            ? RegExMatch(jtxt, '(-?(?:0|[123456789]\d*)(?:\.\d+)?(?:[eE][-+]?\d+)?)', &match, ji)
  21.                ? (rev(Number(match[])), expect := xend, ji := match.Pos + match.Len )
  22.                : err(25, ji, , SubStr(jtxt, ji))
  23.        : (char == 't')
  24.            ? (SubStr(jtxt, ji, 4) == 'true')  
  25.                ? (rev(true) , ji+=4, expect := xend)
  26.                : err(26, ji + tfn_idx('true', SubStr(jtxt, ji, 4)), 'true' , SubStr(jtxt, ji, 4))
  27.        : (char == 'f')
  28.            ? (SubStr(jtxt, ji, 5) == 'false')
  29.                ? (rev(false), ji+=5, expect := xend)
  30.                : err(27, ji + tfn_idx('false', SubStr(jtxt, ji, 5)), 'false', SubStr(jtxt, ji, 5))
  31.        : (char == 'n')
  32.            ? (SubStr(jtxt, ji, 4) == 'null')  
  33.                ? (rev(null) , ji+=4, expect := xend)
  34.                : err(28, ji + tfn_idx('null', SubStr(jtxt, ji, 4)), 'null' , SubStr(jtxt, ji, 4))
  35.        : err(29, ji, '`n`tArray: [ `n`tObject: { `n`tString: " `n`tNumber: -0123456789 `n`ttrue/false/null: tfn ', char)
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement