It won't without quite a bit of hacking--you're probably better off changing your code to C. (Sorry.)
It uses lex and yacc (look at the files filetok.l and parse.y) Lex takes an input stream and tokenizes it; for example, IN_FLOAT and OBJ_SPHERE are two tokens that might be generated by this lex file. A yacc (yet another compiler compiler) file basically describes the grammar of the input language, and lists what code should be executed whenever specified inputs are recognized; for example,
| TOK_BACKGROUND color
{
background = $2;
} specifies that if the parser finds something that can be
correctly recognized as the token TOK_BACKGROUND followed by an value of
type color, execute the code "background = <that color value>" ($2
because color is the second listed token in the match line), and
| light_color LGHT_POINT vector3
{
$$ = new_light(&$1,new_point(&$3),point_methods());
} says that upon recognizing the token LIGHT_POINT with an
instance of type light_color before it, and an instance of type vector3
after it, it should replace that set of tokens with an instance of type
<light>, the value of which is the result of calling the function
new_light with arguments the address of the recognized instance of
type light_color, the results of calling new_point with the argument
the address of the recognized instance of type vector3, and the result of
calling function point_methods.
There are a number of good references on lex and yacc--O'Reilly has a good book, and I think there are a couple chapters in Aho, Sethi, and Ullman's Dragon book.
Graphics Gems I includes a method for finding such spheres (which requires a header file).
Graphics Gems I includes a method for doing something similar (which requires a header file).
Graphics Gems I includes a method for doing just that (which requires a header file).