Having problems getting RSRT to compile with a C++ compiler?

It won't without quite a bit of hacking--you're probably better off changing your code to C. (Sorry.)

Having problems understading how the input file gets read in?

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.

Finding a sphere tightly surrounding a point cloud can be difficult.

Graphics Gems I includes a method for finding such spheres (which requires a header file).

Clipping a polygon to a rectangular volume can be tricky.

Graphics Gems I includes a method for doing something similar (which requires a header file).

Testing a sphere against a rectangular volume can be slow.

Graphics Gems I includes a method for doing just that (which requires a header file).