X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcmdparse.l;h=6e33c950fbbffde9cfb6d6ac374cba0556fa346c;hb=443753bea6ae30238a3c1af29ec9c60824dca7a4;hp=684a588c1f044b463c97252498c056ce20750971;hpb=769501420ddeee0f808b3fd01b0463f426e9ef43;p=i3%2Fi3 diff --git a/src/cmdparse.l b/src/cmdparse.l index 684a588c..6e33c950 100644 --- a/src/cmdparse.l +++ b/src/cmdparse.l @@ -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; } -[^\n]+ { BEGIN(INITIAL); cmdyylval.string = sstrdup(yytext); return STR; } [ \t]* { BEGIN(WANT_STRING); return WHITESPACE; } -\"[^\"]+\" { +\"[^\"]+\" { BEGIN(INITIAL); /* strip quotes */ char *copy = sstrdup(yytext+1); copy[strlen(copy)-1] = '\0'; cmdyylval.string = copy; return STR; - } + } +\"[^\"]+\" { + BEGIN(INITIAL); + /* strip quotes */ + char *copy = sstrdup(yytext+1); + copy[strlen(copy)-1] = '\0'; + cmdyylval.string = copy; + return STR; + } + +[^;\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]; }