/*------------------------------------------------------------------------------ expansion_data.h - Declaration of an expansion data record This holds tokens generated during the expansion of the list of comma- separated items in a brace expression. For example, in the expression "{htm{,l},txt,q..bc}" the items are "html{,l}", "txt", and "q..bc". The field "part_starts_at" is the index into the expansion list of the first token generated by the current list item. If this item contains a nested brace expression, "part_starts_at" indicates where to start appending text generated by the expansion of that expression. Version 1.0 2014-12-16 Brian B. McGuinness ------------------------------------------------------------------------------*/ #ifndef expansion_data_h #define expansion_data_h #include "string_list.h" typedef struct expansion_data { int part_starts_at; // Index in the expansion list where the current list item starts string_list *expansions; // Tokens generated by expansions } expansion_data; void delete_expansion_data (expansion_data *record); expansion_data *new_expansion_data (int start); #endif // ! expansion_data_h