awk.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. Language: Awk
  3. Author: Matthew Daly <[email protected]>
  4. Website: http://matthewdaly.co.uk/
  5. Description: language definition for Awk scripts
  6. */
  7. function(hljs) {
  8. var VARIABLE = {
  9. className: 'variable',
  10. variants: [
  11. {begin: /\$[\w\d#@][\w\d_]*/},
  12. {begin: /\$\{(.*?)}/}
  13. ]
  14. };
  15. var KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';
  16. var STRING = {
  17. className: 'string',
  18. contains: [hljs.BACKSLASH_ESCAPE],
  19. variants: [
  20. {
  21. begin: /(u|b)?r?'''/, end: /'''/,
  22. relevance: 10
  23. },
  24. {
  25. begin: /(u|b)?r?"""/, end: /"""/,
  26. relevance: 10
  27. },
  28. {
  29. begin: /(u|r|ur)'/, end: /'/,
  30. relevance: 10
  31. },
  32. {
  33. begin: /(u|r|ur)"/, end: /"/,
  34. relevance: 10
  35. },
  36. {
  37. begin: /(b|br)'/, end: /'/
  38. },
  39. {
  40. begin: /(b|br)"/, end: /"/
  41. },
  42. hljs.APOS_STRING_MODE,
  43. hljs.QUOTE_STRING_MODE
  44. ]
  45. };
  46. return {
  47. keywords: {
  48. keyword: KEYWORDS
  49. },
  50. contains: [
  51. VARIABLE,
  52. STRING,
  53. hljs.REGEXP_MODE,
  54. hljs.HASH_COMMENT_MODE,
  55. hljs.NUMBER_MODE
  56. ]
  57. }
  58. }