gri3-wm/src
Michael Stapelberg a532f5ac39 Implement a new parser for commands. (+test)
On the rationale of using a custom parser instead of a lex/yacc one, see this
quote from src/commands_parser.c:
     We use a hand-written parser instead of lex/yacc because our commands are
     easy for humans, not for computers. Thus, it’s quite hard to specify a
     context-free grammar for the commands. A PEG grammar would be easier, but
     there’s downsides to every PEG parser generator I have come accross so far.

     This parser is basically a state machine which looks for literals or strings
     and can push either on a stack. After identifying a literal or string, it
     will either transition to the current state, to a different state, or call a
     function (like cmd_move()).

     Special care has been taken that error messages are useful and the code is
     well testable (when compiled with -DTEST_PARSER it will output to stdout
     instead of actually calling any function).

During the migration phase (I plan to completely switch to this parser before
4.2 will be released), the new parser will parse every command you send to
i3 and save the resulting call stack. Then, the old parser will parse your
input and actually execute the commands. Afterwards, both call stacks will be
compared and any differences will be logged.

The new parser works with 100% of the test suite and produces identical call
stacks.
2012-01-14 21:29:57 +00:00
..
assignments.c Fix comment in run_assignments (Thanks xeen) 2011-10-23 21:45:12 +01:00
cfgparse.l Allow different modifier keys for showing hidden i3bar. 2012-01-08 12:47:41 +00:00
cfgparse.y Allow different modifier keys for showing hidden i3bar. 2012-01-08 12:47:41 +00:00
click.c Bugfix: Make resizing work when pressing floating_modifier + right mouse button on window decorations 2011-12-17 13:55:16 +00:00
cmdparse.l Implement a new parser for commands. (+test) 2012-01-14 21:29:57 +00:00
cmdparse.y Implement a new parser for commands. (+test) 2012-01-14 21:29:57 +00:00
commands.c Implement a new parser for commands. (+test) 2012-01-14 21:29:57 +00:00
commands_parser.c Implement a new parser for commands. (+test) 2012-01-14 21:29:57 +00:00
con.c Merge branch 'master' into next 2012-01-07 18:50:46 +00:00
config.c Log the configfile name in verbose log, not only debug log (Thanks Han) 2011-12-29 00:04:48 +01:00
debug.c normalize modelines/headers across src/*.c 2011-10-22 23:40:02 +01:00
ewmh.c Don’t set the _NET_WM_WORKAREA hint at all (Thanks cg) 2011-11-30 20:33:07 +00:00
floating.c Bugfix: Fix assignments of floating windows to (yet) unused workspaces (Thanks zeus) 2012-01-08 12:28:49 +00:00
handlers.c Change prototype of handlers to static void, remove a bit of old code 2011-12-30 11:30:56 +01:00
ipc.c Allow different modifier keys for showing hidden i3bar. 2012-01-08 12:47:41 +00:00
load_layout.c properly serialize floating/scratchpad state when restarting 2012-01-05 21:41:20 +00:00
log.c shmlog: store meta information in the buffer itself, store path as X11 atom 2012-01-06 23:40:07 +00:00
main.c shmlog: store meta information in the buffer itself, store path as X11 atom 2012-01-06 23:40:07 +00:00
manage.c introduce sasprintf() in libi3, use it everywhere 2011-10-23 13:16:56 +01:00
match.c remove/shorten a lot of debugging messages 2011-10-23 00:15:13 +01:00
move.c normalize modelines/headers across src/*.c 2011-10-22 23:40:02 +01:00
output.c normalize modelines/headers across src/*.c 2011-10-22 23:40:02 +01:00
randr.c Ignore next_on_output/prev_on_output when looking for the first workspace 2012-01-08 16:31:07 +00:00
regex.c normalize modelines/headers across src/*.c 2011-10-22 23:40:02 +01:00
render.c Implement scratchpad functionality (see userguide) 2011-12-21 23:15:32 +00:00
resize.c Bugfix: Don’t change focus after (graphical) resizing 2011-12-17 18:47:29 +00:00
scratchpad.c Bugfix: Correctly handle 'move scratchpad' on workspace level (+test) (Thanks mseed) 2012-01-07 17:36:30 +00:00
sd-daemon.c implement "socket activation": passing IPC sockets to i3 2011-08-10 15:55:27 +02:00
sighandler.c Fix the signal handler popup text. 2011-12-18 15:43:00 +00:00
startup.c Enable (unlimited) core dumps when running i3 development versions 2011-11-08 22:49:25 +00:00
tree.c Implement scratchpad functionality (see userguide) 2011-12-21 23:15:32 +00:00
util.c Merge branch 'master' into next 2011-12-18 18:02:08 +00:00
window.c little style fixes 2011-11-21 21:48:24 +00:00
workspace.c Switch and Move to next workspace on the same Output. As requested in \#554 2012-01-08 16:24:21 +00:00
x.c shmlog: store meta information in the buffer itself, store path as X11 atom 2012-01-06 23:40:07 +00:00
xcb.c Enhance libi3 and use it in i3bar. 2011-11-21 20:52:26 +00:00
xcursor.c normalize modelines/headers across src/*.c 2011-10-22 23:40:02 +01:00
xinerama.c introduce sasprintf() in libi3, use it everywhere 2011-10-23 13:16:56 +01:00