Skip to content
JSkipWhitespace

JSkipWhitespace

JSkipWhitespace

Description

Skip whitespace from current reading position.

Parameters

Name Direction Description
si in Reading position to start looking for whitespace

Success

Returns StrIter advanced past all whitespace

Failure

Returns original StrIter if already at end

Usage example (Cross-references)

Usage examples (Cross-references)
    
        StrIter saved_si = si;
        si               = JSkipWhitespace(si);
    
        // starting of an object
        }
        StrIterNext(&si);
        si = JSkipWhitespace(si);
    
        StrIter read_si;
                }
                StrIterNext(&si); // skip comma
                si = JSkipWhitespace(si);
            }
            }
            si = read_si;
            si = JSkipWhitespace(si);
    
            if (StrIterPeek(&si) != ':') {
            }
            StrIterNext(&si);
            si = JSkipWhitespace(si);
    
            // skip values within object
            StrDeinit(&key);
            si = read_si;
            si = JSkipWhitespace(si);
    
            // expect a comma after a successful key-value pair read
    
        StrIter saved_si = si;
        si               = JSkipWhitespace(si);
    
        // starting of an object
        }
        StrIterNext(&si);
        si = JSkipWhitespace(si);
    
        StrIter read_si;
                }
                StrIterNext(&si); // skip comma
                si = JSkipWhitespace(si);
            }
    
            si = read_si;
            si = JSkipWhitespace(si);
    
            // expect a comma after a successful value read in array
    }
    
    StrIter JSkipWhitespace(StrIter si) {
        if (!StrIterRemainingLength(&si)) {
            return si;
    
        StrIter saved_si = si;
        si               = JSkipWhitespace(si);
    
        // string start
    
        StrIter saved_si = si;
        si               = JSkipWhitespace(si);
        Str ns           = StrInit();
    
        StrIter saved_si = si;
        si               = JSkipWhitespace(si);
    
        if (StrIterRemainingLength(&si) >= 4) {
    
        StrIter saved_si = si;
        si               = JSkipWhitespace(si);
    
        *is_null = false;
    
        StrIter saved_si = si;
        si               = JSkipWhitespace(si);
    
        // check for true/false
                                                                                                                           \
            StrIter saved_si = si;                                                                                         \
            si               = JSkipWhitespace(si);                                                                        \
                                                                                                                           \
            /* starting of an object */                                                                                    \
            }                                                                                                              \
            StrIterNext(&si);                                                                                              \
            si = JSkipWhitespace(si);                                                                                      \
                                                                                                                           \
            bool expect_comma = false;                                                                                     \
                    }                                                                                                      \
                    StrIterNext(&si); /* skip comma */                                                                     \
                    si = JSkipWhitespace(si);                                                                              \
                }                                                                                                          \
                                                                                                                           \
                    si = read_si;                                                                                          \
                }                                                                                                          \
                si = JSkipWhitespace(si);                                                                                  \
                                                                                                                           \
                /* expect a comma after a successful value read in array */                                                \
                                                                                                                           \
            StrIter saved_si = si;                                                                                         \
            si               = JSkipWhitespace(si);                                                                        \
                                                                                                                           \
            /* starting of an object */                                                                                    \
            }                                                                                                              \
            StrIterNext(&si);                                                                                              \
            si = JSkipWhitespace(si);                                                                                      \
                                                                                                                           \
            StrIter read_si;                                                                                               \
                    }                                                                                                      \
                    StrIterNext(&si); /* skip comma */                                                                     \
                    si = JSkipWhitespace(si);                                                                              \
                }                                                                                                          \
                                                                                                                           \
                                                                                                                           \
                si = read_si;                                                                                              \
                si = JSkipWhitespace(si);                                                                                  \
                                                                                                                           \
                                                                                                                           \
                }                                                                                                          \
                StrIterNext(&si);                                                                                          \
                si = JSkipWhitespace(si);                                                                                  \
                                                                                                                           \
                                                                                                                           \
                }                                                                                                          \
                StrDeinit(&key);                                                                                           \
                si = JSkipWhitespace(si);                                                                                  \
                                                                                                                           \
                                                                                                                           \
Last updated on