rouge_ecl 0.0.1

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 (319) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +26 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +17 -0
  5. data/lib/rouge.rb +82 -0
  6. data/lib/rouge/cli.rb +429 -0
  7. data/lib/rouge/demos/abap +6 -0
  8. data/lib/rouge/demos/actionscript +4 -0
  9. data/lib/rouge/demos/apache +21 -0
  10. data/lib/rouge/demos/apiblueprint +33 -0
  11. data/lib/rouge/demos/applescript +2 -0
  12. data/lib/rouge/demos/awk +4 -0
  13. data/lib/rouge/demos/biml +38 -0
  14. data/lib/rouge/demos/bsl +7 -0
  15. data/lib/rouge/demos/c +8 -0
  16. data/lib/rouge/demos/ceylon +7 -0
  17. data/lib/rouge/demos/cfscript +18 -0
  18. data/lib/rouge/demos/clojure +5 -0
  19. data/lib/rouge/demos/cmake +7 -0
  20. data/lib/rouge/demos/coffeescript +5 -0
  21. data/lib/rouge/demos/common_lisp +1 -0
  22. data/lib/rouge/demos/conf +4 -0
  23. data/lib/rouge/demos/console +6 -0
  24. data/lib/rouge/demos/coq +13 -0
  25. data/lib/rouge/demos/cpp +8 -0
  26. data/lib/rouge/demos/csharp +5 -0
  27. data/lib/rouge/demos/css +4 -0
  28. data/lib/rouge/demos/d +16 -0
  29. data/lib/rouge/demos/dart +6 -0
  30. data/lib/rouge/demos/diff +7 -0
  31. data/lib/rouge/demos/digdag +19 -0
  32. data/lib/rouge/demos/docker +9 -0
  33. data/lib/rouge/demos/dot +5 -0
  34. data/lib/rouge/demos/ecl +1 -0
  35. data/lib/rouge/demos/eiffel +30 -0
  36. data/lib/rouge/demos/elixir +1 -0
  37. data/lib/rouge/demos/elm +4 -0
  38. data/lib/rouge/demos/erb +1 -0
  39. data/lib/rouge/demos/erlang +7 -0
  40. data/lib/rouge/demos/factor +5 -0
  41. data/lib/rouge/demos/fortran +22 -0
  42. data/lib/rouge/demos/fsharp +12 -0
  43. data/lib/rouge/demos/gherkin +17 -0
  44. data/lib/rouge/demos/glsl +14 -0
  45. data/lib/rouge/demos/go +7 -0
  46. data/lib/rouge/demos/gradle +10 -0
  47. data/lib/rouge/demos/graphql +17 -0
  48. data/lib/rouge/demos/groovy +9 -0
  49. data/lib/rouge/demos/hack +5 -0
  50. data/lib/rouge/demos/haml +5 -0
  51. data/lib/rouge/demos/handlebars +7 -0
  52. data/lib/rouge/demos/haskell +6 -0
  53. data/lib/rouge/demos/html +8 -0
  54. data/lib/rouge/demos/http +14 -0
  55. data/lib/rouge/demos/hylang +10 -0
  56. data/lib/rouge/demos/idlang +8 -0
  57. data/lib/rouge/demos/igorpro +9 -0
  58. data/lib/rouge/demos/ini +4 -0
  59. data/lib/rouge/demos/io +11 -0
  60. data/lib/rouge/demos/irb +4 -0
  61. data/lib/rouge/demos/irb_output +2 -0
  62. data/lib/rouge/demos/java +5 -0
  63. data/lib/rouge/demos/javascript +1 -0
  64. data/lib/rouge/demos/jinja +9 -0
  65. data/lib/rouge/demos/json +1 -0
  66. data/lib/rouge/demos/json-doc +1 -0
  67. data/lib/rouge/demos/jsonnet +28 -0
  68. data/lib/rouge/demos/jsx +17 -0
  69. data/lib/rouge/demos/julia +11 -0
  70. data/lib/rouge/demos/kotlin +3 -0
  71. data/lib/rouge/demos/lasso +12 -0
  72. data/lib/rouge/demos/liquid +11 -0
  73. data/lib/rouge/demos/literate_coffeescript +3 -0
  74. data/lib/rouge/demos/literate_haskell +7 -0
  75. data/lib/rouge/demos/llvm +20 -0
  76. data/lib/rouge/demos/lua +12 -0
  77. data/lib/rouge/demos/make +6 -0
  78. data/lib/rouge/demos/markdown +4 -0
  79. data/lib/rouge/demos/matlab +6 -0
  80. data/lib/rouge/demos/moonscript +16 -0
  81. data/lib/rouge/demos/mosel +10 -0
  82. data/lib/rouge/demos/mxml +22 -0
  83. data/lib/rouge/demos/nasm +26 -0
  84. data/lib/rouge/demos/nginx +5 -0
  85. data/lib/rouge/demos/nim +27 -0
  86. data/lib/rouge/demos/nix +19 -0
  87. data/lib/rouge/demos/objective_c +18 -0
  88. data/lib/rouge/demos/ocaml +12 -0
  89. data/lib/rouge/demos/pascal +14 -0
  90. data/lib/rouge/demos/perl +5 -0
  91. data/lib/rouge/demos/php +3 -0
  92. data/lib/rouge/demos/plaintext +1 -0
  93. data/lib/rouge/demos/plist +142 -0
  94. data/lib/rouge/demos/pony +17 -0
  95. data/lib/rouge/demos/powershell +49 -0
  96. data/lib/rouge/demos/praat +26 -0
  97. data/lib/rouge/demos/prolog +9 -0
  98. data/lib/rouge/demos/prometheus +9 -0
  99. data/lib/rouge/demos/properties +7 -0
  100. data/lib/rouge/demos/protobuf +5 -0
  101. data/lib/rouge/demos/puppet +6 -0
  102. data/lib/rouge/demos/python +6 -0
  103. data/lib/rouge/demos/q +2 -0
  104. data/lib/rouge/demos/qml +9 -0
  105. data/lib/rouge/demos/r +8 -0
  106. data/lib/rouge/demos/racket +24 -0
  107. data/lib/rouge/demos/ruby +9 -0
  108. data/lib/rouge/demos/rust +12 -0
  109. data/lib/rouge/demos/sass +3 -0
  110. data/lib/rouge/demos/scala +3 -0
  111. data/lib/rouge/demos/scheme +4 -0
  112. data/lib/rouge/demos/scss +5 -0
  113. data/lib/rouge/demos/sed +4 -0
  114. data/lib/rouge/demos/shell +2 -0
  115. data/lib/rouge/demos/sieve +10 -0
  116. data/lib/rouge/demos/slim +17 -0
  117. data/lib/rouge/demos/smalltalk +6 -0
  118. data/lib/rouge/demos/smarty +12 -0
  119. data/lib/rouge/demos/sml +4 -0
  120. data/lib/rouge/demos/sql +1 -0
  121. data/lib/rouge/demos/swift +5 -0
  122. data/lib/rouge/demos/tap +5 -0
  123. data/lib/rouge/demos/tcl +1 -0
  124. data/lib/rouge/demos/tex +1 -0
  125. data/lib/rouge/demos/toml +9 -0
  126. data/lib/rouge/demos/tsx +17 -0
  127. data/lib/rouge/demos/tulip +13 -0
  128. data/lib/rouge/demos/turtle +26 -0
  129. data/lib/rouge/demos/twig +9 -0
  130. data/lib/rouge/demos/typescript +1 -0
  131. data/lib/rouge/demos/vala +8 -0
  132. data/lib/rouge/demos/vb +4 -0
  133. data/lib/rouge/demos/verilog +27 -0
  134. data/lib/rouge/demos/vhdl +23 -0
  135. data/lib/rouge/demos/viml +14 -0
  136. data/lib/rouge/demos/vue +11 -0
  137. data/lib/rouge/demos/wollok +11 -0
  138. data/lib/rouge/demos/xml +2 -0
  139. data/lib/rouge/demos/yaml +4 -0
  140. data/lib/rouge/formatter.rb +75 -0
  141. data/lib/rouge/formatters/html.rb +37 -0
  142. data/lib/rouge/formatters/html_inline.rb +30 -0
  143. data/lib/rouge/formatters/html_legacy.rb +44 -0
  144. data/lib/rouge/formatters/html_linewise.rb +27 -0
  145. data/lib/rouge/formatters/html_pygments.rb +16 -0
  146. data/lib/rouge/formatters/html_table.rb +61 -0
  147. data/lib/rouge/formatters/null.rb +19 -0
  148. data/lib/rouge/formatters/terminal256.rb +180 -0
  149. data/lib/rouge/guesser.rb +55 -0
  150. data/lib/rouge/guessers/disambiguation.rb +101 -0
  151. data/lib/rouge/guessers/filename.rb +25 -0
  152. data/lib/rouge/guessers/glob_mapping.rb +43 -0
  153. data/lib/rouge/guessers/mimetype.rb +14 -0
  154. data/lib/rouge/guessers/modeline.rb +44 -0
  155. data/lib/rouge/guessers/source.rb +29 -0
  156. data/lib/rouge/guessers/util.rb +32 -0
  157. data/lib/rouge/lexer.rb +461 -0
  158. data/lib/rouge/lexers/abap.rb +238 -0
  159. data/lib/rouge/lexers/actionscript.rb +195 -0
  160. data/lib/rouge/lexers/apache.rb +71 -0
  161. data/lib/rouge/lexers/apache/keywords.yml +764 -0
  162. data/lib/rouge/lexers/apiblueprint.rb +47 -0
  163. data/lib/rouge/lexers/apple_script.rb +367 -0
  164. data/lib/rouge/lexers/awk.rb +161 -0
  165. data/lib/rouge/lexers/biml.rb +41 -0
  166. data/lib/rouge/lexers/bsl.rb +81 -0
  167. data/lib/rouge/lexers/c.rb +212 -0
  168. data/lib/rouge/lexers/ceylon.rb +123 -0
  169. data/lib/rouge/lexers/cfscript.rb +153 -0
  170. data/lib/rouge/lexers/clojure.rb +112 -0
  171. data/lib/rouge/lexers/cmake.rb +206 -0
  172. data/lib/rouge/lexers/coffeescript.rb +174 -0
  173. data/lib/rouge/lexers/common_lisp.rb +345 -0
  174. data/lib/rouge/lexers/conf.rb +24 -0
  175. data/lib/rouge/lexers/console.rb +136 -0
  176. data/lib/rouge/lexers/coq.rb +187 -0
  177. data/lib/rouge/lexers/cpp.rb +78 -0
  178. data/lib/rouge/lexers/csharp.rb +114 -0
  179. data/lib/rouge/lexers/css.rb +273 -0
  180. data/lib/rouge/lexers/d.rb +176 -0
  181. data/lib/rouge/lexers/dart.rb +104 -0
  182. data/lib/rouge/lexers/diff.rb +31 -0
  183. data/lib/rouge/lexers/digdag.rb +68 -0
  184. data/lib/rouge/lexers/docker.rb +50 -0
  185. data/lib/rouge/lexers/dot.rb +68 -0
  186. data/lib/rouge/lexers/ecl.rb +138 -0
  187. data/lib/rouge/lexers/eiffel.rb +65 -0
  188. data/lib/rouge/lexers/elixir.rb +133 -0
  189. data/lib/rouge/lexers/elm.rb +89 -0
  190. data/lib/rouge/lexers/erb.rb +52 -0
  191. data/lib/rouge/lexers/erlang.rb +114 -0
  192. data/lib/rouge/lexers/factor.rb +302 -0
  193. data/lib/rouge/lexers/fortran.rb +176 -0
  194. data/lib/rouge/lexers/fsharp.rb +118 -0
  195. data/lib/rouge/lexers/gherkin.rb +137 -0
  196. data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
  197. data/lib/rouge/lexers/glsl.rb +135 -0
  198. data/lib/rouge/lexers/go.rb +174 -0
  199. data/lib/rouge/lexers/gradle.rb +37 -0
  200. data/lib/rouge/lexers/graphql.rb +243 -0
  201. data/lib/rouge/lexers/groovy.rb +112 -0
  202. data/lib/rouge/lexers/hack.rb +48 -0
  203. data/lib/rouge/lexers/haml.rb +229 -0
  204. data/lib/rouge/lexers/handlebars.rb +79 -0
  205. data/lib/rouge/lexers/haskell.rb +182 -0
  206. data/lib/rouge/lexers/html.rb +139 -0
  207. data/lib/rouge/lexers/http.rb +80 -0
  208. data/lib/rouge/lexers/hylang.rb +93 -0
  209. data/lib/rouge/lexers/idlang.rb +310 -0
  210. data/lib/rouge/lexers/igorpro.rb +408 -0
  211. data/lib/rouge/lexers/ini.rb +53 -0
  212. data/lib/rouge/lexers/io.rb +68 -0
  213. data/lib/rouge/lexers/irb.rb +66 -0
  214. data/lib/rouge/lexers/java.rb +87 -0
  215. data/lib/rouge/lexers/javascript.rb +281 -0
  216. data/lib/rouge/lexers/jinja.rb +137 -0
  217. data/lib/rouge/lexers/json.rb +29 -0
  218. data/lib/rouge/lexers/json_doc.rb +23 -0
  219. data/lib/rouge/lexers/jsonnet.rb +151 -0
  220. data/lib/rouge/lexers/jsx.rb +102 -0
  221. data/lib/rouge/lexers/julia.rb +172 -0
  222. data/lib/rouge/lexers/kotlin.rb +79 -0
  223. data/lib/rouge/lexers/lasso.rb +214 -0
  224. data/lib/rouge/lexers/lasso/keywords.yml +446 -0
  225. data/lib/rouge/lexers/liquid.rb +287 -0
  226. data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
  227. data/lib/rouge/lexers/literate_haskell.rb +36 -0
  228. data/lib/rouge/lexers/llvm.rb +80 -0
  229. data/lib/rouge/lexers/lua.rb +125 -0
  230. data/lib/rouge/lexers/lua/builtins.rb +22 -0
  231. data/lib/rouge/lexers/make.rb +112 -0
  232. data/lib/rouge/lexers/markdown.rb +154 -0
  233. data/lib/rouge/lexers/matlab.rb +71 -0
  234. data/lib/rouge/lexers/matlab/builtins.rb +11 -0
  235. data/lib/rouge/lexers/moonscript.rb +114 -0
  236. data/lib/rouge/lexers/mosel.rb +231 -0
  237. data/lib/rouge/lexers/mxml.rb +68 -0
  238. data/lib/rouge/lexers/nasm.rb +198 -0
  239. data/lib/rouge/lexers/nginx.rb +71 -0
  240. data/lib/rouge/lexers/nim.rb +152 -0
  241. data/lib/rouge/lexers/nix.rb +205 -0
  242. data/lib/rouge/lexers/objective_c.rb +194 -0
  243. data/lib/rouge/lexers/ocaml.rb +100 -0
  244. data/lib/rouge/lexers/pascal.rb +66 -0
  245. data/lib/rouge/lexers/perl.rb +196 -0
  246. data/lib/rouge/lexers/php.rb +193 -0
  247. data/lib/rouge/lexers/php/builtins.rb +194 -0
  248. data/lib/rouge/lexers/plain_text.rb +26 -0
  249. data/lib/rouge/lexers/plist.rb +45 -0
  250. data/lib/rouge/lexers/pony.rb +93 -0
  251. data/lib/rouge/lexers/powershell.rb +678 -0
  252. data/lib/rouge/lexers/praat.rb +350 -0
  253. data/lib/rouge/lexers/prolog.rb +59 -0
  254. data/lib/rouge/lexers/prometheus.rb +121 -0
  255. data/lib/rouge/lexers/properties.rb +51 -0
  256. data/lib/rouge/lexers/protobuf.rb +70 -0
  257. data/lib/rouge/lexers/puppet.rb +128 -0
  258. data/lib/rouge/lexers/python.rb +232 -0
  259. data/lib/rouge/lexers/q.rb +123 -0
  260. data/lib/rouge/lexers/qml.rb +73 -0
  261. data/lib/rouge/lexers/r.rb +89 -0
  262. data/lib/rouge/lexers/racket.rb +543 -0
  263. data/lib/rouge/lexers/ruby.rb +437 -0
  264. data/lib/rouge/lexers/rust.rb +192 -0
  265. data/lib/rouge/lexers/sass.rb +74 -0
  266. data/lib/rouge/lexers/sass/common.rb +180 -0
  267. data/lib/rouge/lexers/scala.rb +142 -0
  268. data/lib/rouge/lexers/scheme.rb +112 -0
  269. data/lib/rouge/lexers/scss.rb +34 -0
  270. data/lib/rouge/lexers/sed.rb +172 -0
  271. data/lib/rouge/lexers/shell.rb +189 -0
  272. data/lib/rouge/lexers/sieve.rb +96 -0
  273. data/lib/rouge/lexers/slim.rb +228 -0
  274. data/lib/rouge/lexers/smalltalk.rb +116 -0
  275. data/lib/rouge/lexers/smarty.rb +80 -0
  276. data/lib/rouge/lexers/sml.rb +344 -0
  277. data/lib/rouge/lexers/sql.rb +140 -0
  278. data/lib/rouge/lexers/swift.rb +181 -0
  279. data/lib/rouge/lexers/tap.rb +87 -0
  280. data/lib/rouge/lexers/tcl.rb +192 -0
  281. data/lib/rouge/lexers/tex.rb +69 -0
  282. data/lib/rouge/lexers/toml.rb +67 -0
  283. data/lib/rouge/lexers/tsx.rb +19 -0
  284. data/lib/rouge/lexers/tulip.rb +106 -0
  285. data/lib/rouge/lexers/turtle.rb +63 -0
  286. data/lib/rouge/lexers/twig.rb +39 -0
  287. data/lib/rouge/lexers/typescript.rb +22 -0
  288. data/lib/rouge/lexers/typescript/common.rb +33 -0
  289. data/lib/rouge/lexers/vala.rb +77 -0
  290. data/lib/rouge/lexers/vb.rb +164 -0
  291. data/lib/rouge/lexers/verilog.rb +164 -0
  292. data/lib/rouge/lexers/vhdl.rb +97 -0
  293. data/lib/rouge/lexers/viml.rb +101 -0
  294. data/lib/rouge/lexers/viml/keywords.rb +12 -0
  295. data/lib/rouge/lexers/vue.rb +122 -0
  296. data/lib/rouge/lexers/wollok.rb +103 -0
  297. data/lib/rouge/lexers/xml.rb +57 -0
  298. data/lib/rouge/lexers/yaml.rb +373 -0
  299. data/lib/rouge/plugins/redcarpet.rb +30 -0
  300. data/lib/rouge/regex_lexer.rb +441 -0
  301. data/lib/rouge/template_lexer.rb +20 -0
  302. data/lib/rouge/text_analyzer.rb +49 -0
  303. data/lib/rouge/theme.rb +213 -0
  304. data/lib/rouge/themes/base16.rb +130 -0
  305. data/lib/rouge/themes/colorful.rb +67 -0
  306. data/lib/rouge/themes/github.rb +71 -0
  307. data/lib/rouge/themes/gruvbox.rb +167 -0
  308. data/lib/rouge/themes/igor_pro.rb +20 -0
  309. data/lib/rouge/themes/molokai.rb +82 -0
  310. data/lib/rouge/themes/monokai.rb +92 -0
  311. data/lib/rouge/themes/monokai_sublime.rb +90 -0
  312. data/lib/rouge/themes/pastie.rb +69 -0
  313. data/lib/rouge/themes/thankful_eyes.rb +74 -0
  314. data/lib/rouge/themes/tulip.rb +69 -0
  315. data/lib/rouge/token.rb +182 -0
  316. data/lib/rouge/util.rb +101 -0
  317. data/lib/rouge/version.rb +7 -0
  318. data/rouge.gemspec +23 -0
  319. metadata +365 -0
