- direction = ASCENDING;
- print = false;
- while (lex_match (lexer, '/'))
- if (lex_match_id (lexer, "DESCENDING"))
- direction = DESCENDING;
- else if (lex_match_id (lexer, "PRINT"))
- print = true;
- if (lex_token (lexer) != '.')
+ while (lex_match (lexer, T_SLASH))
+ {
+ if (lex_match_id (lexer, "DESCENDING"))
+ direction = DESCENDING;
+ else if (lex_match_id (lexer, "PRINT"))
+ {
+ /* Not yet implemented. */
+ }
+ else if (lex_match_id (lexer, "GROUP"))
+ {
+ arc->global_items = xmalloc (sizeof (*arc->global_items));
+ arc->global_items->refcnt = 1;
+ hmap_init (&arc->global_items->ht);
+ }
+ else if (lex_match_id (lexer, "BLANK"))
+ {
+ lex_match (lexer, T_EQUALS);
+ if (lex_match_id (lexer, "VALID"))
+ {
+ arc->blank_valid = true;
+ }
+ else if (lex_match_id (lexer, "MISSING"))
+ {
+ arc->blank_valid = false;
+ }
+ else
+ goto error;
+ }
+ else
+ goto error;
+ }
+
+ if (lex_token (lexer) != T_ENDCMD)