int _read_xs (CLASS, filename, strip_autos) SV *CLASS char *filename int strip_autos PROTOTYPE: $$$ CODE: { static int/*bool*/ in_parser = 0; if (!SvROK(CLASS)) { in_parser = 0; croak (" Parser::read() not called as class member") ; } if (!filename) { in_parser = 0; croak (" Parser::read() filename=> parameter not passed") ; } if (in_parser) { croak (" Parser::read() called recursively") ; } in_parser = 1; scparse_init (CLASS, filename, strip_autos) ; if (!sclex_open (filename)) { in_parser = 0; croak (" Parser::read() file not found") ; } scgrammerparse(); fclose (sclexin); /* Emit final tokens */ scparser_EmitPrefix (); if (scParserState.errors) { in_parser = 0; croak (" Parser::read() detected parse errors"); } in_parser = 0; RETVAL = 1; } OUTPUT: RETVAL