* 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)
*
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; }
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; }
+toggle { return TOK_TOGGLE; }
workspace { BEGIN(WANT_WS_STRING); return TOK_WORKSPACE; }
focus { return TOK_FOCUS; }
move { return TOK_MOVE; }
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]; }