Based on opencl-mode from Emacs with some own tweaks. Signed-off-by: Andrew Borodin <aborodin@vmail.ru>