The data structure representing a lexical scanner. You should set input_name after creating the scanner, since it is used by the default message handler when displaying warnings and errors. If you are scanning a file, the file name would be a good choice. The user_data and max_parse_errors fields are not used. If you need to associate extra data with the scanner you can place them here. If you want to use your own message handler you can set the msg_handler field. The type of the message handler function is declared by GScannerMsgFunc.