* FML interpreter. Europagate, 1995
*
* $Log: fml.c,v $
- * Revision 1.5 1995/02/09 14:33:36 adam
+ * Revision 1.6 1995/02/09 16:06:06 adam
+ * FML can be called from the outside multiple times by the functions:
+ * fml_exec_call and fml_exec_call_str.
+ * An interactive parameter (-i) to fmltest starts a shell-like
+ * interface to FML by using the fml_exec_call_str function.
+ *
+ * Revision 1.5 1995/02/09 14:33:36 adam
* Split source fml.c and define relevant build-in functions in separate
* files. New operators mult, div, not, llen implemented.
*
return fn;
}
-static struct fml_node *fml_exec_group (struct fml_node *list, Fml fml);
-
void fml_lr_values (Fml fml, struct fml_node *l, int *left_val,
struct fml_node *r, int *right_val)
{
fml_node_delete (fml, fn);
}
-static struct fml_node *fml_exec_group (struct fml_node *list, Fml fml)
+struct fml_node *fml_exec_group (struct fml_node *list, Fml fml)
{
struct token token;
struct fml_sym_info *info;
}
break;
case 't':
-#if 0
- printf ("<token.tokenbuf=%s>", token.tokenbuf);
-#endif
if (token.separate && !first)
putchar (' ');
first = 0;
fml_node_stat (fml);
fml_exec_group (fml->list, fml);
if (fml->debug & 1)
- printf ("\n");
+ putchar ('\n');
}