+ipc-socket { WS_STRING; return TOKIPCSOCKET; }
+ipc_socket { WS_STRING; return TOKIPCSOCKET; }
+restart_state { WS_STRING; return TOKRESTARTSTATE; }
+default_orientation { return TOK_ORIENTATION; }
+horizontal { return TOK_HORIZ; }
+vertical { return TOK_VERT; }
+auto { return TOK_AUTO; }
+workspace_layout { return TOK_WORKSPACE_LAYOUT; }
+new_window { return TOKNEWWINDOW; }
+normal { return TOK_NORMAL; }
+none { return TOK_NONE; }
+1pixel { return TOK_1PIXEL; }
+focus_follows_mouse { return TOKFOCUSFOLLOWSMOUSE; }
+force_focus_wrapping { return TOK_FORCE_FOCUS_WRAPPING; }
+workspace_bar { return TOKWORKSPACEBAR; }
+popup_during_fullscreen { return TOK_POPUP_DURING_FULLSCREEN; }
+ignore { return TOK_IGNORE; }
+leave_fullscreen { return TOK_LEAVE_FULLSCREEN; }
+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; }
+stack-limit { return TOKSTACKLIMIT; }
+cols { /* yylval.number = STACK_LIMIT_COLS; */return TOKSTACKLIMIT; }
+rows { /* yylval.number = STACK_LIMIT_ROWS; */return TOKSTACKLIMIT; }
+exec { WS_STRING; return TOKEXEC; }
+exec_always { WS_STRING; return TOKEXEC_ALWAYS; }
+client.background { BEGIN(COLOR_COND); yylval.single_color = &config.client.background; return TOKSINGLECOLOR; }