#include <language/lexer/lexer.h>
#include "psppire-data-store.h"
#include <output/manager.h>
-
+#include "output-viewer.h"
#include <gettext.h>
w = glade_xml_get_widget (xml, name);
if ( !w )
- g_warning ("Widget \"%s\" could not be found\n", name);
+ g_critical ("Widget \"%s\" could not be found\n", name);
return w;
}
extern struct source_stream *the_source_stream;
extern PsppireDataStore *the_data_store;
-void
+gboolean
execute_syntax (struct getl_interface *sss)
{
struct lexer *lexer;
+ gboolean retval = TRUE;
struct casereader *reader = psppire_data_store_get_reader (the_data_store);
proc_set_active_file_data (the_dataset, reader);
- g_return_if_fail (proc_has_active_file (the_dataset));
+ g_return_val_if_fail (proc_has_active_file (the_dataset), FALSE);
lexer = lex_create (the_source_stream);
- getl_append_source (the_source_stream, sss);
+ getl_append_source (the_source_stream, sss, GETL_BATCH, ERRMODE_CONTINUE);
for (;;)
{
- int result = cmd_parse (lexer, the_dataset);
+ enum cmd_result result = cmd_parse (lexer, the_dataset);
+
+ if ( cmd_result_is_failure (result))
+ {
+ retval = FALSE;
+ if ( source_stream_current_error_mode (the_source_stream)
+ == ERRMODE_STOP )
+ break;
+ }
- if (result == CMD_EOF || result == CMD_FINISH)
+ if ( result == CMD_EOF || result == CMD_FINISH)
break;
}
psppire_data_store_set_case_file (the_data_store, pcf);
}
+ proc_set_active_file_data (the_dataset, NULL);
+
som_flush ();
+
+ reload_the_viewer ();
+
+ return retval;
}