Advertisement
GroggyOtter

from if to ternary part 3

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