+ {
+ return parse_get_psql (lexer, ds);
+ }
+ else if (lex_match_id (lexer, "GNM") ||
+ lex_match_id (lexer, "ODS"))
+ {
+ struct casereader *reader = NULL;
+ struct dictionary *dict = NULL;
+ struct spreadsheet_read_info *sri = parse_spreadsheet (lexer);
+ if (NULL == sri)
+ goto error;
+
+ if ( 0 == strncasecmp (tok, "GNM", 3))
+ reader = gnumeric_open_reader (sri, &dict);
+ else if (0 == strncasecmp (tok, "ODS", 3))
+ reader = ods_open_reader (sri, &dict);
+
+ if (reader)
+ {
+ dataset_set_dict (ds, dict);
+ dataset_set_source (ds, reader);
+ destroy_spreadsheet_read_info (sri);
+ free (tok);
+ return CMD_SUCCESS;
+ }
+ destroy_spreadsheet_read_info (sri);
+ }
+ else
+ msg (SE, _("Unsupported TYPE %s."), tok);