char *progname = NULL;
int mode = 1;
int precision = 6;
+char **completion_list = NULL;
/* help function */
char format[9] = "=> %..g\n";
format[5] = '0' + precision;
+ /* completion list*/
+ completion_list = generate_completion_list ();
+
/* read from input stream */
while (1) {
}
}
+ free_completion_list (completion_list);
+
return ret;
}
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "debug.h"
fprintf (stdout, "logical operators:");
fprintf (stdout, " & | !\n");
fprintf (stdout, "mathematic functions:");
- fprintf (stdout, " pow sqrt cos sin tan acos asin atan log exp\n");
+ fprintf (stdout, " pow sqrt log exp\n");
+ fprintf (stdout, "trigonometric functions:");
+ fprintf (stdout, " cos sin tan acos asin atan\n");
fprintf (stdout, "supported functions:");
fprintf (stdout, " abs ceil floor\n");
fprintf (stdout, "storage functions:");
return 0;
}
+char **generate_completion_list ()
+{
+ int i, l = 0;
+ char **list = (char **) calloc (NB_FUNCTIONS + NB_CONSTANTS + 1, sizeof (char *));
+ if (list == NULL) {
+ VERBOSE (ERROR, fprintf (stderr, "can't allocate memory\n"));
+ exit (1);
+ }
+
+ for (i = 0; i < NB_FUNCTIONS; i++) {
+ list[l] = strdup ((functions + i)->keyword);
+ if (list[l] == NULL) {
+ VERBOSE (ERROR, fprintf (stderr, "can't allocate memory\n"));
+ exit (1);
+ }
+ l++;
+ }
+
+ for (i = 0; i < NB_CONSTANTS; i++) {
+ list[l] = strdup ((constants + i)->keyword);
+ if (list[l] == NULL) {
+ VERBOSE (ERROR, fprintf (stderr, "can't allocate memory\n"));
+ exit (1);
+ }
+ l++;
+ }
+
+ return (list);
+}
+
+void free_completion_list (char **list)
+{
+ int i;
+
+ if (list) {
+ for (i = 0; i < NB_FUNCTIONS + NB_CONSTANTS; i++) {
+ if (list[i] != NULL) {
+ free (list[i]);
+ }
+ }
+ free (list);
+ }
+}
+
+
/* vim: set ts=4 sw=4 et: */
double evaluate_element (element_t *root, char mask);
+/* completion functions */
+
+char **generate_completion_list ();
+
+void free_completion_list (char **list);
+
#endif /* __PARSER_H__ */
/* vim: set ts=4 sw=4 et: */