You can't use the system library function to do that. It doesn't share memory with the parent process as the system library function does:
1. forks a new process
2. execs a new executable (usually bash)
3. bash parses the parameter you gave to the system function
4. bash forks a new process...
5. the new bash execs the program identified in the parameter and passes any arguments
There is NO WAY that #5 entry can be part of the parent process and no way for it to add symbols to an internal data structure.
Now, if you are trying to create an "include file" handling, you must do that within the context of the first bison parser... and do the proper file handling/scanning switching for both scanner AND parser. Since it is now only one process, the symbol tables from the first scanner/parser can be shared with the second scanner/parser.
If you are attempting a "two level grammar" that is a different topic... but it is possible to do within a single grammar, though you will need a current Bison parser generator.
reference (this points to a lot of information):