The init_data variable is a global variable accessible to everyone that uses the scanner. Each time the scanner is asked for the next token (using scan), an (in principle undividable) token is delivered. Sometimes, however, a token comes with extra information. E.g. if a token appears to be the 'number token', the parser needs to know exactly which number is associated to that number token. This information is exported by the scanner through the init_scan variable.