-default { /* yylval.number = MODE_DEFAULT; */return TOKCONTAINERMODE; }
-stacking { /* yylval.number = MODE_STACK; */return TOKCONTAINERMODE; }
-tabbed { /* yylval.number = MODE_TABBED; */return TOKCONTAINERMODE; }
+for_window {
+ /* Example: for_window [class="urxvt"] border none
+ *
+ * First, we wait for the ']' that finishes a match (FOR_WINDOW_COND)
+ * Then, we require a whitespace (EAT_WHITESPACE)
+ * And the rest of the line is parsed as a string
+ */
+ yy_push_state(WANT_STRING);
+ yy_push_state(EAT_WHITESPACE);
+ yy_push_state(FOR_WINDOW_COND);
+ return TOK_FOR_WINDOW;
+ }
+default { /* yylval.number = MODE_DEFAULT; */return TOK_DEFAULT; }
+stacking { /* yylval.number = MODE_STACK; */return TOK_STACKING; }
+stacked { return TOK_STACKING; }
+tabbed { /* yylval.number = MODE_TABBED; */return TOK_TABBED; }