@milkdown/crepe 7.5.1 → 7.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/lib/cjs/{index-udZSknd8.js → index-TGmNEvsj.js} +7 -7
  2. package/lib/cjs/index-TGmNEvsj.js.map +1 -0
  3. package/lib/cjs/index-fhKBUFkq.js +46 -0
  4. package/lib/cjs/index-fhKBUFkq.js.map +1 -0
  5. package/lib/cjs/{index-tqAbVyds.js → index-rLAgJeYn.js} +4 -4
  6. package/lib/cjs/index-rLAgJeYn.js.map +1 -0
  7. package/lib/cjs/index.js +3 -3
  8. package/lib/cjs/index.js.map +1 -1
  9. package/lib/esm/{index-v3rvbocl.js → index-amuALmzU.js} +2 -2
  10. package/lib/esm/{index-v3rvbocl.js.map → index-amuALmzU.js.map} +1 -1
  11. package/lib/esm/index-jU_6odT9.js +44 -0
  12. package/lib/esm/index-jU_6odT9.js.map +1 -0
  13. package/lib/esm/{index-lm00PM0y.js → index-w69wbtEZ.js} +2 -2
  14. package/lib/esm/{index-lm00PM0y.js.map → index-w69wbtEZ.js.map} +1 -1
  15. package/lib/esm/index.js +3 -3
  16. package/lib/esm/index.js.map +1 -1
  17. package/package.json +2 -4
  18. package/lib/cjs/apl-99bWvYTf.js +0 -145
  19. package/lib/cjs/apl-99bWvYTf.js.map +0 -1
  20. package/lib/cjs/asciiarmor-cf0JLIr_.js +0 -59
  21. package/lib/cjs/asciiarmor-cf0JLIr_.js.map +0 -1
  22. package/lib/cjs/asn1-H4XzAvBS.js +0 -195
  23. package/lib/cjs/asn1-H4XzAvBS.js.map +0 -1
  24. package/lib/cjs/asterisk-0FgJEfZB.js +0 -190
  25. package/lib/cjs/asterisk-0FgJEfZB.js.map +0 -1
  26. package/lib/cjs/brainfuck-JX7vRZy7.js +0 -73
  27. package/lib/cjs/brainfuck-JX7vRZy7.js.map +0 -1
  28. package/lib/cjs/clike-ueXlMQy5.js +0 -1034
  29. package/lib/cjs/clike-ueXlMQy5.js.map +0 -1
  30. package/lib/cjs/clojure-6iDAG5oi.js +0 -277
  31. package/lib/cjs/clojure-6iDAG5oi.js.map +0 -1
  32. package/lib/cjs/clsx-dASsG01A.js +0 -6
  33. package/lib/cjs/clsx-dASsG01A.js.map +0 -1
  34. package/lib/cjs/cmake-L0RIBnfc.js +0 -84
  35. package/lib/cjs/cmake-L0RIBnfc.js.map +0 -1
  36. package/lib/cjs/cobol-oxkMh1GJ.js +0 -238
  37. package/lib/cjs/cobol-oxkMh1GJ.js.map +0 -1
  38. package/lib/cjs/coffeescript--eauIeRQ.js +0 -332
  39. package/lib/cjs/coffeescript--eauIeRQ.js.map +0 -1
  40. package/lib/cjs/commonlisp-pgSu-q6f.js +0 -111
  41. package/lib/cjs/commonlisp-pgSu-q6f.js.map +0 -1
  42. package/lib/cjs/crystal-2y3I5ibZ.js +0 -422
  43. package/lib/cjs/crystal-2y3I5ibZ.js.map +0 -1
  44. package/lib/cjs/css-WH69cXzo.js +0 -855
  45. package/lib/cjs/css-WH69cXzo.js.map +0 -1
  46. package/lib/cjs/cypher-da-dqVyQ.js +0 -125
  47. package/lib/cjs/cypher-da-dqVyQ.js.map +0 -1
  48. package/lib/cjs/d-58J7EOkP.js +0 -208
  49. package/lib/cjs/d-58J7EOkP.js.map +0 -1
  50. package/lib/cjs/diff-437Hfzqm.js +0 -33
  51. package/lib/cjs/diff-437Hfzqm.js.map +0 -1
  52. package/lib/cjs/dockerfile-7i0OoaQe.js +0 -202
  53. package/lib/cjs/dockerfile-7i0OoaQe.js.map +0 -1
  54. package/lib/cjs/dtd-AKekCPPB.js +0 -124
  55. package/lib/cjs/dtd-AKekCPPB.js.map +0 -1
  56. package/lib/cjs/dylan-DLEmvz1I.js +0 -340
  57. package/lib/cjs/dylan-DLEmvz1I.js.map +0 -1
  58. package/lib/cjs/ebnf-36cJWqxB.js +0 -154
  59. package/lib/cjs/ebnf-36cJWqxB.js.map +0 -1
  60. package/lib/cjs/ecl-UWr5vJKJ.js +0 -193
  61. package/lib/cjs/ecl-UWr5vJKJ.js.map +0 -1
  62. package/lib/cjs/eiffel-Su-C9LAY.js +0 -149
  63. package/lib/cjs/eiffel-Su-C9LAY.js.map +0 -1
  64. package/lib/cjs/elm-vNNfVJj7.js +0 -233
  65. package/lib/cjs/elm-vNNfVJj7.js.map +0 -1
  66. package/lib/cjs/erlang-NM9dgYaS.js +0 -584
  67. package/lib/cjs/erlang-NM9dgYaS.js.map +0 -1
  68. package/lib/cjs/factor-RWs-4aWg.js +0 -68
  69. package/lib/cjs/factor-RWs-4aWg.js.map +0 -1
  70. package/lib/cjs/fcl-acUhGCfs.js +0 -157
  71. package/lib/cjs/fcl-acUhGCfs.js.map +0 -1
  72. package/lib/cjs/forth-sDkE6z3A.js +0 -167
  73. package/lib/cjs/forth-sDkE6z3A.js.map +0 -1
  74. package/lib/cjs/fortran-gkb4yvdk.js +0 -175
  75. package/lib/cjs/fortran-gkb4yvdk.js.map +0 -1
  76. package/lib/cjs/gas-mNA0qvkv.js +0 -347
  77. package/lib/cjs/gas-mNA0qvkv.js.map +0 -1
  78. package/lib/cjs/gherkin-5uyKpXXh.js +0 -150
  79. package/lib/cjs/gherkin-5uyKpXXh.js.map +0 -1
  80. package/lib/cjs/go-5XitXoIZ.js +0 -167
  81. package/lib/cjs/go-5XitXoIZ.js.map +0 -1
  82. package/lib/cjs/groovy-mz3pWMKN.js +0 -233
  83. package/lib/cjs/groovy-mz3pWMKN.js.map +0 -1
  84. package/lib/cjs/haskell-9KaSS7kb.js +0 -242
  85. package/lib/cjs/haskell-9KaSS7kb.js.map +0 -1
  86. package/lib/cjs/haxe-L8h6Pvni.js +0 -494
  87. package/lib/cjs/haxe-L8h6Pvni.js.map +0 -1
  88. package/lib/cjs/http-BFQQnRR-.js +0 -92
  89. package/lib/cjs/http-BFQQnRR-.js.map +0 -1
  90. package/lib/cjs/idl-29T-AzAy.js +0 -277
  91. package/lib/cjs/idl-29T-AzAy.js.map +0 -1
  92. package/lib/cjs/index--2zEz40J.js +0 -93
  93. package/lib/cjs/index--2zEz40J.js.map +0 -1
  94. package/lib/cjs/index-5n9R-QCl.js +0 -390
  95. package/lib/cjs/index-5n9R-QCl.js.map +0 -1
  96. package/lib/cjs/index-HEdBw63r.js +0 -428
  97. package/lib/cjs/index-HEdBw63r.js.map +0 -1
  98. package/lib/cjs/index-Hlt9dRH5.js +0 -113
  99. package/lib/cjs/index-Hlt9dRH5.js.map +0 -1
  100. package/lib/cjs/index-KCW2CzRk.js +0 -2504
  101. package/lib/cjs/index-KCW2CzRk.js.map +0 -1
  102. package/lib/cjs/index-KSZhahYb.js +0 -146
  103. package/lib/cjs/index-KSZhahYb.js.map +0 -1
  104. package/lib/cjs/index-NNo_VSEA.js +0 -684
  105. package/lib/cjs/index-NNo_VSEA.js.map +0 -1
  106. package/lib/cjs/index-O1bDbloo.js +0 -383
  107. package/lib/cjs/index-O1bDbloo.js.map +0 -1
  108. package/lib/cjs/index-OPh9naof.js +0 -141
  109. package/lib/cjs/index-OPh9naof.js.map +0 -1
  110. package/lib/cjs/index-PAhfZtcH.js +0 -517
  111. package/lib/cjs/index-PAhfZtcH.js.map +0 -1
  112. package/lib/cjs/index-PeRHVz4A.js +0 -759
  113. package/lib/cjs/index-PeRHVz4A.js.map +0 -1
  114. package/lib/cjs/index-U7GWrg-w.js +0 -25251
  115. package/lib/cjs/index-U7GWrg-w.js.map +0 -1
  116. package/lib/cjs/index-UTb0Az5e.js +0 -1877
  117. package/lib/cjs/index-UTb0Az5e.js.map +0 -1
  118. package/lib/cjs/index-UnEAyH8X.js +0 -194
  119. package/lib/cjs/index-UnEAyH8X.js.map +0 -1
  120. package/lib/cjs/index-VCkq0ru1.js +0 -188
  121. package/lib/cjs/index-VCkq0ru1.js.map +0 -1
  122. package/lib/cjs/index-WQl7Du53.js +0 -248
  123. package/lib/cjs/index-WQl7Du53.js.map +0 -1
  124. package/lib/cjs/index-ahL5MvrQ.js +0 -1014
  125. package/lib/cjs/index-ahL5MvrQ.js.map +0 -1
  126. package/lib/cjs/index-bpgWLeRY.js +0 -104
  127. package/lib/cjs/index-bpgWLeRY.js.map +0 -1
  128. package/lib/cjs/index-fZupvR_f.js +0 -341
  129. package/lib/cjs/index-fZupvR_f.js.map +0 -1
  130. package/lib/cjs/index-gSM-jgti.js +0 -449
  131. package/lib/cjs/index-gSM-jgti.js.map +0 -1
  132. package/lib/cjs/index-jlPr_A_N.js +0 -66
  133. package/lib/cjs/index-jlPr_A_N.js.map +0 -1
  134. package/lib/cjs/index-tqAbVyds.js.map +0 -1
  135. package/lib/cjs/index-udZSknd8.js.map +0 -1
  136. package/lib/cjs/index-urB-WDqA.js +0 -1030
  137. package/lib/cjs/index-urB-WDqA.js.map +0 -1
  138. package/lib/cjs/index-xWgWtxUR.js +0 -347
  139. package/lib/cjs/index-xWgWtxUR.js.map +0 -1
  140. package/lib/cjs/javascript-5-BTydbD.js +0 -928
  141. package/lib/cjs/javascript-5-BTydbD.js.map +0 -1
  142. package/lib/cjs/jinja2-BWMz4gPk.js +0 -174
  143. package/lib/cjs/jinja2-BWMz4gPk.js.map +0 -1
  144. package/lib/cjs/julia-dtR9J3KZ.js +0 -372
  145. package/lib/cjs/julia-dtR9J3KZ.js.map +0 -1
  146. package/lib/cjs/livescript-YxT0INe3.js +0 -262
  147. package/lib/cjs/livescript-YxT0INe3.js.map +0 -1
  148. package/lib/cjs/lua-h7_AXjy9.js +0 -140
  149. package/lib/cjs/lua-h7_AXjy9.js.map +0 -1
  150. package/lib/cjs/mathematica-Zc57fOr3.js +0 -156
  151. package/lib/cjs/mathematica-Zc57fOr3.js.map +0 -1
  152. package/lib/cjs/mbox-ltKsKgJd.js +0 -117
  153. package/lib/cjs/mbox-ltKsKgJd.js.map +0 -1
  154. package/lib/cjs/mirc-xTLeWqmy.js +0 -179
  155. package/lib/cjs/mirc-xTLeWqmy.js.map +0 -1
  156. package/lib/cjs/mllike-xukl-Kjp.js +0 -351
  157. package/lib/cjs/mllike-xukl-Kjp.js.map +0 -1
  158. package/lib/cjs/modelica-LsXtAawk.js +0 -195
  159. package/lib/cjs/modelica-LsXtAawk.js.map +0 -1
  160. package/lib/cjs/mscgen-9HooYIVW.js +0 -154
  161. package/lib/cjs/mscgen-9HooYIVW.js.map +0 -1
  162. package/lib/cjs/mumps-VXqGp84f.js +0 -132
  163. package/lib/cjs/mumps-VXqGp84f.js.map +0 -1
  164. package/lib/cjs/nginx-UrubUbn1.js +0 -166
  165. package/lib/cjs/nginx-UrubUbn1.js.map +0 -1
  166. package/lib/cjs/nsis-c2AYwqyy.js +0 -83
  167. package/lib/cjs/nsis-c2AYwqyy.js.map +0 -1
  168. package/lib/cjs/ntriples-N1nwiheD.js +0 -144
  169. package/lib/cjs/ntriples-N1nwiheD.js.map +0 -1
  170. package/lib/cjs/octave-ElonStfZ.js +0 -115
  171. package/lib/cjs/octave-ElonStfZ.js.map +0 -1
  172. package/lib/cjs/oz-7VQTnCfu.js +0 -238
  173. package/lib/cjs/oz-7VQTnCfu.js.map +0 -1
  174. package/lib/cjs/pascal-yq2Cb88Q.js +0 -127
  175. package/lib/cjs/pascal-yq2Cb88Q.js.map +0 -1
  176. package/lib/cjs/perl-hJq4byS9.js +0 -822
  177. package/lib/cjs/perl-hJq4byS9.js.map +0 -1
  178. package/lib/cjs/pig-2syuOlAa.js +0 -152
  179. package/lib/cjs/pig-2syuOlAa.js.map +0 -1
  180. package/lib/cjs/powershell-NDwxuSDg.js +0 -384
  181. package/lib/cjs/powershell-NDwxuSDg.js.map +0 -1
  182. package/lib/cjs/properties-wacODxDJ.js +0 -65
  183. package/lib/cjs/properties-wacODxDJ.js.map +0 -1
  184. package/lib/cjs/protobuf-zVHZwskk.js +0 -57
  185. package/lib/cjs/protobuf-zVHZwskk.js.map +0 -1
  186. package/lib/cjs/puppet-koQikqO-.js +0 -208
  187. package/lib/cjs/puppet-koQikqO-.js.map +0 -1
  188. package/lib/cjs/python-P3UsKHbj.js +0 -394
  189. package/lib/cjs/python-P3UsKHbj.js.map +0 -1
  190. package/lib/cjs/q-Z_d2uXoA.js +0 -126
  191. package/lib/cjs/q-Z_d2uXoA.js.map +0 -1
  192. package/lib/cjs/r-J6Jl9z1i.js +0 -177
  193. package/lib/cjs/r-J6Jl9z1i.js.map +0 -1
  194. package/lib/cjs/rpm-6C0Omumu.js +0 -93
  195. package/lib/cjs/rpm-6C0Omumu.js.map +0 -1
  196. package/lib/cjs/ruby-POVyUmsb.js +0 -290
  197. package/lib/cjs/ruby-POVyUmsb.js.map +0 -1
  198. package/lib/cjs/sas-vDtpSmFr.js +0 -271
  199. package/lib/cjs/sas-vDtpSmFr.js.map +0 -1
  200. package/lib/cjs/scheme-5AA5BH7S.js +0 -266
  201. package/lib/cjs/scheme-5AA5BH7S.js.map +0 -1
  202. package/lib/cjs/shell-_ztDMiW6.js +0 -148
  203. package/lib/cjs/shell-_ztDMiW6.js.map +0 -1
  204. package/lib/cjs/sieve-R_vzlbvH.js +0 -181
  205. package/lib/cjs/sieve-R_vzlbvH.js.map +0 -1
  206. package/lib/cjs/simple-mode-ZwmNbV0h.js +0 -138
  207. package/lib/cjs/simple-mode-ZwmNbV0h.js.map +0 -1
  208. package/lib/cjs/smalltalk-dWLp5zN8.js +0 -156
  209. package/lib/cjs/smalltalk-dWLp5zN8.js.map +0 -1
  210. package/lib/cjs/solr-wSmvjKI8.js +0 -83
  211. package/lib/cjs/solr-wSmvjKI8.js.map +0 -1
  212. package/lib/cjs/sparql-GNU_0xKB.js +0 -173
  213. package/lib/cjs/sparql-GNU_0xKB.js.map +0 -1
  214. package/lib/cjs/spreadsheet-BiqYLk6M.js +0 -101
  215. package/lib/cjs/spreadsheet-BiqYLk6M.js.map +0 -1
  216. package/lib/cjs/sql-9GpHBPsC.js +0 -497
  217. package/lib/cjs/sql-9GpHBPsC.js.map +0 -1
  218. package/lib/cjs/stex-1V41CNLk.js +0 -250
  219. package/lib/cjs/stex-1V41CNLk.js.map +0 -1
  220. package/lib/cjs/stylus-H6hn9z_G.js +0 -753
  221. package/lib/cjs/stylus-H6hn9z_G.js.map +0 -1
  222. package/lib/cjs/swift-Xv5f8zgN.js +0 -205
  223. package/lib/cjs/swift-Xv5f8zgN.js.map +0 -1
  224. package/lib/cjs/tcl-LI-LOw_t.js +0 -128
  225. package/lib/cjs/tcl-LI-LOw_t.js.map +0 -1
  226. package/lib/cjs/textile-3NvRPUgg.js +0 -444
  227. package/lib/cjs/textile-3NvRPUgg.js.map +0 -1
  228. package/lib/cjs/tiddlywiki-PkMzy8_R.js +0 -281
  229. package/lib/cjs/tiddlywiki-PkMzy8_R.js.map +0 -1
  230. package/lib/cjs/tiki-Zk_GnEC8.js +0 -292
  231. package/lib/cjs/tiki-Zk_GnEC8.js.map +0 -1
  232. package/lib/cjs/toml-36gJ0YCq.js +0 -78
  233. package/lib/cjs/toml-36gJ0YCq.js.map +0 -1
  234. package/lib/cjs/troff-RLZ_o61o.js +0 -67
  235. package/lib/cjs/troff-RLZ_o61o.js.map +0 -1
  236. package/lib/cjs/ttcn-cfg-twaoJYvf.js +0 -204
  237. package/lib/cjs/ttcn-cfg-twaoJYvf.js.map +0 -1
  238. package/lib/cjs/ttcn-kGwvGb2v.js +0 -260
  239. package/lib/cjs/ttcn-kGwvGb2v.js.map +0 -1
  240. package/lib/cjs/turtle-nnevat7b.js +0 -144
  241. package/lib/cjs/turtle-nnevat7b.js.map +0 -1
  242. package/lib/cjs/vb-fO_I9s3s.js +0 -252
  243. package/lib/cjs/vb-fO_I9s3s.js.map +0 -1
  244. package/lib/cjs/vbscript-HXnn40y4.js +0 -324
  245. package/lib/cjs/vbscript-HXnn40y4.js.map +0 -1
  246. package/lib/cjs/velocity-Wn-ZfFzr.js +0 -189
  247. package/lib/cjs/velocity-Wn-ZfFzr.js.map +0 -1
  248. package/lib/cjs/verilog-y1ev34z6.js +0 -569
  249. package/lib/cjs/verilog-y1ev34z6.js.map +0 -1
  250. package/lib/cjs/vhdl-LF0oeXxc.js +0 -177
  251. package/lib/cjs/vhdl-LF0oeXxc.js.map +0 -1
  252. package/lib/cjs/webidl-6kI5KbeC.js +0 -182
  253. package/lib/cjs/webidl-6kI5KbeC.js.map +0 -1
  254. package/lib/cjs/xquery-BavrmwsO.js +0 -428
  255. package/lib/cjs/xquery-BavrmwsO.js.map +0 -1
  256. package/lib/cjs/yacas-1g_AbTrl.js +0 -185
  257. package/lib/cjs/yacas-1g_AbTrl.js.map +0 -1
  258. package/lib/cjs/z80-QYzKAAp7.js +0 -106
  259. package/lib/cjs/z80-QYzKAAp7.js.map +0 -1
  260. package/lib/esm/apl-eHQxyJFn.js +0 -143
  261. package/lib/esm/apl-eHQxyJFn.js.map +0 -1
  262. package/lib/esm/asciiarmor-Z-IGYCI4.js +0 -57
  263. package/lib/esm/asciiarmor-Z-IGYCI4.js.map +0 -1
  264. package/lib/esm/asn1-gF7x-q1y.js +0 -193
  265. package/lib/esm/asn1-gF7x-q1y.js.map +0 -1
  266. package/lib/esm/asterisk-swk20ftp.js +0 -188
  267. package/lib/esm/asterisk-swk20ftp.js.map +0 -1
  268. package/lib/esm/brainfuck-IFQdiQoR.js +0 -71
  269. package/lib/esm/brainfuck-IFQdiQoR.js.map +0 -1
  270. package/lib/esm/clike-q3hUF2Cx.js +0 -1019
  271. package/lib/esm/clike-q3hUF2Cx.js.map +0 -1
  272. package/lib/esm/clojure-I2Krbr2M.js +0 -275
  273. package/lib/esm/clojure-I2Krbr2M.js.map +0 -1
  274. package/lib/esm/clsx-RxCLxYpD.js +0 -4
  275. package/lib/esm/clsx-RxCLxYpD.js.map +0 -1
  276. package/lib/esm/cmake-ewwXLeuZ.js +0 -82
  277. package/lib/esm/cmake-ewwXLeuZ.js.map +0 -1
  278. package/lib/esm/cobol-fpN1nAnR.js +0 -236
  279. package/lib/esm/cobol-fpN1nAnR.js.map +0 -1
  280. package/lib/esm/coffeescript--eTFR-bH.js +0 -330
  281. package/lib/esm/coffeescript--eTFR-bH.js.map +0 -1
  282. package/lib/esm/commonlisp-XLSwVdLc.js +0 -109
  283. package/lib/esm/commonlisp-XLSwVdLc.js.map +0 -1
  284. package/lib/esm/crystal-_r3Aa1_a.js +0 -420
  285. package/lib/esm/crystal-_r3Aa1_a.js.map +0 -1
  286. package/lib/esm/css-hgwYGMKZ.js +0 -848
  287. package/lib/esm/css-hgwYGMKZ.js.map +0 -1
  288. package/lib/esm/cypher-bbJyAa-4.js +0 -123
  289. package/lib/esm/cypher-bbJyAa-4.js.map +0 -1
  290. package/lib/esm/d-5MyulviS.js +0 -206
  291. package/lib/esm/d-5MyulviS.js.map +0 -1
  292. package/lib/esm/diff-neOaT_vk.js +0 -31
  293. package/lib/esm/diff-neOaT_vk.js.map +0 -1
  294. package/lib/esm/dockerfile-lzx42-zz.js +0 -200
  295. package/lib/esm/dockerfile-lzx42-zz.js.map +0 -1
  296. package/lib/esm/dtd-FmzPLZcQ.js +0 -122
  297. package/lib/esm/dtd-FmzPLZcQ.js.map +0 -1
  298. package/lib/esm/dylan-1HtRK4GO.js +0 -338
  299. package/lib/esm/dylan-1HtRK4GO.js.map +0 -1
  300. package/lib/esm/ebnf-Nz-pnLHy.js +0 -152
  301. package/lib/esm/ebnf-Nz-pnLHy.js.map +0 -1
  302. package/lib/esm/ecl-lQsZhQz0.js +0 -191
  303. package/lib/esm/ecl-lQsZhQz0.js.map +0 -1
  304. package/lib/esm/eiffel-R_HiEkhx.js +0 -147
  305. package/lib/esm/eiffel-R_HiEkhx.js.map +0 -1
  306. package/lib/esm/elm-KYv4VTDg.js +0 -231
  307. package/lib/esm/elm-KYv4VTDg.js.map +0 -1
  308. package/lib/esm/erlang-7YaHCBIe.js +0 -582
  309. package/lib/esm/erlang-7YaHCBIe.js.map +0 -1
  310. package/lib/esm/factor-opBU9aTK.js +0 -66
  311. package/lib/esm/factor-opBU9aTK.js.map +0 -1
  312. package/lib/esm/fcl-jm31FmFz.js +0 -155
  313. package/lib/esm/fcl-jm31FmFz.js.map +0 -1
  314. package/lib/esm/forth-5NKbjnWh.js +0 -165
  315. package/lib/esm/forth-5NKbjnWh.js.map +0 -1
  316. package/lib/esm/fortran-dXm_-cb9.js +0 -173
  317. package/lib/esm/fortran-dXm_-cb9.js.map +0 -1
  318. package/lib/esm/gas-nsYVnsy-.js +0 -344
  319. package/lib/esm/gas-nsYVnsy-.js.map +0 -1
  320. package/lib/esm/gherkin-fzKpjm3M.js +0 -148
  321. package/lib/esm/gherkin-fzKpjm3M.js.map +0 -1
  322. package/lib/esm/go-Pn1qh7yl.js +0 -165
  323. package/lib/esm/go-Pn1qh7yl.js.map +0 -1
  324. package/lib/esm/groovy-DZY-8keZ.js +0 -231
  325. package/lib/esm/groovy-DZY-8keZ.js.map +0 -1
  326. package/lib/esm/haskell-JGh2upDd.js +0 -240
  327. package/lib/esm/haskell-JGh2upDd.js.map +0 -1
  328. package/lib/esm/haxe-1hvVK-Fy.js +0 -491
  329. package/lib/esm/haxe-1hvVK-Fy.js.map +0 -1
  330. package/lib/esm/http-mY1M77wn.js +0 -90
  331. package/lib/esm/http-mY1M77wn.js.map +0 -1
  332. package/lib/esm/idl-dy_653wH.js +0 -275
  333. package/lib/esm/idl-dy_653wH.js.map +0 -1
  334. package/lib/esm/index-1NetiFdJ.js +0 -90
  335. package/lib/esm/index-1NetiFdJ.js.map +0 -1
  336. package/lib/esm/index-2I_xbjAZ.js +0 -1012
  337. package/lib/esm/index-2I_xbjAZ.js.map +0 -1
  338. package/lib/esm/index-2huXYfuJ.js +0 -138
  339. package/lib/esm/index-2huXYfuJ.js.map +0 -1
  340. package/lib/esm/index-4x6_TVZv.js +0 -100
  341. package/lib/esm/index-4x6_TVZv.js.map +0 -1
  342. package/lib/esm/index-A-dNwMMf.js +0 -1872
  343. package/lib/esm/index-A-dNwMMf.js.map +0 -1
  344. package/lib/esm/index-AV99ipmP.js +0 -446
  345. package/lib/esm/index-AV99ipmP.js.map +0 -1
  346. package/lib/esm/index-PC2bahtq.js +0 -110
  347. package/lib/esm/index-PC2bahtq.js.map +0 -1
  348. package/lib/esm/index-QBYz82jZ.js +0 -378
  349. package/lib/esm/index-QBYz82jZ.js.map +0 -1
  350. package/lib/esm/index-W1pAMr_8.js +0 -142
  351. package/lib/esm/index-W1pAMr_8.js.map +0 -1
  352. package/lib/esm/index-Xzdc2jbA.js +0 -25207
  353. package/lib/esm/index-Xzdc2jbA.js.map +0 -1
  354. package/lib/esm/index-ZAtZWqJQ.js +0 -191
  355. package/lib/esm/index-ZAtZWqJQ.js.map +0 -1
  356. package/lib/esm/index-bnSKBrbD.js +0 -386
  357. package/lib/esm/index-bnSKBrbD.js.map +0 -1
  358. package/lib/esm/index-ftnOhuRS.js +0 -244
  359. package/lib/esm/index-ftnOhuRS.js.map +0 -1
  360. package/lib/esm/index-iQPB0Rdl.js +0 -343
  361. package/lib/esm/index-iQPB0Rdl.js.map +0 -1
  362. package/lib/esm/index-kPj3-TKp.js +0 -63
  363. package/lib/esm/index-kPj3-TKp.js.map +0 -1
  364. package/lib/esm/index-kgOR7SZ6.js +0 -336
  365. package/lib/esm/index-kgOR7SZ6.js.map +0 -1
  366. package/lib/esm/index-m49Bj3q7.js +0 -185
  367. package/lib/esm/index-m49Bj3q7.js.map +0 -1
  368. package/lib/esm/index-sWVjGw-3.js +0 -2497
  369. package/lib/esm/index-sWVjGw-3.js.map +0 -1
  370. package/lib/esm/index-twh8lL5o.js +0 -671
  371. package/lib/esm/index-twh8lL5o.js.map +0 -1
  372. package/lib/esm/index-v02MCz4_.js +0 -744
  373. package/lib/esm/index-v02MCz4_.js.map +0 -1
  374. package/lib/esm/index-wEXT8mbN.js +0 -512
  375. package/lib/esm/index-wEXT8mbN.js.map +0 -1
  376. package/lib/esm/index-wFIac5Kw.js +0 -1023
  377. package/lib/esm/index-wFIac5Kw.js.map +0 -1
  378. package/lib/esm/index-wg94ewRo.js +0 -425
  379. package/lib/esm/index-wg94ewRo.js.map +0 -1
  380. package/lib/esm/javascript-TMTz-YQH.js +0 -923
  381. package/lib/esm/javascript-TMTz-YQH.js.map +0 -1
  382. package/lib/esm/jinja2-sRIdliZK.js +0 -172
  383. package/lib/esm/jinja2-sRIdliZK.js.map +0 -1
  384. package/lib/esm/julia-fK0wmpGL.js +0 -370
  385. package/lib/esm/julia-fK0wmpGL.js.map +0 -1
  386. package/lib/esm/livescript-FRbAot3D.js +0 -260
  387. package/lib/esm/livescript-FRbAot3D.js.map +0 -1
  388. package/lib/esm/lua-t4FHEjvK.js +0 -138
  389. package/lib/esm/lua-t4FHEjvK.js.map +0 -1
  390. package/lib/esm/mathematica-sn_KGlYj.js +0 -154
  391. package/lib/esm/mathematica-sn_KGlYj.js.map +0 -1
  392. package/lib/esm/mbox-KvVC319E.js +0 -115
  393. package/lib/esm/mbox-KvVC319E.js.map +0 -1
  394. package/lib/esm/mirc-PzJ0zKSk.js +0 -177
  395. package/lib/esm/mirc-PzJ0zKSk.js.map +0 -1
  396. package/lib/esm/mllike-ZK411xkN.js +0 -347
  397. package/lib/esm/mllike-ZK411xkN.js.map +0 -1
  398. package/lib/esm/modelica-ZaHlRCbp.js +0 -193
  399. package/lib/esm/modelica-ZaHlRCbp.js.map +0 -1
  400. package/lib/esm/mscgen-Kkq4o4Zm.js +0 -150
  401. package/lib/esm/mscgen-Kkq4o4Zm.js.map +0 -1
  402. package/lib/esm/mumps-M8a87-rl.js +0 -130
  403. package/lib/esm/mumps-M8a87-rl.js.map +0 -1
  404. package/lib/esm/nginx-2LJIX23E.js +0 -164
  405. package/lib/esm/nginx-2LJIX23E.js.map +0 -1
  406. package/lib/esm/nsis-zvfFgMLi.js +0 -81
  407. package/lib/esm/nsis-zvfFgMLi.js.map +0 -1
  408. package/lib/esm/ntriples-tVkHy5bk.js +0 -142
  409. package/lib/esm/ntriples-tVkHy5bk.js.map +0 -1
  410. package/lib/esm/octave-mE4T5MF5.js +0 -113
  411. package/lib/esm/octave-mE4T5MF5.js.map +0 -1
  412. package/lib/esm/oz-q-LCsuVg.js +0 -236
  413. package/lib/esm/oz-q-LCsuVg.js.map +0 -1
  414. package/lib/esm/pascal-0IgUAn4C.js +0 -125
  415. package/lib/esm/pascal-0IgUAn4C.js.map +0 -1
  416. package/lib/esm/perl-AqxdYGac.js +0 -820
  417. package/lib/esm/perl-AqxdYGac.js.map +0 -1
  418. package/lib/esm/pig-ESM-IjQj.js +0 -150
  419. package/lib/esm/pig-ESM-IjQj.js.map +0 -1
  420. package/lib/esm/powershell-CLFP0L55.js +0 -382
  421. package/lib/esm/powershell-CLFP0L55.js.map +0 -1
  422. package/lib/esm/properties-oWHNzvb9.js +0 -63
  423. package/lib/esm/properties-oWHNzvb9.js.map +0 -1
  424. package/lib/esm/protobuf-c7eMmdcc.js +0 -55
  425. package/lib/esm/protobuf-c7eMmdcc.js.map +0 -1
  426. package/lib/esm/puppet-FjzvdRJr.js +0 -206
  427. package/lib/esm/puppet-FjzvdRJr.js.map +0 -1
  428. package/lib/esm/python-3Pv0tnvt.js +0 -390
  429. package/lib/esm/python-3Pv0tnvt.js.map +0 -1
  430. package/lib/esm/q-IImW8da6.js +0 -124
  431. package/lib/esm/q-IImW8da6.js.map +0 -1
  432. package/lib/esm/r-CnEkTvR0.js +0 -175
  433. package/lib/esm/r-CnEkTvR0.js.map +0 -1
  434. package/lib/esm/rpm-Q55-fEHj.js +0 -90
  435. package/lib/esm/rpm-Q55-fEHj.js.map +0 -1
  436. package/lib/esm/ruby-zhaGB3Kh.js +0 -288
  437. package/lib/esm/ruby-zhaGB3Kh.js.map +0 -1
  438. package/lib/esm/sas-Ur9jZIOV.js +0 -269
  439. package/lib/esm/sas-Ur9jZIOV.js.map +0 -1
  440. package/lib/esm/scheme-daT5-Rya.js +0 -264
  441. package/lib/esm/scheme-daT5-Rya.js.map +0 -1
  442. package/lib/esm/shell-cwFL0AYP.js +0 -146
  443. package/lib/esm/shell-cwFL0AYP.js.map +0 -1
  444. package/lib/esm/sieve-MlNXFFUq.js +0 -179
  445. package/lib/esm/sieve-MlNXFFUq.js.map +0 -1
  446. package/lib/esm/simple-mode-m1rsX7Gw.js +0 -136
  447. package/lib/esm/simple-mode-m1rsX7Gw.js.map +0 -1
  448. package/lib/esm/smalltalk-xrQICp9e.js +0 -154
  449. package/lib/esm/smalltalk-xrQICp9e.js.map +0 -1
  450. package/lib/esm/solr-PU3oPgQz.js +0 -81
  451. package/lib/esm/solr-PU3oPgQz.js.map +0 -1
  452. package/lib/esm/sparql--u8NRBii.js +0 -171
  453. package/lib/esm/sparql--u8NRBii.js.map +0 -1
  454. package/lib/esm/spreadsheet-QCp0LifX.js +0 -99
  455. package/lib/esm/spreadsheet-QCp0LifX.js.map +0 -1
  456. package/lib/esm/sql-dsGfl64h.js +0 -482
  457. package/lib/esm/sql-dsGfl64h.js.map +0 -1
  458. package/lib/esm/stex-WcLBzvkD.js +0 -247
  459. package/lib/esm/stex-WcLBzvkD.js.map +0 -1
  460. package/lib/esm/stylus--A5XAqOX.js +0 -751
  461. package/lib/esm/stylus--A5XAqOX.js.map +0 -1
  462. package/lib/esm/swift-qAm73i7G.js +0 -203
  463. package/lib/esm/swift-qAm73i7G.js.map +0 -1
  464. package/lib/esm/tcl-Kdc7qxc-.js +0 -126
  465. package/lib/esm/tcl-Kdc7qxc-.js.map +0 -1
  466. package/lib/esm/textile--sz8UrIz.js +0 -442
  467. package/lib/esm/textile--sz8UrIz.js.map +0 -1
  468. package/lib/esm/tiddlywiki-xNXTeBlQ.js +0 -279
  469. package/lib/esm/tiddlywiki-xNXTeBlQ.js.map +0 -1
  470. package/lib/esm/tiki-LCXjrNH3.js +0 -290
  471. package/lib/esm/tiki-LCXjrNH3.js.map +0 -1
  472. package/lib/esm/toml-Ac4tlBMn.js +0 -76
  473. package/lib/esm/toml-Ac4tlBMn.js.map +0 -1
  474. package/lib/esm/troff-LLW1x1Yz.js +0 -65
  475. package/lib/esm/troff-LLW1x1Yz.js.map +0 -1
  476. package/lib/esm/ttcn-ZYZ9FS3u.js +0 -258
  477. package/lib/esm/ttcn-ZYZ9FS3u.js.map +0 -1
  478. package/lib/esm/ttcn-cfg-qsvf3MfB.js +0 -202
  479. package/lib/esm/ttcn-cfg-qsvf3MfB.js.map +0 -1
  480. package/lib/esm/turtle-wq3TqOth.js +0 -142
  481. package/lib/esm/turtle-wq3TqOth.js.map +0 -1
  482. package/lib/esm/vb-86M_JuNP.js +0 -250
  483. package/lib/esm/vb-86M_JuNP.js.map +0 -1
  484. package/lib/esm/vbscript-GueAeVug.js +0 -321
  485. package/lib/esm/vbscript-GueAeVug.js.map +0 -1
  486. package/lib/esm/velocity-7PW9GXO2.js +0 -187
  487. package/lib/esm/velocity-7PW9GXO2.js.map +0 -1
  488. package/lib/esm/verilog-PXtXH14C.js +0 -566
  489. package/lib/esm/verilog-PXtXH14C.js.map +0 -1
  490. package/lib/esm/vhdl-I8eyK83X.js +0 -175
  491. package/lib/esm/vhdl-I8eyK83X.js.map +0 -1
  492. package/lib/esm/webidl-1f8ATJ66.js +0 -180
  493. package/lib/esm/webidl-1f8ATJ66.js.map +0 -1
  494. package/lib/esm/xquery-IYp28Wx6.js +0 -426
  495. package/lib/esm/xquery-IYp28Wx6.js.map +0 -1
  496. package/lib/esm/yacas-wkENB05f.js +0 -183
  497. package/lib/esm/yacas-wkENB05f.js.map +0 -1
  498. package/lib/esm/z80-GaXiLdiV.js +0 -103
  499. package/lib/esm/z80-GaXiLdiV.js.map +0 -1
