]> git.sur5r.net Git - i3/i3/blobdiff - src/cmdparse.l
Bugfix: Attach new cons at the correct place when a floating con is focused (+test...
[i3/i3] / src / cmdparse.l
index 684a588c1f044b463c97252498c056ce20750971..6e33c950fbbffde9cfb6d6ac374cba0556fa346c 100644 (file)
@@ -2,7 +2,7 @@
  * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
- * © 2009-2010 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
  *
  * cmdparse.l: the lexer for commands you send to i3 (or bind on keys)
  *
@@ -65,16 +65,25 @@ EOL (\r?\n)
     cmdyycolumn = 1;
 }
 
-<WANT_STRING>[^\n]+             { BEGIN(INITIAL); cmdyylval.string = sstrdup(yytext); return STR; }
 <WANT_WS_STRING>[ \t]*          { BEGIN(WANT_STRING); return WHITESPACE; }
-<WANT_QSTRING>\"[^\"]+\"        {
+<WANT_STRING>\"[^\"]+\"         {
                                   BEGIN(INITIAL);
                                   /* strip quotes */
                                   char *copy = sstrdup(yytext+1);
                                   copy[strlen(copy)-1] = '\0';
                                   cmdyylval.string = copy;
                                   return STR;
-                                }
+                                 }
+<WANT_QSTRING>\"[^\"]+\"         {
+                                  BEGIN(INITIAL);
+                                  /* strip quotes */
+                                  char *copy = sstrdup(yytext+1);
+                                  copy[strlen(copy)-1] = '\0';
+                                  cmdyylval.string = copy;
+                                  return STR;
+                                 }
+
+<WANT_STRING>[^;\n]+             { BEGIN(INITIAL); cmdyylval.string = sstrdup(yytext); return STR; }
 
 [ \t]*                          { return WHITESPACE; }
 attach                          { return TOK_ATTACH; }
@@ -83,23 +92,53 @@ exit                            { return TOK_EXIT; }
 reload                          { return TOK_RELOAD; }
 restart                         { return TOK_RESTART; }
 kill                            { return TOK_KILL; }
+window                          { return TOK_WINDOW; }
+client                          { return TOK_CLIENT; }
 fullscreen                      { return TOK_FULLSCREEN; }
 global                          { return TOK_GLOBAL; }
 layout                          { return TOK_LAYOUT; }
 default                         { return TOK_DEFAULT; }
 stacked                         { return TOK_STACKED; }
+stacking                        { return TOK_STACKED; }
 tabbed                          { return TOK_TABBED; }
 border                          { return TOK_BORDER; }
+normal                          { return TOK_NORMAL; }
 none                            { return TOK_NONE; }
 1pixel                          { return TOK_1PIXEL; }
 mode                            { return TOK_MODE; }
 tiling                          { return TOK_TILING; }
 floating                        { return TOK_FLOATING; }
-workspace                       { return TOK_WORKSPACE; }
+toggle                          { return TOK_TOGGLE; }
+workspace                       { BEGIN(WANT_WS_STRING); return TOK_WORKSPACE; }
 focus                           { return TOK_FOCUS; }
 move                            { return TOK_MOVE; }
+open                            { return TOK_OPEN; }
+next                            { return TOK_NEXT; }
+prev                            { return TOK_PREV; }
+split                           { return TOK_SPLIT; }
+horizontal                      { return TOK_HORIZONTAL; }
+vertical                        { return TOK_VERTICAL; }
+level                           { return TOK_LEVEL; }
+up                              { return TOK_UP; }
+down                            { return TOK_DOWN; }
+left                            { return TOK_LEFT; }
+right                           { return TOK_RIGHT; }
+resize                          { return TOK_RESIZE; }
+shrink                          { return TOK_SHRINK; }
+grow                            { return TOK_GROW; }
+px                              { return TOK_PX; }
+or                              { return TOK_OR; }
+ppt                             { return TOK_PPT; }
+nop                             { BEGIN(WANT_WS_STRING); return TOK_NOP; }
+restore                         { BEGIN(WANT_WS_STRING); return TOK_RESTORE; }
+mark                            { BEGIN(WANT_WS_STRING); return TOK_MARK; }
 
 class                           { BEGIN(WANT_QSTRING); return TOK_CLASS; }
+id                              { BEGIN(WANT_QSTRING); return TOK_ID; }
+con_id                          { BEGIN(WANT_QSTRING); return TOK_CON_ID; }
+con_mark                        { BEGIN(WANT_QSTRING); return TOK_MARK; }
+
+[0-9]+                          { cmdyylval.number = atoi(yytext); return NUMBER; }
 
 .                               { return (int)yytext[0]; }