zephir.json 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. {
  2. "aliases": [
  3. "zep"
  4. ],
  5. "case_insensitive": true,
  6. "keywords": "and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var let while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally int uint long ulong char uchar double float bool boolean stringlikely unlikely",
  7. "contains": [
  8. {
  9. "className": "comment",
  10. "begin": "\/\/",
  11. "end": "$",
  12. "contains": [
  13. {
  14. "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"
  15. },
  16. {
  17. "className": "doctag",
  18. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  19. "relevance": 0
  20. }
  21. ]
  22. },
  23. {
  24. "className": "comment",
  25. "begin": "#",
  26. "end": "$",
  27. "contains": [
  28. {
  29. "$ref": "#contains.0.contains.0"
  30. },
  31. {
  32. "className": "doctag",
  33. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  34. "relevance": 0
  35. }
  36. ]
  37. },
  38. {
  39. "className": "comment",
  40. "begin": "\/\\*",
  41. "end": "\\*\/",
  42. "contains": [
  43. {
  44. "className": "doctag",
  45. "begin": "@[A-Za-z]+"
  46. },
  47. {
  48. "$ref": "#contains.0.contains.0"
  49. },
  50. {
  51. "className": "doctag",
  52. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  53. "relevance": 0
  54. }
  55. ]
  56. },
  57. {
  58. "className": "comment",
  59. "begin": "__halt_compiler.+?;",
  60. "end": false,
  61. "contains": [
  62. {
  63. "$ref": "#contains.0.contains.0"
  64. },
  65. {
  66. "className": "doctag",
  67. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  68. "relevance": 0
  69. }
  70. ],
  71. "endsWithParent": true,
  72. "keywords": "__halt_compiler",
  73. "lexemes": "[a-zA-Z_]\\w*"
  74. },
  75. {
  76. "className": "string",
  77. "begin": "<<<['\"]?\\w+['\"]?$",
  78. "end": "^\\w+;",
  79. "contains": [
  80. {
  81. "begin": "\\\\[\\s\\S]",
  82. "relevance": 0
  83. }
  84. ]
  85. },
  86. {
  87. "begin": "(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*"
  88. },
  89. {
  90. "className": "function",
  91. "beginKeywords": "function",
  92. "end": "[;{]",
  93. "excludeEnd": true,
  94. "illegal": "\\$|\\[|%",
  95. "contains": [
  96. {
  97. "className": "title",
  98. "begin": "[a-zA-Z_]\\w*",
  99. "relevance": 0
  100. },
  101. {
  102. "className": "params",
  103. "begin": "\\(",
  104. "end": "\\)",
  105. "contains": [
  106. "self",
  107. {
  108. "className": "comment",
  109. "begin": "\/\\*",
  110. "end": "\\*\/",
  111. "contains": [
  112. {
  113. "$ref": "#contains.0.contains.0"
  114. },
  115. {
  116. "className": "doctag",
  117. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  118. "relevance": 0
  119. }
  120. ]
  121. },
  122. {
  123. "className": "string",
  124. "contains": [
  125. {
  126. "$ref": "#contains.4.contains.0"
  127. }
  128. ],
  129. "variants": [
  130. {
  131. "begin": "b\"",
  132. "end": "\""
  133. },
  134. {
  135. "begin": "b'",
  136. "end": "'"
  137. },
  138. {
  139. "className": "string",
  140. "begin": "'",
  141. "end": "'",
  142. "illegal": null,
  143. "contains": [
  144. {
  145. "$ref": "#contains.4.contains.0"
  146. }
  147. ]
  148. },
  149. {
  150. "className": "string",
  151. "begin": "\"",
  152. "end": "\"",
  153. "illegal": null,
  154. "contains": [
  155. {
  156. "$ref": "#contains.4.contains.0"
  157. }
  158. ]
  159. }
  160. ]
  161. },
  162. {
  163. "variants": [
  164. {
  165. "className": "number",
  166. "begin": "\\b(0b[01]+)",
  167. "relevance": 0
  168. },
  169. {
  170. "className": "number",
  171. "begin": "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
  172. "relevance": 0
  173. }
  174. ]
  175. }
  176. ]
  177. }
  178. ]
  179. },
  180. {
  181. "className": "class",
  182. "beginKeywords": "class interface",
  183. "end": "{",
  184. "excludeEnd": true,
  185. "illegal": "[:\\(\\$\"]",
  186. "contains": [
  187. {
  188. "beginKeywords": "extends implements"
  189. },
  190. {
  191. "$ref": "#contains.6.contains.0"
  192. }
  193. ]
  194. },
  195. {
  196. "beginKeywords": "namespace",
  197. "end": ";",
  198. "illegal": "[\\.']",
  199. "contains": [
  200. {
  201. "$ref": "#contains.6.contains.0"
  202. }
  203. ]
  204. },
  205. {
  206. "beginKeywords": "use",
  207. "end": ";",
  208. "contains": [
  209. {
  210. "$ref": "#contains.6.contains.0"
  211. }
  212. ]
  213. },
  214. {
  215. "begin": "=>"
  216. },
  217. {
  218. "$ref": "#contains.6.contains.1.contains.2"
  219. },
  220. {
  221. "$ref": "#contains.6.contains.1.contains.3"
  222. }
  223. ]
  224. }