@@ -1,566 +0,0 @@
1
- function mkVerilog(parserConfig) {
2
-
3
- var statementIndentUnit = parserConfig.statementIndentUnit,
4
- dontAlignCalls = parserConfig.dontAlignCalls,
5
- noIndentKeywords = parserConfig.noIndentKeywords || [],
6
- multiLineStrings = parserConfig.multiLineStrings,
7
- hooks = parserConfig.hooks || {};
8
-
9
- function words(str) {
10
- var obj = {}, words = str.split(" ");
11
- for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
12
- return obj;
13
- }
14
-
15
- /**
16
- * Keywords from IEEE 1800-2012
17
- */
18
- var keywords = words(
19
- "accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind " +
20
- "bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config " +
21
- "const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable " +
22
- "dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup " +
23
- "endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask " +
24
- "enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin " +
25
- "function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import " +
26
- "incdir include initial inout input inside instance int integer interconnect interface intersect join join_any " +
27
- "join_none large let liblist library local localparam logic longint macromodule matches medium modport module " +
28
- "nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed " +
29
- "parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup " +
30
- "pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg " +
31
- "reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime " +
32
- "s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify " +
33
- "specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on " +
34
- "table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior " +
35
- "trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void " +
36
- "wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor");
37
-
38
- /** Operators from IEEE 1800-2012
39
- unary_operator ::=
40
- + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
41
- binary_operator ::=
42
- + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | **
43
- | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<<
44
- | -> | <->
45
- inc_or_dec_operator ::= ++ | --
46
- unary_module_path_operator ::=
47
- ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~
48
- binary_module_path_operator ::=
49
- == | != | && | || | & | | | ^ | ^~ | ~^
50
- */
51
- var isOperatorChar = /[\+\-\*\/!~&|^%=?:]/;
52
- var isBracketChar = /[\[\]{}()]/;
53
-
54
- var unsignedNumber = /\d[0-9_]*/;
55
- var decimalLiteral = /\d*\s*'s?d\s*\d[0-9_]*/i;
56
- var binaryLiteral = /\d*\s*'s?b\s*[xz01][xz01_]*/i;
57
- var octLiteral = /\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i;
58
- var hexLiteral = /\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i;
59
- var realLiteral = /(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i;
60
-
61
- var closingBracketOrWord = /^((\w+)|[)}\]])/;
62
- var closingBracket = /[)}\]]/;
63
-
64
- var curPunc;
65
- var curKeyword;
66
-
67
- // Block openings which are closed by a matching keyword in the form of ("end" + keyword)
68
- // E.g. "task" => "endtask"
69
- var blockKeywords = words(
70
- "case checker class clocking config function generate interface module package " +
71
- "primitive program property specify sequence table task"
72
- );
73
-
74
- // Opening/closing pairs
75
- var openClose = {};
76
- for (var keyword in blockKeywords) {
77
- openClose[keyword] = "end" + keyword;
78
- }
79
- openClose["begin"] = "end";
80
- openClose["casex"] = "endcase";
81
- openClose["casez"] = "endcase";
82
- openClose["do" ] = "while";
83
- openClose["fork" ] = "join;join_any;join_none";
84
- openClose["covergroup"] = "endgroup";
85
-
86
- for (var i in noIndentKeywords) {
87
- var keyword = noIndentKeywords[i];
88
- if (openClose[keyword]) {
89
- openClose[keyword] = undefined;
90
- }
91
- }
92
-
93
- // Keywords which open statements that are ended with a semi-colon
94
- var statementKeywords = words("always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while");
95
-
96
- function tokenBase(stream, state) {
97
- var ch = stream.peek(), style;
98
- if (hooks[ch] && (style = hooks[ch](stream, state)) != false) return style;
99
- if (hooks.tokenBase && (style = hooks.tokenBase(stream, state)) != false)
100
- return style;
101
-
102
- if (/[,;:\.]/.test(ch)) {
103
- curPunc = stream.next();
104
- return null;
105
- }
106
- if (isBracketChar.test(ch)) {
107
- curPunc = stream.next();
108
- return "bracket";
109
- }
110
- // Macros (tick-defines)
111
- if (ch == '`') {
112
- stream.next();
113
- if (stream.eatWhile(/[\w\$_]/)) {
114
- return "def";
115
- } else {
116
- return null;
117
- }
118
- }
119
- // System calls
120
- if (ch == '$') {
121
- stream.next();
122
- if (stream.eatWhile(/[\w\$_]/)) {
123
- return "meta";
124
- } else {
125
- return null;
126
- }
127
- }
128
- // Time literals
129
- if (ch == '#') {
130
- stream.next();
131
- stream.eatWhile(/[\d_.]/);
132
- return "def";
133
- }
134
- // Strings
135
- if (ch == '"') {
136
- stream.next();
137
- state.tokenize = tokenString(ch);
138
- return state.tokenize(stream, state);
139
- }
140
- // Comments
141
- if (ch == "/") {
142
- stream.next();
143
- if (stream.eat("*")) {
144
- state.tokenize = tokenComment;
145
- return tokenComment(stream, state);
146
- }
147
- if (stream.eat("/")) {
148
- stream.skipToEnd();
149
- return "comment";
150
- }
151
- stream.backUp(1);
152
- }
153
-
154
- // Numeric literals
155
- if (stream.match(realLiteral) ||
156
- stream.match(decimalLiteral) ||
157
- stream.match(binaryLiteral) ||
158
- stream.match(octLiteral) ||
159
- stream.match(hexLiteral) ||
160
- stream.match(unsignedNumber) ||
161
- stream.match(realLiteral)) {
162
- return "number";
163
- }
164
-
165
- // Operators
166
- if (stream.eatWhile(isOperatorChar)) {
167
- return "meta";
168
- }
169
-
170
- // Keywords / plain variables
171
- if (stream.eatWhile(/[\w\$_]/)) {
172
- var cur = stream.current();
173
- if (keywords[cur]) {
174
- if (openClose[cur]) {
175
- curPunc = "newblock";
176
- }
177
- if (statementKeywords[cur]) {
178
- curPunc = "newstatement";
179
- }
180
- curKeyword = cur;
181
- return "keyword";
182
- }
183
- return "variable";
184
- }
185
-
186
- stream.next();
187
- return null;
188
- }
189
-
190
- function tokenString(quote) {
191
- return function(stream, state) {
192
- var escaped = false, next, end = false;
193
- while ((next = stream.next()) != null) {
194
- if (next == quote && !escaped) {end = true; break;}
195
- escaped = !escaped && next == "\\";
196
- }
197
- if (end || !(escaped || multiLineStrings))
198
- state.tokenize = tokenBase;
199
- return "string";
200
- };
201
- }
202
-
203
- function tokenComment(stream, state) {
204
- var maybeEnd = false, ch;
205
- while (ch = stream.next()) {
206
- if (ch == "/" && maybeEnd) {
207
- state.tokenize = tokenBase;
208
- break;
209
- }
210
- maybeEnd = (ch == "*");
211
- }
212
- return "comment";
213
- }
214
-
215
- function Context(indented, column, type, align, prev) {
216
- this.indented = indented;
217
- this.column = column;
218
- this.type = type;
219
- this.align = align;
220
- this.prev = prev;
221
- }
222
- function pushContext(state, col, type) {
223
- var indent = state.indented;
224
- var c = new Context(indent, col, type, null, state.context);
225
- return state.context = c;
226
- }
227
- function popContext(state) {
228
- var t = state.context.type;
229
- if (t == ")" || t == "]" || t == "}") {
230
- state.indented = state.context.indented;
231
- }
232
- return state.context = state.context.prev;
233
- }
234
-
235
- function isClosing(text, contextClosing) {
236
- if (text == contextClosing) {
237
- return true;
238
- } else {
239
- // contextClosing may be multiple keywords separated by ;
240
- var closingKeywords = contextClosing.split(";");
241
- for (var i in closingKeywords) {
242
- if (text == closingKeywords[i]) {
243
- return true;
244
- }
245
- }
246
- return false;
247
- }
248
- }
249
-
250
- function buildElectricInputRegEx() {
251
- // Reindentation should occur on any bracket char: {}()[]
252
- // or on a match of any of the block closing keywords, at
253
- // the end of a line
254
- var allClosings = [];
255
- for (var i in openClose) {
256
- if (openClose[i]) {
257
- var closings = openClose[i].split(";");
258
- for (var j in closings) {
259
- allClosings.push(closings[j]);
260
- }
261
- }
262
- }
263
- var re = new RegExp("[{}()\\[\\]]|(" + allClosings.join("|") + ")$");
264
- return re;
265
- }
266
-
267
- // Interface
268
- return {
269
- name: "verilog",
270
-
271
- startState: function(indentUnit) {
272
- var state = {
273
- tokenize: null,
274
- context: new Context(-indentUnit, 0, "top", false),
275
- indented: 0,
276
- startOfLine: true
277
- };
278
- if (hooks.startState) hooks.startState(state);
279
- return state;
280
- },
281
-
282
- token: function(stream, state) {
283
- var ctx = state.context;
284
- if (stream.sol()) {
285
- if (ctx.align == null) ctx.align = false;
286
- state.indented = stream.indentation();
287
- state.startOfLine = true;
288
- }
289
- if (hooks.token) {
290
- // Call hook, with an optional return value of a style to override verilog styling.
291
- var style = hooks.token(stream, state);
292
- if (style !== undefined) {
293
- return style;
294
- }
295
- }
296
- if (stream.eatSpace()) return null;
297
- curPunc = null;
298
- curKeyword = null;
299
- var style = (state.tokenize || tokenBase)(stream, state);
300
- if (style == "comment" || style == "meta" || style == "variable") return style;
301
- if (ctx.align == null) ctx.align = true;
302
-
303
- if (curPunc == ctx.type) {
304
- popContext(state);
305
- } else if ((curPunc == ";" && ctx.type == "statement") ||
306
- (ctx.type && isClosing(curKeyword, ctx.type))) {
307
- ctx = popContext(state);
308
- while (ctx && ctx.type == "statement") ctx = popContext(state);
309
- } else if (curPunc == "{") {
310
- pushContext(state, stream.column(), "}");
311
- } else if (curPunc == "[") {
312
- pushContext(state, stream.column(), "]");
313
- } else if (curPunc == "(") {
314
- pushContext(state, stream.column(), ")");
315
- } else if (ctx && ctx.type == "endcase" && curPunc == ":") {
316
- pushContext(state, stream.column(), "statement");
317
- } else if (curPunc == "newstatement") {
318
- pushContext(state, stream.column(), "statement");
319
- } else if (curPunc == "newblock") {
320
- if (curKeyword == "function" && ctx && (ctx.type == "statement" || ctx.type == "endgroup")) ; else if (curKeyword == "task" && ctx && ctx.type == "statement") ; else {
321
- var close = openClose[curKeyword];
322
- pushContext(state, stream.column(), close);
323
- }
324
- }
325
-
326
- state.startOfLine = false;
327
- return style;
328
- },
329
-
330
- indent: function(state, textAfter, cx) {
331
- if (state.tokenize != tokenBase && state.tokenize != null) return null;
332
- if (hooks.indent) {
333
- var fromHook = hooks.indent(state);
334
- if (fromHook >= 0) return fromHook;
335
- }
336
- var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
337
- if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
338
- var closing = false;
339
- var possibleClosing = textAfter.match(closingBracketOrWord);
340
- if (possibleClosing)
341
- closing = isClosing(possibleClosing[0], ctx.type);
342
- if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit || cx.unit);
343
- else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1);
344
- else if (ctx.type == ")" && !closing) return ctx.indented + (statementIndentUnit || cx.unit);
345
- else return ctx.indented + (closing ? 0 : cx.unit);
346
- },
347
-
348
- languageData: {
349
- indentOnInput: buildElectricInputRegEx(),
350
- commentTokens: {line: "//", block: {open: "/*", close: "*/"}}
351
- }
352
- };
353
- }
354
- const verilog = mkVerilog({});
355
-
356
- // TL-Verilog mode.
357
- // See tl-x.org for language spec.
358
- // See the mode in action at makerchip.com.
359
- // Contact: steve.hoover@redwoodeda.com
360
-
361
- // TLV Identifier prefixes.
362
- // Note that sign is not treated separately, so "+/-" versions of numeric identifiers
363
- // are included.
364
- var tlvIdentifierStyle = {
365
- "|": "link",
366
- ">": "property", // Should condition this off for > TLV 1c.
367
- "$": "variable",
368
- "$$": "variable",
369
- "?$": "qualifier",
370
- "?*": "qualifier",
371
- "-": "contentSeparator",
372
- "/": "property",
373
- "/-": "property",
374
- "@": "variableName.special",
375
- "@-": "variableName.special",
376
- "@++": "variableName.special",
377
- "@+=": "variableName.special",
378
- "@+=-": "variableName.special",
379
- "@--": "variableName.special",
380
- "@-=": "variableName.special",
381
- "%+": "tag",
382
- "%-": "tag",
383
- "%": "tag",
384
- ">>": "tag",
385
- "<<": "tag",
386
- "<>": "tag",
387
- "#": "tag", // Need to choose a style for this.
388
- "^": "attribute",
389
- "^^": "attribute",
390
- "^!": "attribute",
391
- "*": "variable",
392
- "**": "variable",
393
- "\\": "keyword",
394
- "\"": "comment"
395
- };
396
-
397
- // Lines starting with these characters define scope (result in indentation).
398
- var tlvScopePrefixChars = {
399
- "/": "beh-hier",
400
- ">": "beh-hier",
401
- "-": "phys-hier",
402
- "|": "pipe",
403
- "?": "when",
404
- "@": "stage",
405
- "\\": "keyword"
406
- };
407
- var tlvIndentUnit = 3;
408
- var tlvIdentMatch = /^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/; // Matches an identifier.
409
- // Note that ':' is excluded, because of it's use in [:].
410
- var tlvLineIndentationMatch = /^[! ] */;
411
- var tlvCommentMatch = /^\/[\/\*]/;
412
-
413
- const tlv = mkVerilog({
414
- hooks: {
415
- electricInput: false,
416
-
417
- // Return undefined for verilog tokenizing, or style for TLV token (null not used).
418
- // Standard CM styles are used for most formatting, but some TL-Verilog-specific highlighting
419
- // can be enabled with the definition of cm-tlv-* styles, including highlighting for:
420
- // - M4 tokens
421
- // - TLV scope indentation
422
- // - Statement delimitation (enabled by tlvTrackStatements)
423
- token: function(stream, state) {
424
- var style = undefined;
425
- var match; // Return value of pattern matches.
426
-
427
- // Set highlighting mode based on code region (TLV or SV).
428
- if (stream.sol() && ! state.tlvInBlockComment) {
429
- // Process region.
430
- if (stream.peek() == '\\') {
431
- style = "def";
432
- stream.skipToEnd();
433
- if (stream.string.match(/\\SV/)) {
434
- state.tlvCodeActive = false;
435
- } else if (stream.string.match(/\\TLV/)){
436
- state.tlvCodeActive = true;
437
- }
438
- }
439
- // Correct indentation in the face of a line prefix char.
440
- if (state.tlvCodeActive && stream.pos == 0 &&
441
- (state.indented == 0) && (match = stream.match(tlvLineIndentationMatch, false))) {
442
- state.indented = match[0].length;
443
- }
444
-
445
- // Compute indentation state:
446
- // o Auto indentation on next line
447
- // o Indentation scope styles
448
- var indented = state.indented;
449
- var depth = indented / tlvIndentUnit;
450
- if (depth <= state.tlvIndentationStyle.length) {
451
- // not deeper than current scope
452
-
453
- var blankline = stream.string.length == indented;
454
- var chPos = depth * tlvIndentUnit;
455
- if (chPos < stream.string.length) {
456
- var bodyString = stream.string.slice(chPos);
457
- var ch = bodyString[0];
458
- if (tlvScopePrefixChars[ch] && ((match = bodyString.match(tlvIdentMatch)) &&
459
- tlvIdentifierStyle[match[1]])) {
460
- // This line begins scope.
461
- // Next line gets indented one level.
462
- indented += tlvIndentUnit;
463
- // Style the next level of indentation (except non-region keyword identifiers,
464
- // which are statements themselves)
465
- if (!(ch == "\\" && chPos > 0)) {
466
- state.tlvIndentationStyle[depth] = tlvScopePrefixChars[ch];
467
- depth++;
468
- }
469
- }
470
- }
471
- // Clear out deeper indentation levels unless line is blank.
472
- if (!blankline) {
473
- while (state.tlvIndentationStyle.length > depth) {
474
- state.tlvIndentationStyle.pop();
475
- }
476
- }
477
- }
478
- // Set next level of indentation.
479
- state.tlvNextIndent = indented;
480
- }
481
-
482
- if (state.tlvCodeActive) {
483
-
484
- var match;
485
- if (style !== undefined) ; else if (state.tlvInBlockComment) {
486
- // In a block comment.
487
- if (stream.match(/^.*?\*\//)) {
488
- // Exit block comment.
489
- state.tlvInBlockComment = false;
490
- } else {
491
- stream.skipToEnd();
492
- }
493
- style = "comment";
494
- } else if ((match = stream.match(tlvCommentMatch)) && !state.tlvInBlockComment) {
495
- // Start comment.
496
- if (match[0] == "//") {
497
- // Line comment.
498
- stream.skipToEnd();
499
- } else {
500
- // Block comment.
501
- state.tlvInBlockComment = true;
502
- }
503
- style = "comment";
504
- } else if (match = stream.match(tlvIdentMatch)) {
505
- // looks like an identifier (or identifier prefix)
506
- var prefix = match[1];
507
- var mnemonic = match[2];
508
- if (// is identifier prefix
509
- tlvIdentifierStyle.hasOwnProperty(prefix) &&
510
- // has mnemonic or we're at the end of the line (maybe it hasn't been typed yet)
511
- (mnemonic.length > 0 || stream.eol())) {
512
- style = tlvIdentifierStyle[prefix];
513
- } else {
514
- // Just swallow one character and try again.
515
- // This enables subsequent identifier match with preceding symbol character, which
516
- // is legal within a statement. (Eg, !$reset). It also enables detection of
517
- // comment start with preceding symbols.
518
- stream.backUp(stream.current().length - 1);
519
- }
520
- } else if (stream.match(/^\t+/)) {
521
- // Highlight tabs, which are illegal.
522
- style = "invalid";
523
- } else if (stream.match(/^[\[\]{}\(\);\:]+/)) {
524
- // [:], (), {}, ;.
525
- style = "meta";
526
- } else if (match = stream.match(/^[mM]4([\+_])?[\w\d_]*/)) {
527
- // m4 pre proc
528
- style = (match[1] == "+") ? "keyword.special" : "keyword";
529
- } else if (stream.match(/^ +/)){
530
- // Skip over spaces.
531
- if (stream.eol()) {
532
- // Trailing spaces.
533
- style = "error";
534
- }
535
- } else if (stream.match(/^[\w\d_]+/)) {
536
- // alpha-numeric token.
537
- style = "number";
538
- } else {
539
- // Eat the next char w/ no formatting.
540
- stream.next();
541
- }
542
- } else {
543
- if (stream.match(/^[mM]4([\w\d_]*)/)) {
544
- // m4 pre proc
545
- style = "keyword";
546
- }
547
- }
548
- return style;
549
- },
550
-
551
- indent: function(state) {
552
- return (state.tlvCodeActive == true) ? state.tlvNextIndent : -1;
553
- },
554
-
555
- startState: function(state) {
556
- state.tlvIndentationStyle = []; // Styles to use for each level of indentation.
557
- state.tlvCodeActive = true; // True when we're in a TLV region (and at beginning of file).
558
- state.tlvNextIndent = -1; // The number of spaces to autoindent the next line if tlvCodeActive.
559
- state.tlvInBlockComment = false; // True inside /**/ comment.
560
- }
561
-
562
- }
563
- });
564
-
565
- export { tlv, verilog };
566
- //# sourceMappingURL=verilog-PXtXH14C.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verilog-PXtXH14C.js","sources":["../../../../node_modules/.pnpm/@codemirror+legacy-modes@6.3.3/node_modules/@codemirror/legacy-modes/mode/verilog.js"],"sourcesContent":["function mkVerilog(parserConfig) {\n\n var statementIndentUnit = parserConfig.statementIndentUnit,\n dontAlignCalls = parserConfig.dontAlignCalls,\n noIndentKeywords = parserConfig.noIndentKeywords || [],\n multiLineStrings = parserConfig.multiLineStrings,\n hooks = parserConfig.hooks || {};\n\n function words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n }\n\n /**\n * Keywords from IEEE 1800-2012\n */\n var keywords = words(\n \"accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind \" +\n \"bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config \" +\n \"const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable \" +\n \"dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup \" +\n \"endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask \" +\n \"enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin \" +\n \"function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import \" +\n \"incdir include initial inout input inside instance int integer interconnect interface intersect join join_any \" +\n \"join_none large let liblist library local localparam logic longint macromodule matches medium modport module \" +\n \"nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed \" +\n \"parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup \" +\n \"pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg \" +\n \"reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime \" +\n \"s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify \" +\n \"specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on \" +\n \"table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior \" +\n \"trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void \" +\n \"wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor\");\n\n /** Operators from IEEE 1800-2012\n unary_operator ::=\n + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~\n binary_operator ::=\n + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | **\n | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<<\n | -> | <->\n inc_or_dec_operator ::= ++ | --\n unary_module_path_operator ::=\n ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~\n binary_module_path_operator ::=\n == | != | && | || | & | | | ^ | ^~ | ~^\n */\n var isOperatorChar = /[\\+\\-\\*\\/!~&|^%=?:]/;\n var isBracketChar = /[\\[\\]{}()]/;\n\n var unsignedNumber = /\\d[0-9_]*/;\n var decimalLiteral = /\\d*\\s*'s?d\\s*\\d[0-9_]*/i;\n var binaryLiteral = /\\d*\\s*'s?b\\s*[xz01][xz01_]*/i;\n var octLiteral = /\\d*\\s*'s?o\\s*[xz0-7][xz0-7_]*/i;\n var hexLiteral = /\\d*\\s*'s?h\\s*[0-9a-fxz?][0-9a-fxz?_]*/i;\n var realLiteral = /(\\d[\\d_]*(\\.\\d[\\d_]*)?E-?[\\d_]+)|(\\d[\\d_]*\\.\\d[\\d_]*)/i;\n\n var closingBracketOrWord = /^((\\w+)|[)}\\]])/;\n var closingBracket = /[)}\\]]/;\n\n var curPunc;\n var curKeyword;\n\n // Block openings which are closed by a matching keyword in the form of (\"end\" + keyword)\n // E.g. \"task\" => \"endtask\"\n var blockKeywords = words(\n \"case checker class clocking config function generate interface module package \" +\n \"primitive program property specify sequence table task\"\n );\n\n // Opening/closing pairs\n var openClose = {};\n for (var keyword in blockKeywords) {\n openClose[keyword] = \"end\" + keyword;\n }\n openClose[\"begin\"] = \"end\";\n openClose[\"casex\"] = \"endcase\";\n openClose[\"casez\"] = \"endcase\";\n openClose[\"do\" ] = \"while\";\n openClose[\"fork\" ] = \"join;join_any;join_none\";\n openClose[\"covergroup\"] = \"endgroup\";\n\n for (var i in noIndentKeywords) {\n var keyword = noIndentKeywords[i];\n if (openClose[keyword]) {\n openClose[keyword] = undefined;\n }\n }\n\n // Keywords which open statements that are ended with a semi-colon\n var statementKeywords = words(\"always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while\");\n\n function tokenBase(stream, state) {\n var ch = stream.peek(), style;\n if (hooks[ch] && (style = hooks[ch](stream, state)) != false) return style;\n if (hooks.tokenBase && (style = hooks.tokenBase(stream, state)) != false)\n return style;\n\n if (/[,;:\\.]/.test(ch)) {\n curPunc = stream.next();\n return null;\n }\n if (isBracketChar.test(ch)) {\n curPunc = stream.next();\n return \"bracket\";\n }\n // Macros (tick-defines)\n if (ch == '`') {\n stream.next();\n if (stream.eatWhile(/[\\w\\$_]/)) {\n return \"def\";\n } else {\n return null;\n }\n }\n // System calls\n if (ch == '$') {\n stream.next();\n if (stream.eatWhile(/[\\w\\$_]/)) {\n return \"meta\";\n } else {\n return null;\n }\n }\n // Time literals\n if (ch == '#') {\n stream.next();\n stream.eatWhile(/[\\d_.]/);\n return \"def\";\n }\n // Strings\n if (ch == '\"') {\n stream.next();\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n // Comments\n if (ch == \"/\") {\n stream.next();\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n stream.backUp(1);\n }\n\n // Numeric literals\n if (stream.match(realLiteral) ||\n stream.match(decimalLiteral) ||\n stream.match(binaryLiteral) ||\n stream.match(octLiteral) ||\n stream.match(hexLiteral) ||\n stream.match(unsignedNumber) ||\n stream.match(realLiteral)) {\n return \"number\";\n }\n\n // Operators\n if (stream.eatWhile(isOperatorChar)) {\n return \"meta\";\n }\n\n // Keywords / plain variables\n if (stream.eatWhile(/[\\w\\$_]/)) {\n var cur = stream.current();\n if (keywords[cur]) {\n if (openClose[cur]) {\n curPunc = \"newblock\";\n }\n if (statementKeywords[cur]) {\n curPunc = \"newstatement\";\n }\n curKeyword = cur;\n return \"keyword\";\n }\n return \"variable\";\n }\n\n stream.next();\n return null;\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = tokenBase;\n return \"string\";\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n }\n\n function Context(indented, column, type, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.align = align;\n this.prev = prev;\n }\n function pushContext(state, col, type) {\n var indent = state.indented;\n var c = new Context(indent, col, type, null, state.context);\n return state.context = c;\n }\n function popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\") {\n state.indented = state.context.indented;\n }\n return state.context = state.context.prev;\n }\n\n function isClosing(text, contextClosing) {\n if (text == contextClosing) {\n return true;\n } else {\n // contextClosing may be multiple keywords separated by ;\n var closingKeywords = contextClosing.split(\";\");\n for (var i in closingKeywords) {\n if (text == closingKeywords[i]) {\n return true;\n }\n }\n return false;\n }\n }\n\n function buildElectricInputRegEx() {\n // Reindentation should occur on any bracket char: {}()[]\n // or on a match of any of the block closing keywords, at\n // the end of a line\n var allClosings = [];\n for (var i in openClose) {\n if (openClose[i]) {\n var closings = openClose[i].split(\";\");\n for (var j in closings) {\n allClosings.push(closings[j]);\n }\n }\n }\n var re = new RegExp(\"[{}()\\\\[\\\\]]|(\" + allClosings.join(\"|\") + \")$\");\n return re;\n }\n\n // Interface\n return {\n name: \"verilog\",\n\n startState: function(indentUnit) {\n var state = {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", false),\n indented: 0,\n startOfLine: true\n };\n if (hooks.startState) hooks.startState(state);\n return state;\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (hooks.token) {\n // Call hook, with an optional return value of a style to override verilog styling.\n var style = hooks.token(stream, state);\n if (style !== undefined) {\n return style;\n }\n }\n if (stream.eatSpace()) return null;\n curPunc = null;\n curKeyword = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\" || style == \"meta\" || style == \"variable\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == ctx.type) {\n popContext(state);\n } else if ((curPunc == \";\" && ctx.type == \"statement\") ||\n (ctx.type && isClosing(curKeyword, ctx.type))) {\n ctx = popContext(state);\n while (ctx && ctx.type == \"statement\") ctx = popContext(state);\n } else if (curPunc == \"{\") {\n pushContext(state, stream.column(), \"}\");\n } else if (curPunc == \"[\") {\n pushContext(state, stream.column(), \"]\");\n } else if (curPunc == \"(\") {\n pushContext(state, stream.column(), \")\");\n } else if (ctx && ctx.type == \"endcase\" && curPunc == \":\") {\n pushContext(state, stream.column(), \"statement\");\n } else if (curPunc == \"newstatement\") {\n pushContext(state, stream.column(), \"statement\");\n } else if (curPunc == \"newblock\") {\n if (curKeyword == \"function\" && ctx && (ctx.type == \"statement\" || ctx.type == \"endgroup\")) {\n // The 'function' keyword can appear in some other contexts where it actually does not\n // indicate a function (import/export DPI and covergroup definitions).\n // Do nothing in this case\n } else if (curKeyword == \"task\" && ctx && ctx.type == \"statement\") {\n // Same thing for task\n } else {\n var close = openClose[curKeyword];\n pushContext(state, stream.column(), close);\n }\n }\n\n state.startOfLine = false;\n return style;\n },\n\n indent: function(state, textAfter, cx) {\n if (state.tokenize != tokenBase && state.tokenize != null) return null;\n if (hooks.indent) {\n var fromHook = hooks.indent(state);\n if (fromHook >= 0) return fromHook;\n }\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n var closing = false;\n var possibleClosing = textAfter.match(closingBracketOrWord);\n if (possibleClosing)\n closing = isClosing(possibleClosing[0], ctx.type);\n if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit || cx.unit);\n else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1);\n else if (ctx.type == \")\" && !closing) return ctx.indented + (statementIndentUnit || cx.unit);\n else return ctx.indented + (closing ? 0 : cx.unit);\n },\n\n languageData: {\n indentOnInput: buildElectricInputRegEx(),\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}}\n }\n };\n};\n\nexport const verilog = mkVerilog({})\n\n// TL-Verilog mode.\n// See tl-x.org for language spec.\n// See the mode in action at makerchip.com.\n// Contact: steve.hoover@redwoodeda.com\n\n// TLV Identifier prefixes.\n// Note that sign is not treated separately, so \"+/-\" versions of numeric identifiers\n// are included.\nvar tlvIdentifierStyle = {\n \"|\": \"link\",\n \">\": \"property\", // Should condition this off for > TLV 1c.\n \"$\": \"variable\",\n \"$$\": \"variable\",\n \"?$\": \"qualifier\",\n \"?*\": \"qualifier\",\n \"-\": \"contentSeparator\",\n \"/\": \"property\",\n \"/-\": \"property\",\n \"@\": \"variableName.special\",\n \"@-\": \"variableName.special\",\n \"@++\": \"variableName.special\",\n \"@+=\": \"variableName.special\",\n \"@+=-\": \"variableName.special\",\n \"@--\": \"variableName.special\",\n \"@-=\": \"variableName.special\",\n \"%+\": \"tag\",\n \"%-\": \"tag\",\n \"%\": \"tag\",\n \">>\": \"tag\",\n \"<<\": \"tag\",\n \"<>\": \"tag\",\n \"#\": \"tag\", // Need to choose a style for this.\n \"^\": \"attribute\",\n \"^^\": \"attribute\",\n \"^!\": \"attribute\",\n \"*\": \"variable\",\n \"**\": \"variable\",\n \"\\\\\": \"keyword\",\n \"\\\"\": \"comment\"\n};\n\n// Lines starting with these characters define scope (result in indentation).\nvar tlvScopePrefixChars = {\n \"/\": \"beh-hier\",\n \">\": \"beh-hier\",\n \"-\": \"phys-hier\",\n \"|\": \"pipe\",\n \"?\": \"when\",\n \"@\": \"stage\",\n \"\\\\\": \"keyword\"\n};\nvar tlvIndentUnit = 3;\nvar tlvTrackStatements = false;\nvar tlvIdentMatch = /^([~!@#\\$%\\^&\\*-\\+=\\?\\/\\\\\\|'\"<>]+)([\\d\\w_]*)/; // Matches an identifier.\n// Note that ':' is excluded, because of it's use in [:].\nvar tlvLineIndentationMatch = /^[! ] */;\nvar tlvCommentMatch = /^\\/[\\/\\*]/;\n\nexport const tlv = mkVerilog({\n hooks: {\n electricInput: false,\n\n // Return undefined for verilog tokenizing, or style for TLV token (null not used).\n // Standard CM styles are used for most formatting, but some TL-Verilog-specific highlighting\n // can be enabled with the definition of cm-tlv-* styles, including highlighting for:\n // - M4 tokens\n // - TLV scope indentation\n // - Statement delimitation (enabled by tlvTrackStatements)\n token: function(stream, state) {\n var style = undefined;\n var match; // Return value of pattern matches.\n\n // Set highlighting mode based on code region (TLV or SV).\n if (stream.sol() && ! state.tlvInBlockComment) {\n // Process region.\n if (stream.peek() == '\\\\') {\n style = \"def\";\n stream.skipToEnd();\n if (stream.string.match(/\\\\SV/)) {\n state.tlvCodeActive = false;\n } else if (stream.string.match(/\\\\TLV/)){\n state.tlvCodeActive = true;\n }\n }\n // Correct indentation in the face of a line prefix char.\n if (state.tlvCodeActive && stream.pos == 0 &&\n (state.indented == 0) && (match = stream.match(tlvLineIndentationMatch, false))) {\n state.indented = match[0].length;\n }\n\n // Compute indentation state:\n // o Auto indentation on next line\n // o Indentation scope styles\n var indented = state.indented;\n var depth = indented / tlvIndentUnit;\n if (depth <= state.tlvIndentationStyle.length) {\n // not deeper than current scope\n\n var blankline = stream.string.length == indented;\n var chPos = depth * tlvIndentUnit;\n if (chPos < stream.string.length) {\n var bodyString = stream.string.slice(chPos);\n var ch = bodyString[0];\n if (tlvScopePrefixChars[ch] && ((match = bodyString.match(tlvIdentMatch)) &&\n tlvIdentifierStyle[match[1]])) {\n // This line begins scope.\n // Next line gets indented one level.\n indented += tlvIndentUnit;\n // Style the next level of indentation (except non-region keyword identifiers,\n // which are statements themselves)\n if (!(ch == \"\\\\\" && chPos > 0)) {\n state.tlvIndentationStyle[depth] = tlvScopePrefixChars[ch];\n if (tlvTrackStatements) {state.statementComment = false;}\n depth++;\n }\n }\n }\n // Clear out deeper indentation levels unless line is blank.\n if (!blankline) {\n while (state.tlvIndentationStyle.length > depth) {\n state.tlvIndentationStyle.pop();\n }\n }\n }\n // Set next level of indentation.\n state.tlvNextIndent = indented;\n }\n\n if (state.tlvCodeActive) {\n // Highlight as TLV.\n\n var beginStatement = false;\n if (tlvTrackStatements) {\n // This starts a statement if the position is at the scope level\n // and we're not within a statement leading comment.\n beginStatement =\n (stream.peek() != \" \") && // not a space\n (style === undefined) && // not a region identifier\n !state.tlvInBlockComment && // not in block comment\n //!stream.match(tlvCommentMatch, false) && // not comment start\n (stream.column() == state.tlvIndentationStyle.length * tlvIndentUnit); // at scope level\n if (beginStatement) {\n if (state.statementComment) {\n // statement already started by comment\n beginStatement = false;\n }\n state.statementComment =\n stream.match(tlvCommentMatch, false); // comment start\n }\n }\n\n var match;\n if (style !== undefined) {\n } else if (state.tlvInBlockComment) {\n // In a block comment.\n if (stream.match(/^.*?\\*\\//)) {\n // Exit block comment.\n state.tlvInBlockComment = false;\n if (tlvTrackStatements && !stream.eol()) {\n // Anything after comment is assumed to be real statement content.\n state.statementComment = false;\n }\n } else {\n stream.skipToEnd();\n }\n style = \"comment\";\n } else if ((match = stream.match(tlvCommentMatch)) && !state.tlvInBlockComment) {\n // Start comment.\n if (match[0] == \"//\") {\n // Line comment.\n stream.skipToEnd();\n } else {\n // Block comment.\n state.tlvInBlockComment = true;\n }\n style = \"comment\";\n } else if (match = stream.match(tlvIdentMatch)) {\n // looks like an identifier (or identifier prefix)\n var prefix = match[1];\n var mnemonic = match[2];\n if (// is identifier prefix\n tlvIdentifierStyle.hasOwnProperty(prefix) &&\n // has mnemonic or we're at the end of the line (maybe it hasn't been typed yet)\n (mnemonic.length > 0 || stream.eol())) {\n style = tlvIdentifierStyle[prefix];\n } else {\n // Just swallow one character and try again.\n // This enables subsequent identifier match with preceding symbol character, which\n // is legal within a statement. (Eg, !$reset). It also enables detection of\n // comment start with preceding symbols.\n stream.backUp(stream.current().length - 1);\n }\n } else if (stream.match(/^\\t+/)) {\n // Highlight tabs, which are illegal.\n style = \"invalid\";\n } else if (stream.match(/^[\\[\\]{}\\(\\);\\:]+/)) {\n // [:], (), {}, ;.\n style = \"meta\";\n } else if (match = stream.match(/^[mM]4([\\+_])?[\\w\\d_]*/)) {\n // m4 pre proc\n style = (match[1] == \"+\") ? \"keyword.special\" : \"keyword\";\n } else if (stream.match(/^ +/)){\n // Skip over spaces.\n if (stream.eol()) {\n // Trailing spaces.\n style = \"error\";\n }\n } else if (stream.match(/^[\\w\\d_]+/)) {\n // alpha-numeric token.\n style = \"number\";\n } else {\n // Eat the next char w/ no formatting.\n stream.next();\n }\n } else {\n if (stream.match(/^[mM]4([\\w\\d_]*)/)) {\n // m4 pre proc\n style = \"keyword\";\n }\n }\n return style;\n },\n\n indent: function(state) {\n return (state.tlvCodeActive == true) ? state.tlvNextIndent : -1;\n },\n\n startState: function(state) {\n state.tlvIndentationStyle = []; // Styles to use for each level of indentation.\n state.tlvCodeActive = true; // True when we're in a TLV region (and at beginning of file).\n state.tlvNextIndent = -1; // The number of spaces to autoindent the next line if tlvCodeActive.\n state.tlvInBlockComment = false; // True inside /**/ comment.\n if (tlvTrackStatements) {\n state.statementComment = false; // True inside a statement's header comment.\n }\n }\n\n }\n});\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}