1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- parser:
- - call parse_value
- - next_token
- ? <EOF> nop.
- parse_value:
- - next_token
- ? <OBJ_BEGIN> call parse_object.
- ? <ARR_BEGIN> call parse_array.
- ? <STRING> push. return.
- ? <BOOLEAN> push. return.
- ? <NULL> push. return.
- ? <NUMBER> push. return.
- parse_object:
- - push table
- - next_token
- ? <STRING> push.
- - next_token
- ? <COLON> nop.
- - call parse_value
- - set table
- - next_token
- ? <OBJ_END> return.
- ? <COMMA> loop parse_object.
- parse_array:
- - push table
- - call parse_value
- - table append
- - next_token
- ? <COMMA> loop parse_array.
- ? ] return.
- next_token:
- - check next character
- ? { return <OBJ_BEGIN>
- ? } return <OBJ_END>
- ? [ return <ARR_BEGIN>
- ? ] return <ARR_END>
- ? , return <COMMA>
- ? : return <COLON>
- ? [-0-9] gobble number. return <NUMBER>
- ? " gobble string. return <STRING>
- ? [ \t\n] eat whitespace.
- ? n Check "null". return <NULL> or <UNKNOWN>
- ? t Check "true". return <BOOLEAN> or <UNKNOWN>
- ? f Check "false". return <BOOLEAN> or <UNKNOWN>
- ? . return <UNKNOWN>
- ? \0 return <END>
|