broomhlda 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +201 -0
  3. data/lib/hl/define.ay +131 -0
  4. data/lib/hl/formatters/html.ay +26 -0
  5. data/lib/hl/lexer.ay +99 -0
  6. data/lib/hl/lexers/atomy.ay +122 -0
  7. data/lib/hl/lexers/haskell.ay +89 -0
  8. data/lib/hl/lexers/imported/abap.ay +43 -0
  9. data/lib/hl/lexers/imported/actionscript.ay +31 -0
  10. data/lib/hl/lexers/imported/actionscript3.ay +47 -0
  11. data/lib/hl/lexers/imported/ada.ay +107 -0
  12. data/lib/hl/lexers/imported/antlr.ay +95 -0
  13. data/lib/hl/lexers/imported/apacheconf.ay +29 -0
  14. data/lib/hl/lexers/imported/applescript.ay +48 -0
  15. data/lib/hl/lexers/imported/aspectj.ay +42 -0
  16. data/lib/hl/lexers/imported/asymptote.ay +64 -0
  17. data/lib/hl/lexers/imported/autohotkey.ay +76 -0
  18. data/lib/hl/lexers/imported/autoit.ay +64 -0
  19. data/lib/hl/lexers/imported/awk.ay +42 -0
  20. data/lib/hl/lexers/imported/bash.ay +63 -0
  21. data/lib/hl/lexers/imported/batch.ay +45 -0
  22. data/lib/hl/lexers/imported/bbcode.ay +23 -0
  23. data/lib/hl/lexers/imported/befunge.ay +26 -0
  24. data/lib/hl/lexers/imported/blitzmax.ay +44 -0
  25. data/lib/hl/lexers/imported/boo.ay +55 -0
  26. data/lib/hl/lexers/imported/brainfuck.ay +28 -0
  27. data/lib/hl/lexers/imported/bro.ay +57 -0
  28. data/lib/hl/lexers/imported/bugs.ay +31 -0
  29. data/lib/hl/lexers/imported/c.ay +84 -0
  30. data/lib/hl/lexers/imported/ca65.ay +26 -0
  31. data/lib/hl/lexers/imported/cbmbasicv2.ay +25 -0
  32. data/lib/hl/lexers/imported/ceylon.ay +47 -0
  33. data/lib/hl/lexers/imported/cfengine3.ay +50 -0
  34. data/lib/hl/lexers/imported/clojure.ay +32 -0
  35. data/lib/hl/lexers/imported/cmake.ay +38 -0
  36. data/lib/hl/lexers/imported/cobol.ay +44 -0
  37. data/lib/hl/lexers/imported/coffeescript.ay +79 -0
  38. data/lib/hl/lexers/imported/coldfusion.ay +36 -0
  39. data/lib/hl/lexers/imported/commonlisp.ay +65 -0
  40. data/lib/hl/lexers/imported/coq.ay +59 -0
  41. data/lib/hl/lexers/imported/croc.ay +37 -0
  42. data/lib/hl/lexers/imported/css.ay +55 -0
  43. data/lib/hl/lexers/imported/cuda.ay +84 -0
  44. data/lib/hl/lexers/imported/cython.ay +128 -0
  45. data/lib/hl/lexers/imported/d.ay +102 -0
  46. data/lib/hl/lexers/imported/darcspatch.ay +45 -0
  47. data/lib/hl/lexers/imported/dart.ay +84 -0
  48. data/lib/hl/lexers/imported/debiancontrol.ay +51 -0
  49. data/lib/hl/lexers/imported/dg.ay +61 -0
  50. data/lib/hl/lexers/imported/diff.ay +22 -0
  51. data/lib/hl/lexers/imported/django.ay +46 -0
  52. data/lib/hl/lexers/imported/dtd.ay +62 -0
  53. data/lib/hl/lexers/imported/dylan.ay +60 -0
  54. data/lib/hl/lexers/imported/dylanlid.ay +17 -0
  55. data/lib/hl/lexers/imported/ecl.ay +57 -0
  56. data/lib/hl/lexers/imported/elixir.ay +93 -0
  57. data/lib/hl/lexers/imported/erlang.ay +47 -0
  58. data/lib/hl/lexers/imported/factor.ay +89 -0
  59. data/lib/hl/lexers/imported/fancy.ay +54 -0
  60. data/lib/hl/lexers/imported/fantom.ay +149 -0
  61. data/lib/hl/lexers/imported/felix.ay +140 -0
  62. data/lib/hl/lexers/imported/fortran.ay +39 -0
  63. data/lib/hl/lexers/imported/foxpro.ay +37 -0
  64. data/lib/hl/lexers/imported/fsharp.ay +61 -0
  65. data/lib/hl/lexers/imported/gas.ay +51 -0
  66. data/lib/hl/lexers/imported/gettext.ay +21 -0
  67. data/lib/hl/lexers/imported/gherkin.ay +97 -0
  68. data/lib/hl/lexers/imported/glshader.ay +31 -0
  69. data/lib/hl/lexers/imported/gnuplot.ay +111 -0
  70. data/lib/hl/lexers/imported/go.ay +40 -0
  71. data/lib/hl/lexers/imported/gooddatacl.ay +33 -0
  72. data/lib/hl/lexers/imported/gosu.ay +58 -0
  73. data/lib/hl/lexers/imported/groff.ay +38 -0
  74. data/lib/hl/lexers/imported/groovy.ay +45 -0
  75. data/lib/hl/lexers/imported/haskell.ay +89 -0
  76. data/lib/hl/lexers/imported/haxe.ay +186 -0
  77. data/lib/hl/lexers/imported/hxml.ay +22 -0
  78. data/lib/hl/lexers/imported/hybris.ay +42 -0
  79. data/lib/hl/lexers/imported/idl.ay +23 -0
  80. data/lib/hl/lexers/imported/ini.ay +18 -0
  81. data/lib/hl/lexers/imported/io.ay +34 -0
  82. data/lib/hl/lexers/imported/ioke.ay +88 -0
  83. data/lib/hl/lexers/imported/irclogs.ay +24 -0
  84. data/lib/hl/lexers/imported/jags.ay +36 -0
  85. data/lib/hl/lexers/imported/java.ay +42 -0
  86. data/lib/hl/lexers/imported/javascript.ay +45 -0
  87. data/lib/hl/lexers/imported/json.ay +47 -0
  88. data/lib/hl/lexers/imported/julia.ay +60 -0
  89. data/lib/hl/lexers/imported/kconfig.ay +71 -0
  90. data/lib/hl/lexers/imported/koka.ay +104 -0
  91. data/lib/hl/lexers/imported/lasso.ay +143 -0
  92. data/lib/hl/lexers/imported/lighttpdconf.ay +24 -0
  93. data/lib/hl/lexers/imported/livescript.ay +82 -0
  94. data/lib/hl/lexers/imported/llvm.ay +36 -0
  95. data/lib/hl/lexers/imported/logtalk.ay +133 -0
  96. data/lib/hl/lexers/imported/lua.ay +56 -0
  97. data/lib/hl/lexers/imported/maql.ay +32 -0
  98. data/lib/hl/lexers/imported/matlab.ay +43 -0
  99. data/lib/hl/lexers/imported/minid.ay +37 -0
  100. data/lib/hl/lexers/imported/modula2.ay +63 -0
  101. data/lib/hl/lexers/imported/moinwiki.ay +33 -0
  102. data/lib/hl/lexers/imported/monkey.ay +84 -0
  103. data/lib/hl/lexers/imported/moocode.ay +26 -0
  104. data/lib/hl/lexers/imported/moonscript.ay +52 -0
  105. data/lib/hl/lexers/imported/mscgen.ay +35 -0
  106. data/lib/hl/lexers/imported/mupad.ay +36 -0
  107. data/lib/hl/lexers/imported/mysql.ay +37 -0
  108. data/lib/hl/lexers/imported/nasm.ay +52 -0
  109. data/lib/hl/lexers/imported/newlisp.ay +34 -0
  110. data/lib/hl/lexers/imported/newspeak.ay +49 -0
  111. data/lib/hl/lexers/imported/nginxconf.ay +41 -0
  112. data/lib/hl/lexers/imported/nimrod.ay +84 -0
  113. data/lib/hl/lexers/imported/nsis.ay +55 -0
  114. data/lib/hl/lexers/imported/numpy.ay +116 -0
  115. data/lib/hl/lexers/imported/objectivej.ay +120 -0
  116. data/lib/hl/lexers/imported/ocaml.ay +59 -0
  117. data/lib/hl/lexers/imported/octave.ay +39 -0
  118. data/lib/hl/lexers/imported/ooc.ay +45 -0
  119. data/lib/hl/lexers/imported/opa.ay +153 -0
  120. data/lib/hl/lexers/imported/openedge.ay +40 -0
  121. data/lib/hl/lexers/imported/perl.ay +130 -0
  122. data/lib/hl/lexers/imported/php.ay +63 -0
  123. data/lib/hl/lexers/imported/postscript.ay +39 -0
  124. data/lib/hl/lexers/imported/povray.ay +28 -0
  125. data/lib/hl/lexers/imported/powershell.ay +49 -0
  126. data/lib/hl/lexers/imported/prolog.ay +39 -0
  127. data/lib/hl/lexers/imported/properties.ay +17 -0
  128. data/lib/hl/lexers/imported/protobuf.ay +43 -0
  129. data/lib/hl/lexers/imported/puppet.ay +50 -0
  130. data/lib/hl/lexers/imported/pypylog.ay +44 -0
  131. data/lib/hl/lexers/imported/python.ay +116 -0
  132. data/lib/hl/lexers/imported/python3.ay +113 -0
  133. data/lib/hl/lexers/imported/qml.ay +47 -0
  134. data/lib/hl/lexers/imported/racket.ay +62 -0
  135. data/lib/hl/lexers/imported/ragel.ay +70 -0
  136. data/lib/hl/lexers/imported/rd.ay +22 -0
  137. data/lib/hl/lexers/imported/redcode.ay +23 -0
  138. data/lib/hl/lexers/imported/regedit.ay +25 -0
  139. data/lib/hl/lexers/imported/rpmspec.ay +57 -0
  140. data/lib/hl/lexers/imported/rust.ay +56 -0
  141. data/lib/hl/lexers/imported/s.ay +61 -0
  142. data/lib/hl/lexers/imported/scala.ay +72 -0
  143. data/lib/hl/lexers/imported/scheme.ay +31 -0
  144. data/lib/hl/lexers/imported/scilab.ay +37 -0
  145. data/lib/hl/lexers/imported/scss.ay +115 -0
  146. data/lib/hl/lexers/imported/smali.ay +71 -0
  147. data/lib/hl/lexers/imported/smalltalk.ay +93 -0
  148. data/lib/hl/lexers/imported/snobol.ay +42 -0
  149. data/lib/hl/lexers/imported/sourcepawn.ay +58 -0
  150. data/lib/hl/lexers/imported/sourceslist.ay +37 -0
  151. data/lib/hl/lexers/imported/sql.ay +31 -0
  152. data/lib/hl/lexers/imported/squidconf.ay +29 -0
  153. data/lib/hl/lexers/imported/stan.ay +38 -0
  154. data/lib/hl/lexers/imported/systemverilog.ay +65 -0
  155. data/lib/hl/lexers/imported/tcl.ay +110 -0
  156. data/lib/hl/lexers/imported/tcsh.ay +52 -0
  157. data/lib/hl/lexers/imported/tex.ay +49 -0
  158. data/lib/hl/lexers/imported/typescript.ay +51 -0
  159. data/lib/hl/lexers/imported/vala.ay +70 -0
  160. data/lib/hl/lexers/imported/vbnet.ay +62 -0
  161. data/lib/hl/lexers/imported/velocity.ay +50 -0
  162. data/lib/hl/lexers/imported/verilog.ay +61 -0
  163. data/lib/hl/lexers/imported/vgl.ay +25 -0
  164. data/lib/hl/lexers/imported/vhdl.ay +54 -0
  165. data/lib/hl/lexers/imported/vim.ay +28 -0
  166. data/lib/hl/lexers/imported/xml.ay +38 -0
  167. data/lib/hl/lexers/imported/xslt.ay +38 -0
  168. data/lib/hl/lexers/imported/xtend.ay +48 -0
  169. data/lib/hl/lexers/ruby.ay +238 -0
  170. data/lib/hl/state.ay +31 -0
  171. data/lib/hl/token.ay +8 -0
  172. data/lib/hl.ay +17 -0
  173. metadata +244 -0
