int ne_parse(const char *formula) { int err; struct symbol_table *sym; ne.buf = yy_scan_string(formula, ne.scanner); yyset_lineno(1, ne.scanner); yyset_column(1, ne.scanner); __ne_clear_error(&ne); err = yyparse(&ne); if (!err) { __ne_put_result(&ne, eval(&ne, ne.root)); sym = get_sym(&ne, "y"); if (sym && sym->dirty) { __ne_put_result(&ne, __ne_get_y(&ne)); clean_output_sym(&ne); } } if (ne.error != 0) err = ne.error; else if (ne.warrning != 0) err = ne.warrning; free_ast(ne.root); ne.root = NULL; ne.stop = 0; yy_delete_buffer(ne.buf, ne.scanner); return err; }
JSNode* js_node_new_from_file (const gchar *name) { FILE *f = fopen (name, "r"); JSNodePrivate *priv; line_missed_semicolon = NULL; global = NULL; yyset_lineno (1); YY_BUFFER_STATE b = yy_create_buffer (f, 10000); yy_switch_to_buffer (b); yyparse (); fclose (f); yy_delete_buffer (b); if (!global) return g_object_new (JS_TYPE_NODE, NULL); priv = JS_NODE_GET_PRIVATE (global); priv->missed = line_missed_semicolon; return global; }
void EHI::parse_string(const char *cmd) { yy_switch_to_buffer(yy_scan_string(cmd, scanner), scanner); yyset_lineno(1, scanner); do_parse(); }