XLFJSONE ;SLC/KCM/TJB - Encode JSON ;26 Oct 2016
Source file <XLFJSONE.m>
action | A | extended action | Ea | event driver | Ed | subscriber | Su | protocol | O | limited protocol | LP | run routine | RR | broker | B | edit | E | server | Se | P | screenman | SM | inquire | I |
Name | Comments | DBIA/ICR reference |
---|---|---|
ENCODE(XUROOT,XUJSON,XUERR) | ; XUROOT (M structure) --> XUJSON (array of strings)
|
|
DIRECT | ; TAG for use by ENCODE^XLFJSON
|
|
SEROBJ(XUROOT) | ; Serialize into a JSON object
|
|
SERARY(XUROOT) | ; Serialize into a JSON array
|
|
SERNAME(XUSUB) | ; Serialize the object name into JSON string
|
|
SERVAL(XUROOT,XUSUB) | ; Serialize X into appropriate JSON representation
|
|
CONCAT | ; come here to concatenate to JSON string
|
|
ISVALUE(XUROOT,XUSUB) | ; Return true if this is a value node
|
|
NUMERIC(X) | ; Return true if the numeric
|
|
ESC(X) | ; Escape string for JSON
|
|
JNUM(N) | ; Return JSON representation of a number
|
|
UCODE(C) | ; Return \u00nn representation of decimal character value
|
|
ERRX(ID,VAL) | ; Set the appropriate error message
|
Name | Line Occurrences |
---|---|
$$ESC | SERVAL+14, SERVAL+18 |
$$ISVALUE | SEROBJ+9, SERARY+6 |
$$JNUM | SERVAL+11 |
$$UCODE | ESC+8, ESC+9 |
CONCAT | SERVAL+4, SERVAL+5, SERVAL+9, SERVAL+11, SERVAL+12, SERVAL+15, SERVAL+19, SERVAL+20 |
ERRX | SEROBJ+14, SERARY+10 |
SERARY | SEROBJ+12, SERARY+8 |
SERNAME | SEROBJ+7 |
SEROBJ | DIRECT+15, SEROBJ+13, SERARY+9 |
SERVAL | SEROBJ+9, SERARY+6 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
C | UCODE~, UCODE+1 |
FROM | ESC+1~, ESC+4*, ESC+5, ESC+6*, ESC+8, ESC+9 |
H | UCODE+1~*, UCODE+2 |
I | ESC+1~, ESC+5*, ESC+6*, ESC+10 |
ID | ERRX~, ERRX+1 |
N | JNUM~, JNUM+1, JNUM+2, JNUM+3, JNUM+4, JNUM+5 |
PAIR | ESC+1~, ESC+3*, ESC+4 |
TO | ESC+1~, ESC+4*, ESC+5 |
VAL | ERRX~, ERRX+1 |
X | NUMERIC~, NUMERIC+1, NUMERIC+2, NUMERIC+3, NUMERIC+4, NUMERIC+5, NUMERIC+6, NUMERIC+7, NUMERIC+8, NUMERIC+9* , NUMERIC+10, NUMERIC+11, ESC~, ESC+2, ESC+5*, ESC+6*, ESC+10 |
XUDONE | SERVAL+1~, SERVAL+7*, SERVAL+10, SERVAL+11*, SERVAL+12* |
XUERR | ENCODE~, DIRECT+9* |
XUERRORS | DIRECT+12~, DIRECT+13* |
XUFIRST | SEROBJ+1~, SEROBJ+3*, SEROBJ+5*, SERARY+1~, SERARY+3*, SERARY+5* |
XUI | SERARY+1~, SERARY+4*, SERARY+6, SERARY+7, SERARY+8, SERARY+9, SERARY+10, SERVAL+1~, SERVAL+5*, SERVAL+17* , SERVAL+18 |
XUJSON | ENCODE~, DIRECT+11, DIRECT+14, SEROBJ+2, SEROBJ+5, SEROBJ+15, SERARY+2, SERARY+5, SERARY+11, SERNAME+2 , SERNAME+3, CONCAT+1, CONCAT+2 |
XULINE | DIRECT+12~, DIRECT+13*, DIRECT+14, SEROBJ+2, SEROBJ+5, SEROBJ+15, SERARY+2, SERARY+5, SERARY+11, SERNAME+2* , SERNAME+3, CONCAT+1*, CONCAT+2 |
XUMAX | DIRECT+12~, DIRECT+13*, SERNAME+2, CONCAT+1 |
XUNXT | SEROBJ+1~, SEROBJ+11*, SEROBJ+12, SERARY+1~, SERARY+7*, SERARY+8 |
XUROOT | ENCODE~, DIRECT+10, DIRECT+15, SEROBJ~, SEROBJ+4, SEROBJ+9, SEROBJ+11, SEROBJ+12, SEROBJ+13, SERARY~ , SERARY+4, SERARY+6, SERARY+7, SERARY+8, SERARY+9, SERVAL~, SERVAL+3, SERVAL+4, SERVAL+5, SERVAL+7 , SERVAL+9, SERVAL+10, SERVAL+16, SERVAL+17, SERVAL+18, ISVALUE~, ISVALUE+1, ISVALUE+2 |
XUSUB | SEROBJ+1~, SEROBJ+4*, SEROBJ+7, SEROBJ+9, SEROBJ+11, SEROBJ+12, SEROBJ+13, SEROBJ+14, SERNAME~, SERNAME+1* , SERNAME+2, SERNAME+3, SERVAL~, SERVAL+3, SERVAL+4, SERVAL+5, SERVAL+7, SERVAL+9, SERVAL+10, SERVAL+16 , SERVAL+17, SERVAL+18, ISVALUE~, ISVALUE+1, ISVALUE+2 |
XUX | SERVAL+1~, SERVAL+4*, SERVAL+5*, SERVAL+7*, SERVAL+9*, SERVAL+10, SERVAL+11*, SERVAL+12, SERVAL+14*, SERVAL+18* , SERVAL+20*, CONCAT+1, CONCAT+2, ISVALUE+2~*, ISVALUE+3, ISVALUE+4 |
Y | ESC+1~, ESC+2*, ESC+5*, ESC+6*, ESC+8*, ESC+9*, ESC+10*, ESC+11 |