@@ -0,0 +1,38 @@
1
+ use(require("atomy"))
2
+ use(require("hl/define"))
3
+
4
+ lexer = lexer:
5
+ name: "XSLT"
6
+ aliases: ["xslt"]
7
+ extensions: [".xsl", ".xslt", ".xpl"]
8
+ mimetypes: ["application/xsl+xml", "application/xslt+xml"]
9
+ start: .root
10
+ flags: Regexp MULTILINE
11
+
12
+ lex(comment):
13
+ r"[^-]+" is(comment)
14
+ r"-->" is(comment) -> pop
15
+ r"-" is(comment)
16
+
17
+ lex(tag):
18
+ r"\s+" is(text)
19
+ r"[\w.:-]+\s*=" is(name.attribute) -> go-to(attr)
20
+ r"/?\s*>" is(name.tag) -> pop
21
+
22
+ lex(root):
23
+ r"[^<&]+" is(text)
24
+ r"&\S*?;" is(name.entity)
25
+ r"\<\!\[CDATA\[.*?\]\]\>" is(comment.preproc)
26
+ r"<!--" is(comment) -> go-to(comment)
27
+ r"<\?.*?\?>" is(comment.preproc)
28
+ r"<![^>]*>" is(comment.preproc)
29
+ r"<\s*[\w:.-]+" is(name.tag) -> go-to(tag)
30
+ r"<\s*/\s*[\w:.-]+\s*>" is(name.tag)
31
+
32
+ lex(attr):
33
+ r"\s+" is(text)
34
+ r"\".*?\"" is(literal.string) -> pop
35
+ r"'.*?'" is(literal.string) -> pop
36
+ r"[^\s>]+" is(literal.string) -> pop
37
+
38
+ const-set(.Lexer, lexer)
@@ -0,0 +1,48 @@
1
+ use(require("atomy"))
2
+ use(require("hl/define"))
3
+
4
+ lexer = lexer:
5
+ name: "Xtend"
6
+ aliases: ["xtend"]
7
+ extensions: [".xtend"]
8
+ mimetypes: ["text/x-xtend"]
9
+ start: .root
10
+ flags: Regexp MULTILINE
11
+
12
+ lex(import):
13
+ r"[a-zA-Z0-9_.]+\*?" is(name.namespace) -> pop
14
+
15
+ lex(root):
16
+ r"^(\s*(?:[a-zA-Z_][a-zA-Z0-9_\.\[\]]*\s+)+?)([a-zA-Z_$][a-zA-Z0-9_$]*)(\s*)(\()" is(by-groups(using(self class), name.function, text, operator))
17
+ r"[^\S\n]+" is(text)
18
+ r"//.*?\n" is(comment.single)
19
+ r"/\*.*?\*/" is(comment.multiline)
20
+ r"@[a-zA-Z_][a-zA-Z0-9_\.]*" is(name.decorator)
21
+ r"(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while|IF|ELSE|ELSEIF|ENDIF|FOR|ENDFOR|SEPARATOR|BEFORE|AFTER)\b" is(keyword)
22
+ r"(def|abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\b" is(keyword.declaration)
23
+ r"(boolean|byte|char|double|float|int|long|short|void)\b" is(keyword.type)
24
+ r"(package)(\s+)" is(by-groups(keyword.namespace, text))
25
+ r"(true|false|null)\b" is(keyword.constant)
26
+ r"(class|interface)(\s+)" is(by-groups(keyword.declaration, text)) -> go-to(class)
27
+ r"(import)(\s+)" is(by-groups(keyword.namespace, text)) -> go-to(import)
28
+ r"(''')" is(literal.string) -> go-to(template)
29
+ r"(\187)" is(literal.string) -> go-to(template)
30
+ r"\"(\\\\|\\\"|[^\"])*\"" is(literal.string)
31
+ r"'(\\\\|\\'|[^'])*'" is(literal.string)
32
+ r"[a-zA-Z_][a-zA-Z0-9_]*:" is(name.label)
33
+ r"[a-zA-Z_\$][a-zA-Z0-9_]*" is(name)
34
+ r"[\126\^\*!%&\[\]\(\)\{\}<>\|+=:;,./?-]" is(operator)
35
+ r"[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?" is(literal.number.float)
36
+ r"0x[0-9a-fA-F]+" is(literal.number.hex)
37
+ r"[0-9]+L?" is(literal.number.integer)
38
+ r"\n" is(text)
39
+
40
+ lex(class):
41
+ r"[a-zA-Z_][a-zA-Z0-9_]*" is(name.class) -> pop
42
+
43
+ lex(template):
44
+ r"'''" is(literal.string) -> pop
45
+ r"\171" is(literal.string) -> pop
46
+ r"." is(literal.string)
47
+
48
+ const-set(.Lexer, lexer)
@@ -0,0 +1,238 @@
1
+ use(require("atomy"))
2
+ use(require("hl/define"))
3
+
4
+ lexer = lexer:
5
+ name: "Ruby"
6
+ aliases: ["rb", "ruby", "duby"]
7
+ extensions: [".rb", ".rbw", "Rakefile", ".rake", ".gemspec", ".rbx", ".duby"]
8
+ mimetypes: ["text/x-ruby", "application/x-ruby"]
9
+ start: .root
10
+ flags: Regexp MULTILINE
11
+
12
+ lex(interpolated-string):
13
+ any-of(string-intp)
14
+ r"[\\\#]" is(literal.string.other)
15
+ r"[^\\\#]+" is(literal.string.other)
16
+
17
+ lex(simple-sym):
18
+ any-of(string-intp-escaped)
19
+ r"[^\\\"\#]+" is(literal.string.symbol)
20
+ r"[\\\#]" is(literal.string.symbol)
21
+ r"\"" is(literal.string.symbol) -> pop
22
+
23
+ lex(end-part):
24
+ r".+" is(comment.preproc) -> pop
25
+
26
+ lex(cb-regex):
27
+ r"\\[\\\{\}]" is(literal.string.regex)
28
+ r"(?<!\\)\{" is(literal.string.regex) -> push
29
+ r"(?<!\\)\}[mixounse]*" is(literal.string.regex) -> pop
30
+ any-of(string-intp)
31
+ r"[\\\#\{\}]" is(literal.string.regex)
32
+ r"[^\\\#\{\}]+" is(literal.string.regex)
33
+
34
+ lex(cb-string):
35
+ r"\\[\\\{\}]" is(literal.string.other)
36
+ r"(?<!\\)\{" is(literal.string.other) -> push
37
+ r"(?<!\\)\}" is(literal.string.other) -> pop
38
+ r"[\\\#\{\}]" is(literal.string.other)
39
+ r"[^\\\#\{\}]+" is(literal.string.other)
40
+
41
+ lex(string-intp-escaped):
42
+ any-of(string-intp)
43
+ r"\\([\\abefnrstv\#\"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})" is(literal.string.escape)
44
+
45
+ lex(pa-regex):
46
+ r"\\[\\\(\)]" is(literal.string.regex)
47
+ r"(?<!\\)\(" is(literal.string.regex) -> push
48
+ r"(?<!\\)\)[mixounse]*" is(literal.string.regex) -> pop
49
+ any-of(string-intp)
50
+ r"[\\\#\(\)]" is(literal.string.regex)
51
+ r"[^\\\#\(\)]+" is(literal.string.regex)
52
+
53
+ lex(classname):
54
+ r"\(" is(punctuation) -> go-to(defexpr)
55
+ r"<<" is(operator) -> pop
56
+ r"[A-Z_]\w*" is(name.class) -> pop
57
+ r"" is(text) -> pop
58
+
59
+ lex(ab-intp-string):
60
+ r"\\[\\<>]" is(literal.string.other)
61
+ r"(?<!\\)<" is(literal.string.other) -> push
62
+ r"(?<!\\)>" is(literal.string.other) -> pop
63
+ any-of(string-intp-escaped)
64
+ r"[\\\#<>]" is(literal.string.other)
65
+ r"[^\\\#<>]+" is(literal.string.other)
66
+
67
+ lex(simple-backtick):
68
+ any-of(string-intp-escaped)
69
+ r"[^\\`\#]+" is(literal.string.backtick)
70
+ r"[\\\#]" is(literal.string.backtick)
71
+ r"`" is(literal.string.backtick) -> pop
72
+
73
+ lex(pa-string):
74
+ r"\\[\\\(\)]" is(literal.string.other)
75
+ r"(?<!\\)\(" is(literal.string.other) -> push
76
+ r"(?<!\\)\)" is(literal.string.other) -> pop
77
+ r"[\\\#\(\)]" is(literal.string.other)
78
+ r"[^\\\#\(\)]+" is(literal.string.other)
79
+
80
+ lex(cb-intp-string):
81
+ r"\\[\\\{\}]" is(literal.string.other)
82
+ r"(?<!\\)\{" is(literal.string.other) -> push
83
+ r"(?<!\\)\}" is(literal.string.other) -> pop
84
+ any-of(string-intp-escaped)
85
+ r"[\\\#\{\}]" is(literal.string.other)
86
+ r"[^\\\#\{\}]+" is(literal.string.other)
87
+
88
+ lex(ab-regex):
89
+ r"\\[\\<>]" is(literal.string.regex)
90
+ r"(?<!\\)<" is(literal.string.regex) -> push
91
+ r"(?<!\\)>[mixounse]*" is(literal.string.regex) -> pop
92
+ any-of(string-intp)
93
+ r"[\\\#<>]" is(literal.string.regex)
94
+ r"[^\\\#<>]+" is(literal.string.regex)
95
+
96
+ lex(pa-intp-string):
97
+ r"\\[\\\(\)]" is(literal.string.other)
98
+ r"(?<!\\)\(" is(literal.string.other) -> push
99
+ r"(?<!\\)\)" is(literal.string.other) -> pop
100
+ any-of(string-intp-escaped)
101
+ r"[\\\#\(\)]" is(literal.string.other)
102
+ r"[^\\\#\(\)]+" is(literal.string.other)
103
+
104
+ lex(ab-string):
105
+ r"\\[\\<>]" is(literal.string.other)
106
+ r"(?<!\\)<" is(literal.string.other) -> push
107
+ r"(?<!\\)>" is(literal.string.other) -> pop
108
+ r"[\\\#<>]" is(literal.string.other)
109
+ r"[^\\\#<>]+" is(literal.string.other)
110
+
111
+ lex(root):
112
+ r"\#.*?$" is(comment.single)
113
+ r"=begin\s.*?\n=end.*?$" is(comment.multiline)
114
+ r"(BEGIN|END|alias|begin|break|case|defined\?|do|else|elsif|end|ensure|for|if|in|next|redo|rescue|raise|retry|return|super|then|undef|unless|until|when|while|yield)\b" is(keyword)
115
+ r"(module)(\s+)([a-zA-Z_][a-zA-Z0-9_]*(::[a-zA-Z_][a-zA-Z0-9_]*)*)" is(by-groups(keyword, text, name.namespace))
116
+ r"(def)(\s+)" is(by-groups(keyword, text)) -> go-to(funcname)
117
+ r"def(?=[*%&^`\126+-/\[<>=])" is(keyword) -> go-to(funcname)
118
+ r"(class)(\s+)" is(by-groups(keyword, text)) -> go-to(classname)
119
+ r"(initialize|new|loop|include|extend|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|module_function|public|protected|true|false|nil)\b" is(keyword.pseudo)
120
+ r"(not|and|or)\b" is(operator.word)
121
+ r"(autoload|block_given|const_defined|eql|equal|frozen|include|instance_of|is_a|iterator|kind_of|method_defined|nil|private_method_defined|protected_method_defined|public_method_defined|respond_to|tainted)\?" is(name.builtin)
122
+ r"(chomp|chop|exit|gsub|sub)!" is(name.builtin)
123
+ r"(?<!\.)(Array|Float|Integer|String|__id__|__send__|abort|ancestors|at_exit|autoload|binding|callcc|caller|catch|chomp|chop|class_eval|class_variables|clone|const_defined\?|const_get|const_missing|const_set|constants|display|dup|eval|exec|exit|extend|fail|fork|format|freeze|getc|gets|global_variables|gsub|hash|id|included_modules|inspect|instance_eval|instance_method|instance_methods|instance_variable_get|instance_variable_set|instance_variables|lambda|load|local_variables|loop|method|method_missing|methods|module_eval|name|object_id|open|p|print|printf|private_class_method|private_instance_methods|private_methods|proc|protected_instance_methods|protected_methods|public_class_method|public_instance_methods|public_methods|putc|puts|raise|rand|readline|readlines|require|scan|select|self|send|set_trace_func|singleton_methods|sleep|split|sprintf|srand|sub|syscall|system|taint|test|throw|to_a|to_s|trace_var|trap|untaint|untrace_var|warn)\b" is(name.builtin)
124
+ r"__(FILE|LINE)__\b" is(name.builtin.pseudo)
125
+ --r"(?<!\w)(<<-?)([\"`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)" is(TODO)
126
+ --r"(<<-?)(\"|\')()(\2)(.*?\n)" is(TODO)
127
+ r"__END__" is(comment.preproc) -> go-to(end-part)
128
+ r"(?:^|(?<=[=<>\126!])|(?<=(?:\s|;)when\s)|(?<=(?:\s|;)or\s)|(?<=(?:\s|;)and\s)|(?<=(?:\s|;|\.)index\s)|(?<=(?:\s|;|\.)scan\s)|(?<=(?:\s|;|\.)sub\s)|(?<=(?:\s|;|\.)sub!\s)|(?<=(?:\s|;|\.)gsub\s)|(?<=(?:\s|;|\.)gsub!\s)|(?<=(?:\s|;|\.)match\s)|(?<=(?:\s|;)if\s)|(?<=(?:\s|;)elsif\s)|(?<=^when\s)|(?<=^index\s)|(?<=^scan\s)|(?<=^sub\s)|(?<=^gsub\s)|(?<=^sub!\s)|(?<=^gsub!\s)|(?<=^match\s)|(?<=^if\s)|(?<=^elsif\s))(\s*)(/)" is(by-groups(text, literal.string.regex)) -> go-to(multiline-regex)
129
+ r"(?<=\(|,|\[)/" is(literal.string.regex) -> go-to(multiline-regex)
130
+ r"(\s+)(/)(?![\s=])" is(by-groups(text, literal.string.regex)) -> go-to(multiline-regex)
131
+ r"(0_?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?" is(by-groups(literal.number.oct, text, operator))
132
+ r"(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?" is(by-groups(literal.number.hex, text, operator))
133
+ r"(0b[01]+(?:_[01]+)*)(\s*)([/?])?" is(by-groups(literal.number.bin, text, operator))
134
+ r"([\d]+(?:_\d+)*)(\s*)([/?])?" is(by-groups(literal.number.integer, text, operator))
135
+ r"@@[a-zA-Z_][a-zA-Z0-9_]*" is(name.variable.class)
136
+ r"@[a-zA-Z_][a-zA-Z0-9_]*" is(name.variable.instance)
137
+ r"\$[a-zA-Z0-9_]+" is(name.variable.global)
138
+ r"\$[!@&`\'+\126=/\\,;.<>_*$?:\"]" is(name.variable.global)
139
+ r"\$-[0adFiIlpvw]" is(name.variable.global)
140
+ r"::" is(operator)
141
+ any-of(strings)
142
+ r"\?(\\[MC]-)*(\\([\\abefnrstv\#\"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)" is(literal.string.char)
143
+ r"[A-Z][a-zA-Z0-9_]+" is(name.constant)
144
+ r"(\.|::)([a-zA-Z_]\w*[\!\?]?|[*%&^`\126+-/\[<>=])" is(by-groups(operator, name))
145
+ r"[a-zA-Z_]\w*[\!\?]?" is(name)
146
+ r"(\[|\]|\*\*|<<?|>>?|>=|<=|<=>|=\126|={3}|!\126|&&?|\|\||\.{1,3})" is(operator)
147
+ r"[-+/*%=<>&!^|\126]=?" is(operator)
148
+ r"[(){};,/?:\\]" is(punctuation)
149
+ r"\s+" is(text)
150
+
151
+ lex(sb-intp-string):
152
+ r"\\[\\\[\]]" is(literal.string.other)
153
+ r"(?<!\\)\[" is(literal.string.other) -> push
154
+ r"(?<!\\)\]" is(literal.string.other) -> pop
155
+ any-of(string-intp-escaped)
156
+ r"[\\\#\[\]]" is(literal.string.other)
157
+ r"[^\\\#\[\]]+" is(literal.string.other)
158
+
159
+ lex(sb-string):
160
+ r"\\[\\\[\]]" is(literal.string.other)
161
+ r"(?<!\\)\[" is(literal.string.other) -> push
162
+ r"(?<!\\)\]" is(literal.string.other) -> pop
163
+ r"[\\\#\[\]]" is(literal.string.other)
164
+ r"[^\\\#\[\]]+" is(literal.string.other)
165
+
166
+ lex(funcname):
167
+ r"\(" is(punctuation) -> go-to(defexpr)
168
+ r"(?:([a-zA-Z_][a-zA-Z0-9_]*)(\.))?([a-zA-Z_]\w*[\!\?]?|\*\*?|[-+]@?|[/%&|^`\126]|\[\]=?|<<|>>|<=?>|>=?|===?)" is(by-groups(name.class, operator, name.function)) -> pop
169
+ r"" is(text) -> pop
170
+
171
+ lex(in-intp):
172
+ r"}" is(literal.string.interpol) -> pop
173
+ any-of(root)
174
+
175
+ lex(interpolated-regex):
176
+ any-of(string-intp)
177
+ r"[\\\#]" is(literal.string.regex)
178
+ r"[^\\\#]+" is(literal.string.regex)
179
+
180
+ lex(simple-string):
181
+ any-of(string-intp-escaped)
182
+ r"[^\\\"\#]+" is(literal.string.double)
183
+ r"[\\\#]" is(literal.string.double)
184
+ r"\"" is(literal.string.double) -> pop
185
+
186
+ lex(sb-regex):
187
+ r"\\[\\\[\]]" is(literal.string.regex)
188
+ r"(?<!\\)\[" is(literal.string.regex) -> push
189
+ r"(?<!\\)\][mixounse]*" is(literal.string.regex) -> pop
190
+ any-of(string-intp)
191
+ r"[\\\#\[\]]" is(literal.string.regex)
192
+ r"[^\\\#\[\]]+" is(literal.string.regex)
193
+
194
+ lex(defexpr):
195
+ r"(\))(\.|::)?" is(by-groups(punctuation, operator)) -> pop
196
+ r"\(" is(operator) -> push
197
+ any-of(root)
198
+
199
+ lex(multiline-regex):
200
+ any-of(string-intp)
201
+ r"\\\\" is(literal.string.regex)
202
+ r"\\/" is(literal.string.regex)
203
+ r"[\\\#]" is(literal.string.regex)
204
+ r"[^\\/\#]+" is(literal.string.regex)
205
+ r"/[mixounse]*" is(literal.string.regex) -> pop
206
+
207
+ lex(strings):
208
+ r"\:@{0,2}([a-zA-Z_]\w*[\!\?]?|\*\*?|[-+]@?|[/%&|^`\126]|\[\]=?|<<|>>|<=?>|>=?|===?)" is(literal.string.symbol)
209
+ r":'(\\\\|\\'|[^'])*'" is(literal.string.symbol)
210
+ r"'(\\\\|\\'|[^'])*'" is(literal.string.single)
211
+ r":\"" is(literal.string.symbol) -> go-to(simple-sym)
212
+ r"\"" is(literal.string.double) -> go-to(simple-string)
213
+ r"(?<!\.)`" is(literal.string.backtick) -> go-to(simple-backtick)
214
+ r"%[QWx]?\{" is(literal.string.other) -> go-to(cb-intp-string)
215
+ r"%[qsw]\{" is(literal.string.other) -> go-to(cb-string)
216
+ r"%r\{" is(literal.string.regex) -> go-to(cb-regex)
217
+ r"%[QWx]?\[" is(literal.string.other) -> go-to(sb-intp-string)
218
+ r"%[qsw]\[" is(literal.string.other) -> go-to(sb-string)
219
+ r"%r\[" is(literal.string.regex) -> go-to(sb-regex)
220
+ r"%[QWx]?\(" is(literal.string.other) -> go-to(pa-intp-string)
221
+ r"%[qsw]\(" is(literal.string.other) -> go-to(pa-string)
222
+ r"%r\(" is(literal.string.regex) -> go-to(pa-regex)
223
+ r"%[QWx]?<" is(literal.string.other) -> go-to(ab-intp-string)
224
+ r"%[qsw]<" is(literal.string.other) -> go-to(ab-string)
225
+ r"%r<" is(literal.string.regex) -> go-to(ab-regex)
226
+ r"%r([^a-zA-Z0-9])((?:\\\2|(?!\2).)*)(\2[mixounse]*)" is(literal.string.regex)
227
+ r"%[qsw]([^a-zA-Z0-9])((?:\\\1|(?!\1).)*)\1" is(literal.string.other)
228
+ r"(%[QWx]([^a-zA-Z0-9]))((?:\\\2|(?!\2).)*)(\2)" is(literal.string)
229
+ r"(?<=[-+/*%=<>&!^|\126,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)" is(by-groups(text, literal.string.other))
230
+ r"^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)" is(by-groups(text, literal.string.other))
231
+ r"(%([^a-zA-Z0-9\s]))((?:\\\2|(?!\2).)*)(\2)" is(literal.string)
232
+
233
+ lex(string-intp):
234
+ r"\#{" is(literal.string.interpol) -> go-to(in-intp)
235
+ r"\#@@?[a-zA-Z_][a-zA-Z0-9_]*" is(literal.string.interpol)
236
+ r"\#\$[a-zA-Z_][a-zA-Z0-9_]*" is(literal.string.interpol)
237
+
238
+ const-set(.Lexer, lexer)
data/lib/hl/state.ay ADDED
@@ -0,0 +1,31 @@
1
+ use(require("atomy"))
2
+
3
+ data(State):
4
+ Continue
5
+ GoTo(@matchers, @next)
6
+ Pop
7
+ PopNum(@num)
8
+ Push
9
+ DoAll(@states)
10
+ Combined(@matchers)
11
+
12
+ def(Continue apply(_, _)):
13
+ nil
14
+
15
+ def(GoTo apply(s, d)):
16
+ s << @matchers fetch(@next) call(d)
17
+
18
+ def(Push apply(s, _)):
19
+ s << s last
20
+
21
+ def(Pop apply(s, _)):
22
+ s pop
23
+
24
+ def(PopNum apply(s, _)):
25
+ s pop(@num)
26
+
27
+ def(DoAll apply(s, d)):
28
+ @states each [sub]: sub apply(s, d)
29
+
30
+ def(Combined apply(s, d)):
31
+ s << @matchers inject([]) [a, m]: a + m call(d)
data/lib/hl/token.ay ADDED
@@ -0,0 +1,8 @@
1
+ use(require("atomy"))
2
+
3
+ data(Type):
4
+ Tagged(@tag)
5
+ Using(@lexer)
6
+ ByGroups(@types)
7
+
8
+ data(Token(@type, @contents))
data/lib/hl.ay ADDED
@@ -0,0 +1,17 @@
1
+ use(require("atomy"))
2
+
3
+ here = File expand-path("../", __FILE__)
4
+
5
+ $LOAD_PATH unshift(here)
6
+
7
+ def(load(lexer)):
8
+ do {
9
+ require(
10
+ File expand-path(
11
+ "../hl/lexers/" + lexer downcase
12
+ __FILE__)) Lexer
13
+ } rescue:
14
+ LoadError: require(
15
+ File expand-path(
16
+ "../hl/lexers/imported/" + lexer downcase
17
+ __FILE__)) Lexer
metadata ADDED
@@ -0,0 +1,244 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: broomhlda
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Alex Suraci
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: atomy
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.6.2
20
+ type: :runtime
21
+ prerelease: false
22
+ requirement: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.6.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.4'
34
+ type: :development
35
+ prerelease: false
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.4'
41
+ description: "\n A DSL for authoring lexers, largely based on Pygments (with many
42
+ of its\n lexers auto-converted).\n "
43
+ email:
44
+ - suraci.alex@gmail.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - LICENSE.md
50
+ - lib/hl.ay
51
+ - lib/hl/define.ay
52
+ - lib/hl/formatters/html.ay
53
+ - lib/hl/lexer.ay
54
+ - lib/hl/lexers/atomy.ay
55
+ - lib/hl/lexers/haskell.ay
56
+ - lib/hl/lexers/imported/abap.ay
57
+ - lib/hl/lexers/imported/actionscript.ay
58
+ - lib/hl/lexers/imported/actionscript3.ay
59
+ - lib/hl/lexers/imported/ada.ay
60
+ - lib/hl/lexers/imported/antlr.ay
61
+ - lib/hl/lexers/imported/apacheconf.ay
62
+ - lib/hl/lexers/imported/applescript.ay
63
+ - lib/hl/lexers/imported/aspectj.ay
64
+ - lib/hl/lexers/imported/asymptote.ay
65
+ - lib/hl/lexers/imported/autohotkey.ay
66
+ - lib/hl/lexers/imported/autoit.ay
67
+ - lib/hl/lexers/imported/awk.ay
68
+ - lib/hl/lexers/imported/bash.ay
69
+ - lib/hl/lexers/imported/batch.ay
70
+ - lib/hl/lexers/imported/bbcode.ay
71
+ - lib/hl/lexers/imported/befunge.ay
72
+ - lib/hl/lexers/imported/blitzmax.ay
73
+ - lib/hl/lexers/imported/boo.ay
74
+ - lib/hl/lexers/imported/brainfuck.ay
75
+ - lib/hl/lexers/imported/bro.ay
76
+ - lib/hl/lexers/imported/bugs.ay
77
+ - lib/hl/lexers/imported/c.ay
78
+ - lib/hl/lexers/imported/ca65.ay
79
+ - lib/hl/lexers/imported/cbmbasicv2.ay
80
+ - lib/hl/lexers/imported/ceylon.ay
81
+ - lib/hl/lexers/imported/cfengine3.ay
82
+ - lib/hl/lexers/imported/clojure.ay
83
+ - lib/hl/lexers/imported/cmake.ay
84
+ - lib/hl/lexers/imported/cobol.ay
85
+ - lib/hl/lexers/imported/coffeescript.ay
86
+ - lib/hl/lexers/imported/coldfusion.ay
87
+ - lib/hl/lexers/imported/commonlisp.ay
88
+ - lib/hl/lexers/imported/coq.ay
89
+ - lib/hl/lexers/imported/croc.ay
90
+ - lib/hl/lexers/imported/css.ay
91
+ - lib/hl/lexers/imported/cuda.ay
92
+ - lib/hl/lexers/imported/cython.ay
93
+ - lib/hl/lexers/imported/d.ay
94
+ - lib/hl/lexers/imported/darcspatch.ay
95
+ - lib/hl/lexers/imported/dart.ay
96
+ - lib/hl/lexers/imported/debiancontrol.ay
97
+ - lib/hl/lexers/imported/dg.ay
98
+ - lib/hl/lexers/imported/diff.ay
99
+ - lib/hl/lexers/imported/django.ay
100
+ - lib/hl/lexers/imported/dtd.ay
101
+ - lib/hl/lexers/imported/dylan.ay
102
+ - lib/hl/lexers/imported/dylanlid.ay
103
+ - lib/hl/lexers/imported/ecl.ay
104
+ - lib/hl/lexers/imported/elixir.ay
105
+ - lib/hl/lexers/imported/erlang.ay
106
+ - lib/hl/lexers/imported/factor.ay
107
+ - lib/hl/lexers/imported/fancy.ay
108
+ - lib/hl/lexers/imported/fantom.ay
109
+ - lib/hl/lexers/imported/felix.ay
110
+ - lib/hl/lexers/imported/fortran.ay
111
+ - lib/hl/lexers/imported/foxpro.ay
112
+ - lib/hl/lexers/imported/fsharp.ay
113
+ - lib/hl/lexers/imported/gas.ay
114
+ - lib/hl/lexers/imported/gettext.ay
115
+ - lib/hl/lexers/imported/gherkin.ay
116
+ - lib/hl/lexers/imported/glshader.ay
117
+ - lib/hl/lexers/imported/gnuplot.ay
118
+ - lib/hl/lexers/imported/go.ay
119
+ - lib/hl/lexers/imported/gooddatacl.ay
120
+ - lib/hl/lexers/imported/gosu.ay
121
+ - lib/hl/lexers/imported/groff.ay
122
+ - lib/hl/lexers/imported/groovy.ay
123
+ - lib/hl/lexers/imported/haskell.ay
124
+ - lib/hl/lexers/imported/haxe.ay
125
+ - lib/hl/lexers/imported/hxml.ay
126
+ - lib/hl/lexers/imported/hybris.ay
127
+ - lib/hl/lexers/imported/idl.ay
128
+ - lib/hl/lexers/imported/ini.ay
129
+ - lib/hl/lexers/imported/io.ay
130
+ - lib/hl/lexers/imported/ioke.ay
131
+ - lib/hl/lexers/imported/irclogs.ay
132
+ - lib/hl/lexers/imported/jags.ay
133
+ - lib/hl/lexers/imported/java.ay
134
+ - lib/hl/lexers/imported/javascript.ay
135
+ - lib/hl/lexers/imported/json.ay
136
+ - lib/hl/lexers/imported/julia.ay
137
+ - lib/hl/lexers/imported/kconfig.ay
138
+ - lib/hl/lexers/imported/koka.ay
139
+ - lib/hl/lexers/imported/lasso.ay
140
+ - lib/hl/lexers/imported/lighttpdconf.ay
141
+ - lib/hl/lexers/imported/livescript.ay
142
+ - lib/hl/lexers/imported/llvm.ay
143
+ - lib/hl/lexers/imported/logtalk.ay
144
+ - lib/hl/lexers/imported/lua.ay
145
+ - lib/hl/lexers/imported/maql.ay
146
+ - lib/hl/lexers/imported/matlab.ay
147
+ - lib/hl/lexers/imported/minid.ay
148
+ - lib/hl/lexers/imported/modula2.ay
149
+ - lib/hl/lexers/imported/moinwiki.ay
150
+ - lib/hl/lexers/imported/monkey.ay
151
+ - lib/hl/lexers/imported/moocode.ay
152
+ - lib/hl/lexers/imported/moonscript.ay
153
+ - lib/hl/lexers/imported/mscgen.ay
154
+ - lib/hl/lexers/imported/mupad.ay
155
+ - lib/hl/lexers/imported/mysql.ay
156
+ - lib/hl/lexers/imported/nasm.ay
157
+ - lib/hl/lexers/imported/newlisp.ay
158
+ - lib/hl/lexers/imported/newspeak.ay
159
+ - lib/hl/lexers/imported/nginxconf.ay
160
+ - lib/hl/lexers/imported/nimrod.ay
161
+ - lib/hl/lexers/imported/nsis.ay
162
+ - lib/hl/lexers/imported/numpy.ay
163
+ - lib/hl/lexers/imported/objectivej.ay
164
+ - lib/hl/lexers/imported/ocaml.ay
165
+ - lib/hl/lexers/imported/octave.ay
166
+ - lib/hl/lexers/imported/ooc.ay
167
+ - lib/hl/lexers/imported/opa.ay
168
+ - lib/hl/lexers/imported/openedge.ay
169
+ - lib/hl/lexers/imported/perl.ay
170
+ - lib/hl/lexers/imported/php.ay
171
+ - lib/hl/lexers/imported/postscript.ay
172
+ - lib/hl/lexers/imported/povray.ay
173
+ - lib/hl/lexers/imported/powershell.ay
174
+ - lib/hl/lexers/imported/prolog.ay
175
+ - lib/hl/lexers/imported/properties.ay
176
+ - lib/hl/lexers/imported/protobuf.ay
177
+ - lib/hl/lexers/imported/puppet.ay
178
+ - lib/hl/lexers/imported/pypylog.ay
179
+ - lib/hl/lexers/imported/python.ay
180
+ - lib/hl/lexers/imported/python3.ay
181
+ - lib/hl/lexers/imported/qml.ay
182
+ - lib/hl/lexers/imported/racket.ay
183
+ - lib/hl/lexers/imported/ragel.ay
184
+ - lib/hl/lexers/imported/rd.ay
185
+ - lib/hl/lexers/imported/redcode.ay
186
+ - lib/hl/lexers/imported/regedit.ay
187
+ - lib/hl/lexers/imported/rpmspec.ay
188
+ - lib/hl/lexers/imported/rust.ay
189
+ - lib/hl/lexers/imported/s.ay
190
+ - lib/hl/lexers/imported/scala.ay
191
+ - lib/hl/lexers/imported/scheme.ay
192
+ - lib/hl/lexers/imported/scilab.ay
193
+ - lib/hl/lexers/imported/scss.ay
194
+ - lib/hl/lexers/imported/smali.ay
195
+ - lib/hl/lexers/imported/smalltalk.ay
196
+ - lib/hl/lexers/imported/snobol.ay
197
+ - lib/hl/lexers/imported/sourcepawn.ay
198
+ - lib/hl/lexers/imported/sourceslist.ay
199
+ - lib/hl/lexers/imported/sql.ay
200
+ - lib/hl/lexers/imported/squidconf.ay
201
+ - lib/hl/lexers/imported/stan.ay
202
+ - lib/hl/lexers/imported/systemverilog.ay
203
+ - lib/hl/lexers/imported/tcl.ay
204
+ - lib/hl/lexers/imported/tcsh.ay
205
+ - lib/hl/lexers/imported/tex.ay
206
+ - lib/hl/lexers/imported/typescript.ay
207
+ - lib/hl/lexers/imported/vala.ay
208
+ - lib/hl/lexers/imported/vbnet.ay
209
+ - lib/hl/lexers/imported/velocity.ay
210
+ - lib/hl/lexers/imported/verilog.ay
211
+ - lib/hl/lexers/imported/vgl.ay
212
+ - lib/hl/lexers/imported/vhdl.ay
213
+ - lib/hl/lexers/imported/vim.ay
214
+ - lib/hl/lexers/imported/xml.ay
215
+ - lib/hl/lexers/imported/xslt.ay
216
+ - lib/hl/lexers/imported/xtend.ay
217
+ - lib/hl/lexers/ruby.ay
218
+ - lib/hl/state.ay
219
+ - lib/hl/token.ay
220
+ homepage: http://atomy-lang.org
221
+ licenses:
222
+ - Apache-2.0
223
+ metadata: {}
224
+ post_install_message:
225
+ rdoc_options: []
226
+ require_paths:
227
+ - lib
228
+ required_ruby_version: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ required_rubygems_version: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ requirements: []
239
+ rubyforge_project:
240
+ rubygems_version: 2.4.8
241
+ signing_key:
242
+ specification_version: 4
243
+ summary: broomhlda syntax highlighter and tokenizer
244
+ test_files: []