js0n.cयह "[0 ... 255] =" सी में वाक्यविन्यास क्या है?
कोड वाक्य रचना की बात कर के रूप में नीचे है:
static void *gostruct[] =
{
[0 ... 255] = &&l_bad,
['\t'] = &&l_loop, [' '] = &&l_loop, ['\r'] = &&l_loop, ['\n'] = &&l_loop,
['"'] = &&l_qup,
[':'] = &&l_loop, [','] = &&l_loop,
['['] = &&l_up, [']'] = &&l_down, // tracking [] and {} individually would allow fuller validation but is really messy
['{'] = &&l_up, ['}'] = &&l_down,
['-'] = &&l_bare, [48 ... 57] = &&l_bare, // 0-9
[65 ... 90] = &&l_bare, // A-Z
[97 ... 122] = &&l_bare // a-z
};
........
.......
l_bad:
*vlen = cur - json; // where error'd
return 0;
........
........
किसी को भी व्याख्या कर सकते हैं कि यहाँ क्या किया जा रहा है? सिंटैक्स [0 ... 255]
और &&l_bad
क्या करता है?
एक साथ यह सब डाल कि कोड एक कूद तालिका शायद एक पार्सर के लिए, सूचकांक के लिए ASCII मूल्यों का उपयोग करता है कर रही है। –
विशेष रूप से एक JSON पार्सर, जहां तक मैं कह सकता हूं। – Kevin
इसलिए, चूंकि लेबल और चर के अलग-अलग नामस्थान होते हैं, इसलिए पार्सर '&& foo'' का अर्थ है "लेबल 'foo' का नाम' 'foo'' से" अर्थात् 'foo' के पते का पता "? (किसी पते का पता लेना, मुझे विश्वास है, अपरिभाषित व्यवहार, लेकिन यह _is_ वाक्य रचनात्मक रूप से मान्य है।) – dodgethesteamroller