@@ -0,0 +1,238 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # ABAP elements taken from http://help.sap.com/abapdocu_750/en/index.htm?file=abapdo.htm
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class ABAP < RegexLexer
7
+ title "ABAP"
8
+ desc "SAP - Advanced Business Application Programming"
9
+ tag 'abap'
10
+ filenames '*.abap'
11
+ mimetypes 'text/x-abap'
12
+
13
+ def self.keywords
14
+ @keywords = Set.new %w(
15
+ *-INPUT ?TO ABAP-SOURCE ABBREVIATED ABS ABSTRACT ACCEPT ACCEPTING
16
+ ACCORDING ACCP ACTIVATION ACTUAL ADD ADD-CORRESPONDING ADJACENT
17
+ AFTER ALIAS ALIASES ALIGN ALL ALLOCATE ALPHA ANALYSIS ANALYZER AND
18
+ ANY APPEND APPENDAGE APPENDING APPLICATION ARCHIVE AREA ARITHMETIC
19
+ AS ASCENDING ASPECT ASSERT ASSIGN ASSIGNED ASSIGNING ASSOCIATION
20
+ ASYNCHRONOUS AT ATTRIBUTES AUTHORITY AUTHORITY-CHECK AVG BACK
21
+ BACKGROUND BACKUP BACKWARD BADI BASE BEFORE BEGIN BETWEEN BIG BINARY
22
+ BINTOHEX BIT BIT-AND BIT-NOT BIT-OR BIT-XOR BLACK BLANK BLANKS BLOB
23
+ BLOCK BLOCKS BLUE BOUND BOUNDARIES BOUNDS BOXED BREAK-POINT BT
24
+ BUFFER BY BYPASSING BYTE BYTE-CA BYTE-CN BYTE-CO BYTE-CS BYTE-NA
25
+ BYTE-NS BYTE-ORDER CA CALL CALLING CASE CAST CASTING CATCH CEIL
26
+ CENTER CENTERED CHAIN CHAIN-INPUT CHAIN-REQUEST CHANGE CHANGING
27
+ CHANNELS CHAR CHAR-TO-HEX CHARACTER CHECK CHECKBOX CIRCULAR CLASS
28
+ CLASS-CODING CLASS-DATA CLASS-EVENTS CLASS-METHODS CLASS-POOL
29
+ CLEANUP CLEAR CLIENT CLNT CLOB CLOCK CLOSE CN CO COALESCE CODE
30
+ CODING COLLECT COLOR COLUMN COLUMNS COL_BACKGROUND COL_GROUP
31
+ COL_HEADING COL_KEY COL_NEGATIVE COL_NORMAL COL_POSITIVE COL_TOTAL
32
+ COMMENT COMMENTS COMMIT COMMON COMMUNICATION COMPARING COMPONENT
33
+ COMPONENTS COMPRESSION COMPUTE CONCAT CONCATENATE CONCAT_WITH_SPACE
34
+ COND CONDENSE CONDITION CONNECT CONNECTION CONSTANTS CONTEXT
35
+ CONTEXTS CONTINUE CONTROL CONTROLS CONV CONVERSION CONVERT COPIES
36
+ COPY CORRESPONDING COUNT COUNTRY COVER CP CPI CREATE CREATING
37
+ CRITICAL CS CUKY CURR CURRENCY CURRENCY_CONVERSION CURRENT CURSOR
38
+ CURSOR-SELECTION CUSTOMER CUSTOMER-FUNCTION CX_DYNAMIC_CHECK
39
+ CX_NO_CHECK CX_ROOT CX_SQL_EXCEPTION CX_STATIC_CHECK DANGEROUS DATA
40
+ DATABASE DATAINFO DATASET DATE DATS DATS_ADD_DAYS DATS_ADD_MONTHS
41
+ DATS_DAYS_BETWEEN DATS_IS_VALID DAYLIGHT DD/MM/YY DD/MM/YYYY DDMMYY
42
+ DEALLOCATE DEC DECIMALS DECIMAL_SHIFT DECLARATIONS DEEP DEFAULT
43
+ DEFERRED DEFINE DEFINING DEFINITION DELETE DELETING DEMAND
44
+ DEPARTMENT DESCENDING DESCRIBE DESTINATION DETAIL DF16_DEC DF16_RAW
45
+ DF16_SCL DF34_DEC DF34_RAW DF34_SCL DIALOG DIRECTORY DISCONNECT
46
+ DISPLAY DISPLAY-MODE DISTANCE DISTINCT DIV DIVIDE
47
+ DIVIDE-CORRESPONDING DIVISION DO DUMMY DUPLICATE DUPLICATES DURATION
48
+ DURING DYNAMIC DYNPRO E EDIT EDITOR-CALL ELSE ELSEIF EMPTY ENABLED
49
+ ENABLING ENCODING END END-ENHANCEMENT-SECTION END-LINES
50
+ END-OF-DEFINITION END-OF-FILE END-OF-PAGE END-OF-SELECTION
51
+ END-TEST-INJECTION END-TEST-SEAM ENDAT ENDCASE ENDCATCH ENDCHAIN
52
+ ENDCLASS ENDDO ENDENHANCEMENT ENDEXEC ENDFORM ENDFUNCTION ENDIAN
53
+ ENDIF ENDING ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON
54
+ ENDPROVIDE ENDSELECT ENDTRY ENDWHILE ENDWITH ENGINEERING ENHANCEMENT
55
+ ENHANCEMENT-POINT ENHANCEMENT-SECTION ENHANCEMENTS ENTRIES ENTRY
56
+ ENVIRONMENT EQ EQUIV ERRORMESSAGE ERRORS ESCAPE ESCAPING EVENT
57
+ EVENTS EXACT EXCEPT EXCEPTION EXCEPTION-TABLE EXCEPTIONS EXCLUDE
58
+ EXCLUDING EXEC EXECUTE EXISTS EXIT EXIT-COMMAND EXPAND EXPANDING
59
+ EXPIRATION EXPLICIT EXPONENT EXPORT EXPORTING EXTEND EXTENDED
60
+ EXTENSION EXTRACT FAIL FETCH FIELD FIELD-GROUPS FIELD-SYMBOL
61
+ FIELD-SYMBOLS FIELDS FILE FILTER FILTER-TABLE FILTERS FINAL FIND
62
+ FIRST FIRST-LINE FIXED-POINT FKEQ FKGE FLOOR FLTP FLUSH FONT FOR
63
+ FORM FORMAT FORWARD FOUND FRAME FRAMES FREE FRIENDS FROM FUNCTION
64
+ FUNCTION-POOL FUNCTIONALITY FURTHER GAPS GE GENERATE GET
65
+ GET_PRINT_PARAMETERS GIVING GKEQ GKGE GLOBAL GRANT GREEN GROUP
66
+ GROUPS GT HANDLE HANDLER HARMLESS HASHED HAVING HDB HEAD-LINES
67
+ HEADER HEADERS HEADING HELP-ID HELP-REQUEST HEXTOBIN HIDE HIGH HINT
68
+ HOLD HOTSPOT I ICON ID IDENTIFICATION IDENTIFIER IDS IF
69
+ IF_ABAP_CLOSE_RESOURCE IF_ABAP_CODEPAGE IF_ABAP_DB_BLOB_HANDLE
70
+ IF_ABAP_DB_CLOB_HANDLE IF_ABAP_DB_LOB_HANDLE IF_ABAP_DB_READER
71
+ IF_ABAP_DB_WRITER IF_ABAP_READER IF_ABAP_WRITER IF_MESSAGE
72
+ IF_OS_CA_INSTANCE IF_OS_CA_PERSISTENCY IF_OS_FACTORY IF_OS_QUERY
73
+ IF_OS_QUERY_MANAGER IF_OS_QUERY_OPTIONS IF_OS_STATE
74
+ IF_OS_TRANSACTION IF_OS_TRANSACTION_MANAGER IF_SERIALIZABLE_OBJECT
75
+ IF_SHM_BUILD_INSTANCE IF_SYSTEM_UUID IF_T100_DYN_MSG IF_T100_MESSAGE
76
+ IGNORE IGNORING IMMEDIATELY IMPLEMENTATION IMPLEMENTATIONS
77
+ IMPLEMENTED IMPLICIT IMPORT IMPORTING IN INACTIVE INCL INCLUDE
78
+ INCLUDES INCLUDING INCREMENT INDEX INDEX-LINE INFOTYPES INHERITING
79
+ INIT INITIAL INITIALIZATION INNER INOUT INPUT INSERT INSTANCE
80
+ INSTANCES INSTR INT1 INT2 INT4 INT8 INTENSIFIED INTERFACE
81
+ INTERFACE-POOL INTERFACES INTERNAL INTERVALS INTO INVERSE
82
+ INVERTED-DATE IS ISO ITNO JOB JOIN KEEP KEEPING KERNEL KEY KEYS
83
+ KEYWORDS KIND LANG LANGUAGE LAST LATE LAYOUT LCHR LDB_PROCESS LE
84
+ LEADING LEAVE LEFT LEFT-JUSTIFIED LEFTPLUS LEFTSPACE LEGACY LENGTH
85
+ LET LEVEL LEVELS LIKE LINE LINE-COUNT LINE-SELECTION LINE-SIZE
86
+ LINEFEED LINES LIST LIST-PROCESSING LISTBOX LITTLE LLANG LOAD
87
+ LOAD-OF-PROGRAM LOB LOCAL LOCALE LOCATOR LOG-POINT LOGFILE LOGICAL
88
+ LONG LOOP LOW LOWER LPAD LPI LRAW LT LTRIM M MAIL MAIN MAJOR-ID
89
+ MAPPING MARGIN MARK MASK MATCH MATCHCODE MAX MAXIMUM MEDIUM MEMBERS
90
+ MEMORY MESH MESSAGE MESSAGE-ID MESSAGES MESSAGING METHOD METHODS MIN
91
+ MINIMUM MINOR-ID MM/DD/YY MM/DD/YYYY MMDDYY MOD MODE MODIF MODIFIER
92
+ MODIFY MODULE MOVE MOVE-CORRESPONDING MULTIPLY
93
+ MULTIPLY-CORRESPONDING NA NAME NAMETAB NATIVE NB NE NESTED NESTING
94
+ NEW NEW-LINE NEW-PAGE NEW-SECTION NEXT NO NO-DISPLAY NO-EXTENSION
95
+ NO-GAP NO-GAPS NO-GROUPING NO-HEADING NO-SCROLLING NO-SIGN NO-TITLE
96
+ NO-TOPOFPAGE NO-ZERO NODE NODES NON-UNICODE NON-UNIQUE NOT NP NS
97
+ NULL NUMBER NUMC O OBJECT OBJECTS OBLIGATORY OCCURRENCE OCCURRENCES
98
+ OCCURS OF OFF OFFSET ON ONLY OPEN OPTION OPTIONAL OPTIONS OR ORDER
99
+ OTHER OTHERS OUT OUTER OUTPUT OUTPUT-LENGTH OVERFLOW OVERLAY PACK
100
+ PACKAGE PAD PADDING PAGE PAGES PARAMETER PARAMETER-TABLE PARAMETERS
101
+ PART PARTIALLY PATTERN PERCENTAGE PERFORM PERFORMING PERSON PF
102
+ PF-STATUS PINK PLACES POOL POSITION POS_HIGH POS_LOW PRAGMAS PREC
103
+ PRECOMPILED PREFERRED PRESERVING PRIMARY PRINT PRINT-CONTROL
104
+ PRIORITY PRIVATE PROCEDURE PROCESS PROGRAM PROPERTY PROTECTED
105
+ PROVIDE PUBLIC PUSH PUSHBUTTON PUT QUAN QUEUE-ONLY QUICKINFO
106
+ RADIOBUTTON RAISE RAISING RANGE RANGES RAW RAWSTRING READ READ-ONLY
107
+ READER RECEIVE RECEIVED RECEIVER RECEIVING RED REDEFINITION REDUCE
108
+ REDUCED REF REFERENCE REFRESH REGEX REJECT REMOTE RENAMING REPLACE
109
+ REPLACEMENT REPLACING REPORT REQUEST REQUESTED RESERVE RESET
110
+ RESOLUTION RESPECTING RESPONSIBLE RESULT RESULTS RESUMABLE RESUME
111
+ RETRY RETURN RETURNCODE RETURNING RETURNS RIGHT RIGHT-JUSTIFIED
112
+ RIGHTPLUS RIGHTSPACE RISK RMC_COMMUNICATION_FAILURE
113
+ RMC_INVALID_STATUS RMC_SYSTEM_FAILURE ROLE ROLLBACK ROUND ROWS RPAD
114
+ RTRIM RUN SAP SAP-SPOOL SAVING SCALE_PRESERVING
115
+ SCALE_PRESERVING_SCIENTIFIC SCAN SCIENTIFIC
116
+ SCIENTIFIC_WITH_LEADING_ZERO SCREEN SCROLL SCROLL-BOUNDARY SCROLLING
117
+ SEARCH SECONDARY SECONDS SECTION SELECT SELECT-OPTIONS SELECTION
118
+ SELECTION-SCREEN SELECTION-SET SELECTION-SETS SELECTION-TABLE
119
+ SELECTIONS SEND SEPARATE SEPARATED SET SHARED SHIFT SHORT
120
+ SHORTDUMP-ID SIGN SIGN_AS_POSTFIX SIMPLE SINGLE SIZE SKIP SKIPPING
121
+ SMART SOME SORT SORTABLE SORTED SOURCE SPACE SPECIFIED SPLIT SPOOL
122
+ SPOTS SQL SQLSCRIPT SSTRING STABLE STAMP STANDARD START-OF-SELECTION
123
+ STARTING STATE STATEMENT STATEMENTS STATIC STATICS STATUSINFO
124
+ STEP-LOOP STOP STRING STRUCTURE STRUCTURES STYLE SUBKEY SUBMATCHES
125
+ SUBMIT SUBROUTINE SUBSCREEN SUBSTRING SUBTRACT
126
+ SUBTRACT-CORRESPONDING SUFFIX SUM SUMMARY SUMMING SUPPLIED SUPPLY
127
+ SUPPRESS SWITCH SWITCHSTATES SYMBOL SYNCPOINTS SYNTAX SYNTAX-CHECK
128
+ SYNTAX-TRACE SYST SYSTEM-CALL SYSTEM-EXCEPTIONS SYSTEM-EXIT TAB
129
+ TABBED TABLE TABLES TABLEVIEW TABSTRIP TARGET TASK TASKS TEST
130
+ TEST-INJECTION TEST-SEAM TESTING TEXT TEXTPOOL THEN THROW TIME TIMES
131
+ TIMESTAMP TIMEZONE TIMS TIMS_IS_VALID TITLE TITLE-LINES TITLEBAR TO
132
+ TOKENIZATION TOKENS TOP-LINES TOP-OF-PAGE TRACE-FILE TRACE-TABLE
133
+ TRAILING TRANSACTION TRANSFER TRANSFORMATION TRANSLATE TRANSPORTING
134
+ TRMAC TRUNCATE TRUNCATION TRY TSTMP_ADD_SECONDS
135
+ TSTMP_CURRENT_UTCTIMESTAMP TSTMP_IS_VALID TSTMP_SECONDS_BETWEEN TYPE
136
+ TYPE-POOL TYPE-POOLS TYPES ULINE UNASSIGN UNDER UNICODE UNION UNIQUE
137
+ UNIT UNIT_CONVERSION UNIX UNPACK UNTIL UNWIND UP UPDATE UPPER USER
138
+ USER-COMMAND USING UTF-8 VALID VALUE VALUE-REQUEST VALUES VARC VARY
139
+ VARYING VERIFICATION-MESSAGE VERSION VIA VIEW VISIBLE WAIT WARNING
140
+ WHEN WHENEVER WHERE WHILE WIDTH WINDOW WINDOWS WITH WITH-HEADING
141
+ WITH-TITLE WITHOUT WORD WORK WRITE WRITER XML XSD YELLOW YES YYMMDD
142
+ Z ZERO ZONE
143
+ )
144
+ end
145
+
146
+ def self.builtins
147
+ @keywords = Set.new %w(
148
+ acos apply asin assign atan attribute bit-set boolc boolx call
149
+ call-method cast ceil cfunc charlen char_off class_constructor clear
150
+ cluster cmax cmin cnt communication_failure concat_lines_of cond
151
+ cond-var condense constructor contains contains_any_not_of
152
+ contains_any_of copy cos cosh count count_any_not_of count_any_of
153
+ create cursor data dbmaxlen dbtab deserialize destructor distance
154
+ empty error_message escape exp extensible find find_any_not_of
155
+ find_any_of find_end floor frac from_mixed group hashed header idx
156
+ include index insert ipow itab key lax lines line_exists line_index
157
+ log log10 loop loop_key match matches me mesh_path namespace nmax
158
+ nmin node numeric numofchar object parameter primary_key read ref
159
+ repeat replace rescale resource_failure reverse root round segment
160
+ sender serialize shift_left shift_right sign simple sin sinh skip
161
+ sorted space sqrt standard strlen substring substring_after
162
+ substring_before substring_from substring_to sum switch switch-var
163
+ system_failure table table_line tan tanh template text to_lower
164
+ to_mixed to_upper transform translate trunc type value variable write
165
+ xsdbool xsequence xstrlen
166
+ )
167
+ end
168
+
169
+ def self.types
170
+ @types = Set.new %w(
171
+ b c d decfloat16 decfloat34 f i int8 n p s t x
172
+ clike csequence decfloat string xstring
173
+ )
174
+ end
175
+
176
+ def self.new_keywords
177
+ @types = Set.new %w(
178
+ DATA FIELD-SYMBOL
179
+ )
180
+ end
181
+
182
+ state :root do
183
+ rule /\s+/m, Text
184
+
185
+ rule /".*/, Comment::Single
186
+ rule %r(^\*.*), Comment::Multiline
187
+ rule /\d+/, Num::Integer
188
+ rule /('|`)/, Str::Single, :single_string
189
+ rule /[\[\]\(\)\{\}\[\]\.,:\|]/, Punctuation
190
+
191
+ # builtins / new ABAP 7.40 keywords (@DATA(), ...)
192
+ rule /(->|=>)?([A-Za-z][A-Za-z0-9_\-]*)(\()/ do |m|
193
+ if m[1] != ''
194
+ token Operator, m[1]
195
+ end
196
+
197
+ if (self.class.new_keywords.include? m[2].upcase) && m[1].nil?
198
+ token Keyword, m[2]
199
+ elsif (self.class.builtins.include? m[2].downcase) && m[1].nil?
200
+ token Name::Builtin, m[2]
201
+ else
202
+ token Name, m[2]
203
+ end
204
+ token Punctuation, m[3]
205
+ end
206
+
207
+ # keywords, types and normal text
208
+ rule /\w[\w\d]*/ do |m|
209
+ if self.class.keywords.include? m[0].upcase
210
+ token Keyword
211
+ elsif self.class.types.include? m[0].downcase
212
+ token Keyword::Type
213
+ else
214
+ token Name
215
+ end
216
+ end
217
+
218
+ # operators
219
+ rule %r((->|->>|=>)), Operator
220
+ rule %r([-\*\+%/~=&\?<>!#\@\^]+), Operator
221
+
222
+ end
223
+
224
+ state :operators do
225
+ rule %r((->|->>|=>)), Operator
226
+ rule %r([-\*\+%/~=&\?<>!#\@\^]+), Operator
227
+ end
228
+
229
+ state :single_string do
230
+ rule /\\./, Str::Escape
231
+ rule /(''|``)/, Str::Escape
232
+ rule /['`]/, Str::Single, :pop!
233
+ rule /[^\\'`]+/, Str::Single
234
+ end
235
+
236
+ end
237
+ end
238
+ end
@@ -0,0 +1,195 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class Actionscript < RegexLexer
6
+ title "ActionScript"
7
+ desc "ActionScript"
8
+
9
+ tag 'actionscript'
10
+ aliases 'as', 'as3'
11
+ filenames '*.as'
12
+ mimetypes 'application/x-actionscript'
13
+
14
+ state :comments_and_whitespace do
15
+ rule /\s+/, Text
16
+ rule %r(//.*?$), Comment::Single
17
+ rule %r(/\*.*?\*/)m, Comment::Multiline
18
+ end
19
+
20
+ state :expr_start do
21
+ mixin :comments_and_whitespace
22
+
23
+ rule %r(/) do
24
+ token Str::Regex
25
+ goto :regex
26
+ end
27
+
28
+ rule /[{]/, Punctuation, :object
29
+
30
+ rule //, Text, :pop!
31
+ end
32
+
33
+ state :regex do
34
+ rule %r(/) do
35
+ token Str::Regex
36
+ goto :regex_end
37
+ end
38
+
39
+ rule %r([^/]\n), Error, :pop!
40
+
41
+ rule /\n/, Error, :pop!
42
+ rule /\[\^/, Str::Escape, :regex_group
43
+ rule /\[/, Str::Escape, :regex_group
44
+ rule /\\./, Str::Escape
45
+ rule %r{[(][?][:=<!]}, Str::Escape
46
+ rule /[{][\d,]+[}]/, Str::Escape
47
+ rule /[()?]/, Str::Escape
48
+ rule /./, Str::Regex
49
+ end
50
+
51
+ state :regex_end do
52
+ rule /[gim]+/, Str::Regex, :pop!
53
+ rule(//) { pop! }
54
+ end
55
+
56
+ state :regex_group do
57
+ # specially highlight / in a group to indicate that it doesn't
58
+ # close the regex
59
+ rule /\//, Str::Escape
60
+
61
+ rule %r([^/]\n) do
62
+ token Error
63
+ pop! 2
64
+ end
65
+
66
+ rule /\]/, Str::Escape, :pop!
67
+ rule /\\./, Str::Escape
68
+ rule /./, Str::Regex
69
+ end
70
+
71
+ state :bad_regex do
72
+ rule /[^\n]+/, Error, :pop!
73
+ end
74
+
75
+ def self.keywords
76
+ @keywords ||= Set.new %w(
77
+ for in while do break return continue switch case default
78
+ if else throw try catch finally new delete typeof is
79
+ this with
80
+ )
81
+ end
82
+
83
+ def self.declarations
84
+ @declarations ||= Set.new %w(var with function)
85
+ end
86
+
87
+ def self.reserved
88
+ @reserved ||= Set.new %w(
89
+ dynamic final internal native public protected private class const
90
+ override static package interface extends implements namespace
91
+ set get import include super flash_proxy object_proxy trace
92
+ )
93
+ end
94
+
95
+ def self.constants
96
+ @constants ||= Set.new %w(true false null NaN Infinity undefined)
97
+ end
98
+
99
+ def self.builtins
100
+ @builtins ||= %w(
101
+ void Function Math Class
102
+ Object RegExp decodeURI
103
+ decodeURIComponent encodeURI encodeURIComponent
104
+ eval isFinite isNaN parseFloat parseInt this
105
+ )
106
+ end
107
+
108
+ id = /[$a-zA-Z_][a-zA-Z0-9_]*/
109
+
110
+ state :root do
111
+ rule /\A\s*#!.*?\n/m, Comment::Preproc, :statement
112
+ rule /\n/, Text, :statement
113
+ rule %r((?<=\n)(?=\s|/|<!--)), Text, :expr_start
114
+ mixin :comments_and_whitespace
115
+ rule %r(\+\+ | -- | ~ | && | \|\| | \\(?=\n) | << | >>>? | ===
116
+ | !== )x,
117
+ Operator, :expr_start
118
+ rule %r([:-<>+*%&|\^/!=]=?), Operator, :expr_start
119
+ rule /[(\[,]/, Punctuation, :expr_start
120
+ rule /;/, Punctuation, :statement
121
+ rule /[)\].]/, Punctuation
122
+
123
+ rule /[?]/ do
124
+ token Punctuation
125
+ push :ternary
126
+ push :expr_start
127
+ end
128
+
129
+ rule /[{}]/, Punctuation, :statement
130
+
131
+ rule id do |m|
132
+ if self.class.keywords.include? m[0]
133
+ token Keyword
134
+ push :expr_start
135
+ elsif self.class.declarations.include? m[0]
136
+ token Keyword::Declaration
137
+ push :expr_start
138
+ elsif self.class.reserved.include? m[0]
139
+ token Keyword::Reserved
140
+ elsif self.class.constants.include? m[0]
141
+ token Keyword::Constant
142
+ elsif self.class.builtins.include? m[0]
143
+ token Name::Builtin
144
+ else
145
+ token Name::Other
146
+ end
147
+ end
148
+
149
+ rule /\-?[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?/, Num::Float
150
+ rule /0x[0-9a-fA-F]+/, Num::Hex
151
+ rule /\-?[0-9]+/, Num::Integer
152
+ rule /"(\\\\|\\"|[^"])*"/, Str::Double
153
+ rule /'(\\\\|\\'|[^'])*'/, Str::Single
154
+ end
155
+
156
+ # braced parts that aren't object literals
157
+ state :statement do
158
+ rule /(#{id})(\s*)(:)/ do
159
+ groups Name::Label, Text, Punctuation
160
+ end
161
+
162
+ rule /[{}]/, Punctuation
163
+
164
+ mixin :expr_start
165
+ end
166
+
167
+ # object literals
168
+ state :object do
169
+ mixin :comments_and_whitespace
170
+ rule /[}]/ do
171
+ token Punctuation
172
+ goto :statement
173
+ end
174
+
175
+ rule /(#{id})(\s*)(:)/ do
176
+ groups Name::Attribute, Text, Punctuation
177
+ push :expr_start
178
+ end
179
+
180
+ rule /:/, Punctuation
181
+ mixin :root
182
+ end
183
+
184
+ # ternary expressions, where <id>: is not a label!
185
+ state :ternary do
186
+ rule /:/ do
187
+ token Punctuation
188
+ goto :expr_start
189
+ end
190
+
191
+ mixin :root
192
+ end
193
+ end
194
+ end
195
+ end
@@ -0,0 +1,71 @@
1
+ require 'yaml'
2
+
3
+ module Rouge
4
+ module Lexers
5
+ class Apache < RegexLexer
6
+ title "Apache"
7
+ desc 'configuration files for Apache web server'
8
+ tag 'apache'
9
+ mimetypes 'text/x-httpd-conf', 'text/x-apache-conf'
10
+ filenames '.htaccess', 'httpd.conf'
11
+
12
+ class << self
13
+ attr_reader :keywords
14
+ end
15
+ # Load Apache keywords from separate YML file
16
+ @keywords = ::YAML.load_file(Pathname.new(__FILE__).dirname.join('apache/keywords.yml')).tap do |h|
17
+ h.each do |k,v|
18
+ h[k] = Set.new v
19
+ end
20
+ end
21
+
22
+ def name_for_token(token, kwtype, tktype)
23
+ if self.class.keywords[kwtype].include? token
24
+ tktype
25
+ else
26
+ Text
27
+ end
28
+ end
29
+
30
+ state :whitespace do
31
+ rule /\#.*/, Comment
32
+ rule /\s+/m, Text
33
+ end
34
+
35
+ state :root do
36
+ mixin :whitespace
37
+
38
+ rule /(<\/?)(\w+)/ do |m|
39
+ groups Punctuation, name_for_token(m[2].downcase, :sections, Name::Label)
40
+ push :section
41
+ end
42
+
43
+ rule /\w+/ do |m|
44
+ token name_for_token(m[0].downcase, :directives, Name::Class)
45
+ push :directive
46
+ end
47
+ end
48
+
49
+ state :section do
50
+ # Match section arguments
51
+ rule /([^>]+)?(>(?:\r\n?|\n)?)/ do |m|
52
+ groups Literal::String::Regex, Punctuation
53
+ pop!
54
+ end
55
+
56
+ mixin :whitespace
57
+ end
58
+
59
+ state :directive do
60
+ # Match value literals and other directive arguments
61
+ rule /\r\n?|\n/, Text, :pop!
62
+
63
+ mixin :whitespace
64
+
65
+ rule /\S+/ do |m|
66
+ token name_for_token(m[0], :values, Literal::String::Symbol)
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end