Advertisement
Guest User

Untitled

a guest
Apr 25th, 2012
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.35 KB | None | 0 0
  1. # Syntax highlight file for Slackbuilds
  2.  
  3. # Think about:
  4. # $'....'
  5. # $(...)
  6. # ${...}
  7.  
  8. # cat <<EOF xxxxxx
  9. # xxxxx should be interpreted as other arguments for 'cat'.
  10.  
  11. # Colors
  12.  
  13. =Idle
  14. =Comment dim green
  15. =Constant blue
  16. =Escape bold blue
  17. =Keyword bold
  18. =Var fg_255
  19. =CppKeyword bold
  20.  
  21. # Syntax
  22.  
  23. :idle Idle
  24. * idle
  25. # ")" subst_char recolor=-1
  26. "`" subst_char recolor=-1
  27. "#" comment recolor=-1
  28. "\\" escape recolor=-1
  29. "$" subst recolor=-1
  30. "'" string_sq recolor=-1
  31. "\"" string_dq recolor=-1
  32. "<" maybe_inc
  33. "a-zA-Z{}![_" ident buffer
  34.  
  35. :subst_char Var
  36. * idle noeat
  37.  
  38. :maybe_inc Idle
  39. * idle noeat
  40. "<" maybe_inc1
  41.  
  42. :maybe_inc1 Idle
  43. * inc buffer noeat
  44. "\"" inc_quote
  45. "'" inc_quote
  46. " " maybe_inc1
  47. "\n" toeof
  48. "`&()\\|;<>" idle noeat
  49. "\\" skipquote
  50. "-" skipminus
  51.  
  52. :skipminus Idle
  53. * inc1 buffer noeat
  54. " " skipminus
  55. "\\" skipquote
  56. "\"" inc1_quote
  57. "'" inc1_quote
  58. "`&()\\|;<>\n" idle noeat
  59.  
  60. :skipquote Idle
  61. * inc buffer noeat
  62. "`&()\\|;'\"<> \n" idle noeat
  63.  
  64. # All of these are for case of leading -
  65.  
  66. :inc1 Var
  67. * inc1
  68. "`&()\\|;'\"<> \n" skipline1 noeat save_s
  69.  
  70. :inc1_quote Var
  71. * inc1 buffer noeat
  72.  
  73. :skipline1 Idle
  74. * skipline1
  75. "\n" next_line1
  76.  
  77. :todelim1 Constant
  78. * todelim1
  79. "\n" next_line1 strings
  80. "&" founddelim1
  81. done
  82.  
  83. :next_line1 Constant
  84. * todelim1 buffer
  85. "\t" next_line1
  86. "\n" next_line1
  87.  
  88. :founddelim1 Var
  89. * idle noeat
  90.  
  91. # No leading -
  92.  
  93. :inc Var
  94. * inc
  95. "`&()\\|;'\"<> \n" skipline noeat save_s
  96.  
  97. :inc_quote Var
  98. * inc noeat buffer
  99.  
  100. # Should be treated as a normal line here...
  101.  
  102. :skipline Idle
  103. * skipline
  104. "\n" next_line
  105.  
  106. :todelim Constant
  107. * todelim
  108. "\n" next_line strings
  109. "&" founddelim
  110. done
  111.  
  112. # eat \n so it's not in string.
  113. :next_line Constant
  114. * todelim buffer
  115. "\n" next_line
  116.  
  117. :founddelim Var
  118. * idle noeat
  119.  
  120. # << with no word. Rest of file is a constant.
  121.  
  122. :toeof Constant
  123. * toeof
  124.  
  125. :comment Comment
  126. * comment
  127. "\n" idle
  128.  
  129. :escape Escape
  130. * idle
  131.  
  132. :subst Var
  133. * idle noeat
  134. "(" idle recolor=-2 # don't try for now
  135. "\"" string_dq recolor=-2
  136. "\'" string_sq recolor=-2
  137. "{" subst_brack
  138. "a-zA-Z_" subst_name
  139. "0-9*@?\-$_!#" idle
  140.  
  141. :subst_name Var
  142. * idle noeat recolor=-1
  143. "a-zA-Z0-9_" subst_name
  144.  
  145. :subst_brack Var
  146. * subst_brack
  147. "}" idle
  148.  
  149. # Simplest case: no quoting allowed
  150. :string_sq Constant
  151. * string_sq
  152. "\'" idle
  153.  
  154.  
  155. # double-quote: quoting, backqoutes and substitution allowed
  156. :string_dq Constant
  157. * string_dq
  158. "$" string_dq_subst recolor=-1
  159. "\"" idle
  160. "\\" string_dq_esc recolor=-1
  161. "`" string_dq_bq recolor=-1
  162.  
  163. :string_dq_subst Var
  164. * string_dq noeat recolor=-2
  165. "$0-9!_\-?*@" string_dq
  166. "a-zA-Z_" string_dq_subst_name
  167. "{" string_dq_subst_brack
  168.  
  169. :string_dq_subst_name Var
  170. * string_dq recolor=-1 noeat
  171. "a-zA-Z0-9_" string_dq_subst_name
  172.  
  173. :string_dq_subst_brack Var
  174. * string_dq_subst_brack
  175. "}" string_dq
  176.  
  177. :string_dq_esc Escape
  178. * string_dq recolor=-2
  179. "$`\"\\" string_dq
  180. "\n" string_dq recolor=-2
  181.  
  182. :string_dq_bq Constant
  183. * string_dq_bq
  184. "$" string_dq_bq_subst recolor=-1
  185. "\`" string_dq
  186. "\\" string_dq_bq_esc recolor=-1
  187.  
  188. :string_dq_bq_subst Var
  189. * string_dq_bq noeat recolor=-2
  190. "$0-9!_\-?*@" string_dq_bq
  191. "a-zA-Z_" string_dq_bq_subst_name
  192. "{" string_dq_bq_subst_brack
  193.  
  194. :string_dq_bq_subst_name Var
  195. * string_dq_bq recolor=-1 noeat
  196. "a-zA-Z0-9_" string_dq_bq_subst_name
  197.  
  198. :string_dq_bq_subst_brack Var
  199. * string_dq_bq_subst_brack
  200. "}" string_dq_bq
  201.  
  202. :string_dq_bq_esc Escape
  203. * string_dq_bq recolor=-2
  204. "$`\"\\" string_dq_bq
  205. "\n" string_dq_bq recolor=-2
  206.  
  207.  
  208. # backquote
  209. :string_bq Constant
  210. * string_bq
  211. "$" string_bq_subst recolor=-1
  212. "\`" idle
  213. "\\" string_bq_esc recolor=-1
  214.  
  215. # escape in backquote
  216. :string_bq_esc Escape
  217. * string_bq recolor=-2
  218. "$`\"\\" string_bq
  219. "\n" string_bq recolor=-2
  220.  
  221. # Substitution in a backquote
  222. :string_bq_subst Var
  223. * string_bq noeat recolor=-2
  224. "$0-9!_\-?*@" string_bq
  225. "a-zA-Z_" string_bq_subst_name
  226. "{" string_bq_subst_brack
  227.  
  228. :string_bq_subst_name Var
  229. * string_bq recolor=-1 noeat
  230. "a-zA-Z0-9_" string_bq_subst_name
  231.  
  232. :string_bq_subst_brack Var
  233. * string_bq_subst_brack
  234. "}" string_bq
  235.  
  236. :ident Idle
  237. * idle noeat strings
  238. "!" kw
  239. "{" kw
  240. "}" kw
  241. "[" kw
  242. "]" kw
  243. # primary keywords
  244. "rm" kw
  245. "tar" kw
  246. "find" kw
  247. "chown" kw
  248. "chmod" kw
  249. "zcat" kw
  250. "make" kw
  251. "install" kw
  252. "PKGNAM" kw
  253. "PRGNAM" kw
  254. "TAG" kw
  255. "OUTPUT" kw
  256. "VERSION" kw
  257. "BUILD" kw
  258. "NUMJOBS" kw
  259. "CWD" kw
  260. "TMP" kw
  261. "PKG" kw
  262. "CFLAGS" kw
  263. "LDFLAGS" kw
  264. "CXXFLAGS" kw
  265. "mv" kw
  266. "PREFIX" kw
  267. "sed" kw
  268. "touch" kw
  269. "done" kw
  270. "gzip" kw
  271. "grep" kw
  272. "strip" kw
  273. "cp" kw
  274. "cat" kw
  275. "mkdir" kw
  276. "configure" kw
  277. "do" kw
  278. "makepkg" kw
  279. "patch" kw
  280. # I think these are basically keywords too
  281. "break" kw
  282. "continue" kw
  283. "return" kw
  284. "eval" kw
  285. "exec" kw
  286. "exit" kw
  287. "test" kw # doesn't have to be a shell command
  288. # variable management
  289. "shift" kw
  290. "unset" kw
  291. "export" kw
  292. "readonly" kw
  293. # input
  294. "read" kw
  295. # job control (not likely to be used in scripts)
  296. "bg" kw
  297. "fg" kw
  298. "jobs" kw
  299. "suspend" kw
  300. # job control (useful in scripts)
  301. "kill" kw
  302. "wait" kw
  303. # environment control
  304. "cd" kw
  305. "chdir" kw
  306. "pwd" kw
  307. "ulimit" kw
  308. "umask" kw
  309. # signal handling
  310. "trap" kw
  311. # misc shell control
  312. "hash" kw
  313. "type" kw
  314. "times" kw
  315. "set" kw
  316. # shell builtins
  317. "echo" kw
  318. "getopts" kw
  319. "login" kw # not bash (logout is)
  320. "newgrp" kw # not in bash
  321. "stop" kw # not in bash (suspends a process)
  322. # additional ksh builtins
  323. "alias" kw
  324. "select" kw
  325. "function" kw
  326. "command" kw
  327. "fc" kw
  328. "let" kw
  329. "print" kw
  330. "unalias" kw
  331. "whence" kw
  332. "history" kw
  333. "time" kw
  334. "typeset" kw
  335. "local" kw
  336. # additional bash builtins
  337. "source" kw
  338. "bind" kw
  339. "builtin" kw
  340. "compgen" kw
  341. "complete" kw
  342. "declare" kw
  343. "dirs" kw
  344. "disown" kw
  345. "help" kw
  346. "logout" kw
  347. "popd" kw
  348. "printf" kw
  349. "pushd" kw
  350. "shopt" kw
  351.  
  352. # C++ keywords
  353. "bool" cppkw
  354. "if" cppkw
  355. "esac" cppkw
  356. "fi" cppkw
  357. "case" cppkw
  358. "then" cppkw
  359. "elif" cppkw
  360. "else" cppkw
  361. "for" cppkw
  362. "in" cppkw
  363. "until" cppkw
  364. "while" cppkw
  365. done
  366. "a-zA-Z0-9_" ident
  367.  
  368. :kw Keyword
  369. * idle noeat
  370. :cppkw CppKeyword
  371. * idle noeat
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement