ebnf.json 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. {
  2. "illegal": "\\S",
  3. "contains": [
  4. {
  5. "className": "comment",
  6. "begin": "\\(\\*",
  7. "end": "\\*\\)",
  8. "contains": [
  9. {
  10. "begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b"
  11. },
  12. {
  13. "className": "doctag",
  14. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  15. "relevance": 0
  16. }
  17. ]
  18. },
  19. {
  20. "className": "attribute",
  21. "begin": "^[ ]*[a-zA-Z][a-zA-Z\\-_]*([\\s\\-_]+[a-zA-Z][a-zA-Z]*)*"
  22. },
  23. {
  24. "begin": "=",
  25. "end": "[.;]",
  26. "contains": [
  27. {
  28. "$ref": "#contains.0"
  29. },
  30. {
  31. "className": "meta",
  32. "begin": "\\?.*\\?"
  33. },
  34. {
  35. "className": "string",
  36. "variants": [
  37. {
  38. "className": "string",
  39. "begin": "'",
  40. "end": "'",
  41. "illegal": "\\n",
  42. "contains": [
  43. {
  44. "begin": "\\\\[\\s\\S]",
  45. "relevance": 0
  46. }
  47. ]
  48. },
  49. {
  50. "className": "string",
  51. "begin": "\"",
  52. "end": "\"",
  53. "illegal": "\\n",
  54. "contains": [
  55. {
  56. "$ref": "#contains.2.contains.2.variants.0.contains.0"
  57. }
  58. ]
  59. },
  60. {
  61. "begin": "`",
  62. "end": "`"
  63. }
  64. ]
  65. }
  66. ]
  67. }
  68. ]
  69. }