Ticket #3690: 0001-Initial-support-of-OpenCL-syntax-highlighting.patch

File 0001-Initial-support-of-OpenCL-syntax-highlighting.patch, 7.1 KB (added by sergey, 8 years ago)
  • misc/syntax/Makefile.am

    From 664770adceee1f66508bca3526fbd72845311a46 Mon Sep 17 00:00:00 2001
    From: Sergey Sharybin <sergey.vfx@gmail.com>
    Date: Tue, 20 Sep 2016 10:20:30 +0200
    Subject: [PATCH] Initial support of OpenCL syntax highlighting
    
    Based on opencl-mode from Emacs with some own tweaks.
    ---
     misc/syntax/Makefile.am   |   1 +
     misc/syntax/Syntax.in     |   3 +
     misc/syntax/opencl.syntax | 178 ++++++++++++++++++++++++++++++++++++++++++++++
     3 files changed, 182 insertions(+)
     create mode 100644 misc/syntax/opencl.syntax
    
    diff --git a/misc/syntax/Makefile.am b/misc/syntax/Makefile.am
    index a606cb7..1d25f06 100644
    a b SYNTAXFILES = \ 
    5353        named.syntax            \ 
    5454        nemerle.syntax          \ 
    5555        nroff.syntax            \ 
     56        opencl.syntax           \ 
    5657        octave.syntax           \ 
    5758        pascal.syntax           \ 
    5859        perl.syntax             \ 
  • misc/syntax/Syntax.in

    diff --git a/misc/syntax/Syntax.in b/misc/syntax/Syntax.in
    index d8da1b9..fe48dde 100644
    a b include glsl.syntax 
    268268file .\*\\.(cu|cuh)$ CUDA\sProgram 
    269269include cuda.syntax 
    270270 
     271file .\*\\.(cl)$ OpenCL\sProgram 
     272include opencl.syntax 
     273 
    271274file .\* unknown 
    272275include unknown.syntax 
  • new file misc/syntax/opencl.syntax

    diff --git a/misc/syntax/opencl.syntax b/misc/syntax/opencl.syntax
    new file mode 100644
    index 0000000..9ff9865
    - +  
     1# Syntax rules for the C and the C++ programming languages 
     2# 
     3# List of keywords is based on opencl-mode.el from 
     4# Salmane Bah <salmane.bah@u-bordeaux.fr> 
     5 
     6context default 
     7    keyword whole auto yellow 
     8    keyword whole break yellow 
     9    keyword whole case yellow 
     10    keyword whole char yellow 
     11    keyword whole const yellow 
     12    keyword whole continue yellow 
     13    keyword whole do yellow 
     14    keyword whole double yellow 
     15    keyword whole else yellow 
     16    keyword whole enum yellow 
     17    keyword whole extern yellow 
     18    keyword whole float yellow 
     19    keyword whole for yellow 
     20    keyword whole goto yellow 
     21    keyword whole if yellow 
     22    keyword whole int yellow 
     23    keyword whole long yellow 
     24    keyword whole register yellow 
     25    keyword whole return yellow 
     26    keyword whole short yellow 
     27    keyword whole signed yellow 
     28    keyword whole sizeof yellow 
     29    keyword whole static yellow 
     30    keyword whole struct yellow 
     31    keyword whole switch yellow 
     32    keyword whole typedef yellow 
     33    keyword whole union yellow 
     34    keyword whole unsigned yellow 
     35    keyword whole void yellow 
     36    keyword whole volatile yellow 
     37    keyword whole while yellow 
     38    keyword whole asm yellow 
     39    keyword whole inline yellow 
     40    keyword whole wchar_t yellow 
     41    keyword whole ... yellow 
     42    keyword whole linestart \{\s\t\}\[\s\t\]#*\n brightmagenta 
     43    keyword whole \[\s\t\]default yellow 
     44    keyword whole linestart \[\s\t\]\{ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\}\[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\]: cyan 
     45 
     46# Function type qualifiers 
     47    keyword whole __kernel white 
     48 
     49# Variable type qualifiers 
     50    keyword whole __global white 
     51    keyword whole __local white 
     52    keyword whole __constant white 
     53    keyword whole __private white 
     54    keyword whole __read_only white 
     55    keyword whole __write_only white 
     56    keyword whole __read_write white 
     57    keyword whole __enable white 
     58    keyword whole __disable white 
     59    keyword whole global white 
     60    keyword whole local white 
     61    keyword whole constant white 
     62    keyword whole private white 
     63    keyword whole read_only white 
     64    keyword whole write_only white 
     65    keyword whole read_write white 
     66    keyword whole enable white 
     67    keyword whole disable white 
     68 
     69# Built-in functions 
     70    keyword whole get_group_id brightmagenta 
     71    keyword whole get_local_id brightmagenta 
     72    keyword whole get_global_id brightmagenta 
     73    keyword whole get_local_size brightmagenta 
     74    keyword whole get_global_size brightmagenta 
     75    keyword whole get_work_dim brightmagenta 
     76    keyword whole get_num_groups brightmagenta 
     77    keyword whole get_global_offset brightmagenta 
     78    keyword whole barrier brightmagenta 
     79 
     80# Constants 
     81    keyword whole CLK_LOCAL_MEM_FENCE white 
     82    keyword whole CLK_GLOBAL_MEM_FENCE white 
     83    keyword whole MAXFLOAT white 
     84    keyword whole HUGE_VAL white 
     85    keyword whole HUGE_VALF white 
     86    keyword whole INFINITY white 
     87    keyword whole NAN white 
     88 
     89# Built-in types 
     90    keyword whole half yellow 
     91    keyword whole uchar yellow 
     92    keyword whole ushort yellow 
     93    keyword whole uint yellow 
     94    keyword whole ulong yellow 
     95    keyword whole bool yellow 
     96    keyword whole size_t yellow 
     97    keyword whole ptrdiff_t yellow 
     98    keyword whole intptr_t yellow 
     99    keyword whole uintptr_t yellow 
     100 
     101    keyword whole image2d_t yellow 
     102    keyword whole image3d_t yellow 
     103    keyword whole image2d_array_t yellow 
     104    keyword whole image3d_array_t yellow 
     105    keyword whole image1d_array_t yellow 
     106    keyword whole image1d_t yellow 
     107    keyword whole image1d_buffer_t yellow 
     108    keyword whole sampler_t yellow 
     109    keyword whole event_t yellow 
     110 
     111    keyword whole cl_khr_\{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\}\{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_\}+ brightgreen 
     112 
     113    keyword /\* brown 
     114    keyword \*/ brown 
     115    keyword // brown 
     116 
     117    keyword '\\\{"abtnvfr\}' brightgreen 
     118    keyword '\\\{0123\}\{01234567\}\{01234567\}' brightgreen 
     119    keyword '\\'' brightgreen 
     120    keyword '\\\\' brightgreen 
     121    keyword '\\0' brightgreen 
     122    keyword '\{\s!"#$%&()\*\+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\}' brightgreen 
     123 
     124# punctuation characters, sorted by ASCII code 
     125    keyword ! yellow 
     126    keyword % yellow 
     127    keyword && yellow 
     128    keyword & brightmagenta 
     129    keyword ( brightcyan 
     130    keyword ) brightcyan 
     131    keyword \* yellow 
     132    keyword \+ yellow 
     133    keyword , brightcyan 
     134    keyword - yellow 
     135    keyword / yellow 
     136    keyword : brightcyan 
     137    keyword ; brightmagenta 
     138    keyword < yellow 
     139    keyword = yellow 
     140    keyword > yellow 
     141    keyword ? brightcyan 
     142    keyword [ brightcyan 
     143    keyword ] brightcyan 
     144    keyword ^ brightmagenta 
     145    keyword { brightcyan 
     146    keyword || yellow 
     147    keyword | brightmagenta 
     148    keyword } brightcyan 
     149    keyword ~ brightmagenta 
     150 
     151context exclusive /\* \*/ brown 
     152    spellcheck 
     153 
     154context exclusive // \n brown 
     155    spellcheck 
     156 
     157context linestart # \n brightred 
     158    keyword \\\n yellow 
     159    keyword /\**\*/ brown 
     160    keyword //*\n brown 
     161    keyword "+" red 
     162    keyword <+> red 
     163 
     164context " " green 
     165    spellcheck 
     166    keyword \\" brightgreen 
     167    keyword %% brightgreen 
     168    keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} brightgreen 
     169    keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} brightgreen 
     170    keyword %\[hl\]n brightgreen 
     171    keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s brightgreen 
     172    keyword %[*] brightgreen 
     173    keyword %c brightgreen 
     174    keyword %p brightgreen 
     175    keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen 
     176    keyword \\\\ brightgreen 
     177    keyword \\' brightgreen 
     178    keyword \\\{abtnvfr\} brightgreen