typedef struct {
  NB_LINE_HEADER_t header;
  unsigned char tokens[];
} nb_line_t;

The CoreBASIC interpreter only uses pointers to a nb_line_t so it doesn't matter about the size of the tokens member, but defining it to have 32 token bytes means that it's easy to take a look at the line and its tokens in the debugger.

The line header.
Tokens comprising the line, of dynamic length, but set to 32 for the debugger.