Encapsulated lexer and updated calling functions accordingly.
[pspp] / src / language / expressions / private.h
index 0d81c22cdbad8070ee0014f06ebf131a3522579d..baf69c110eb4089d6fa2b54e7ee8b1abda518844 100644 (file)
@@ -78,7 +78,7 @@ struct operation
     int array_granularity;
   };
 
-extern struct operation operations[];
+extern const struct operation operations[];
 
 /* Tree structured expressions. */ 
 
@@ -92,7 +92,7 @@ struct number_node
 struct string_node
   {
     operation_type type;   /* OP_string. */
-    struct fixed_string s;
+    struct substring s;
   };
 
 struct variable_node
@@ -145,7 +145,7 @@ union operation_data
   {
     operation_type operation;
     double number;
-    struct fixed_string string;
+    struct substring string;
     struct variable *variable;
     const struct vector *vector;
     struct fmt_spec *format;
@@ -156,7 +156,7 @@ union operation_data
 struct expression
   {
     struct pool *expr_pool;     /* Pool for expression static data. */
-    struct dictionary *dict;    /* Dictionary for variables, vectors. */
+    struct dataset *ds ;        /* The dataset */
     atom_type type;             /* Type of expression result. */
 
     union operation_data *ops;  /* Expression data. */
@@ -164,11 +164,11 @@ struct expression
     size_t op_cnt, op_cap;      /* Number of ops, amount of allocated space. */
 
     double *number_stack;       /* Evaluation stack: numerics, Booleans. */
-    struct fixed_string *string_stack; /* Evaluation stack: strings. */
+    struct substring *string_stack; /* Evaluation stack: strings. */
     struct pool *eval_pool;     /* Pool for evaluation temporaries. */
   };
 
-struct expression *expr_parse_any (struct dictionary *, bool optimize);
+struct expression *expr_parse_any (struct lexer *lexer, struct dataset *,  bool optimize);
 void expr_debug_print_postfix (const struct expression *);
 
 union any_node *expr_optimize (union any_node *, struct expression *);
@@ -190,7 +190,7 @@ union any_node *expr_allocate_pos_int (struct expression *e, int);
 union any_node *expr_allocate_string_buffer (struct expression *e,
                                              const char *string, size_t length);
 union any_node *expr_allocate_string (struct expression *e,
-                                      struct fixed_string);
+                                      struct substring);
 union any_node *expr_allocate_variable (struct expression *e,
                                         struct variable *);
 union any_node *expr_allocate_format (struct expression *e,