#ifndef VVS_STDLIB_STRING
#define VVS_STDLIB_STRING
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ Counts number of words in a null-terminated string.
@ Returned number does not include the null-terminator.
@ pointer to first character <-- TOS
@ number of words in string <-- TOS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTSSSSSN | Mark: 100000 (strlen)
@ Create a length counter.
@ Increment the counter (and pointer) on each pass through the loop.
NSSVSSTSSSSSSSSSSSSSN | Mark: 00100000 00000000
NTSSSTSSSSSSSSSSSSTN | BRZ > 00100000 00000001
NSNSSTSSSSSSSSSSSSSN | JMP > 00100000 00000000
NSSVSSTSSSSSSSSSSSSTN | Mark: 00100000 00000001
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ Tests 'character' on stack. Is it an ASCII number?
@ Returns 1 or 0 representing True/False.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTSSSSTN | Mark: 100001 (isdigit)
SSSSSTTSSSSN | PUSH 48 (ASCII '0')
NTTSSTSSSSTSSSSSSSSN | BMI > 00100001 00000000 (not digit)
NTTSSTSSSSTSSSSSSSTN | BMI > 00100001 00000001 (is digit)
NSSVSSTSSSSTSSSSSSSSN | Mark: 00100001 00000000 (not digit)
NSSVSSTSSSSTSSSSSSSTN | Mark: 00100001 00000001 (is digit)