pygments.rb 0.2.4 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. data/lib/pygments/version.rb +1 -1
  2. data/vendor/pygments-main/AUTHORS +14 -0
  3. data/vendor/pygments-main/CHANGES +34 -3
  4. data/vendor/pygments-main/Makefile +1 -1
  5. data/vendor/pygments-main/docs/generate.py +1 -1
  6. data/vendor/pygments-main/external/markdown-processor.py +1 -1
  7. data/vendor/pygments-main/external/moin-parser.py +1 -1
  8. data/vendor/pygments-main/external/rst-directive-old.py +1 -1
  9. data/vendor/pygments-main/external/rst-directive.py +1 -1
  10. data/vendor/pygments-main/pygments/__init__.py +1 -1
  11. data/vendor/pygments-main/pygments/cmdline.py +4 -1
  12. data/vendor/pygments-main/pygments/console.py +1 -1
  13. data/vendor/pygments-main/pygments/filter.py +1 -1
  14. data/vendor/pygments-main/pygments/filters/__init__.py +1 -1
  15. data/vendor/pygments-main/pygments/formatter.py +1 -1
  16. data/vendor/pygments-main/pygments/formatters/__init__.py +1 -1
  17. data/vendor/pygments-main/pygments/formatters/_mapping.py +1 -1
  18. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  19. data/vendor/pygments-main/pygments/formatters/html.py +2 -2
  20. data/vendor/pygments-main/pygments/formatters/img.py +1 -1
  21. data/vendor/pygments-main/pygments/formatters/latex.py +3 -2
  22. data/vendor/pygments-main/pygments/formatters/other.py +1 -1
  23. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  24. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  25. data/vendor/pygments-main/pygments/formatters/terminal.py +5 -2
  26. data/vendor/pygments-main/pygments/formatters/terminal256.py +5 -2
  27. data/vendor/pygments-main/pygments/lexer.py +29 -10
  28. data/vendor/pygments-main/pygments/lexers/__init__.py +14 -11
  29. data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1 -1
  30. data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +1 -1
  31. data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +1 -1
  32. data/vendor/pygments-main/pygments/lexers/_mapping.py +41 -23
  33. data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +1 -1
  34. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +1 -1
  35. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +29 -0
  36. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +3 -3
  37. data/vendor/pygments-main/pygments/lexers/agile.py +148 -443
  38. data/vendor/pygments-main/pygments/lexers/asm.py +5 -3
  39. data/vendor/pygments-main/pygments/lexers/compiled.py +298 -294
  40. data/vendor/pygments-main/pygments/lexers/dotnet.py +40 -34
  41. data/vendor/pygments-main/pygments/lexers/functional.py +723 -4
  42. data/vendor/pygments-main/pygments/lexers/hdl.py +228 -6
  43. data/vendor/pygments-main/pygments/lexers/jvm.py +678 -0
  44. data/vendor/pygments-main/pygments/lexers/math.py +65 -2
  45. data/vendor/pygments-main/pygments/lexers/other.py +875 -481
  46. data/vendor/pygments-main/pygments/lexers/parsers.py +1 -1
  47. data/vendor/pygments-main/pygments/lexers/shell.py +360 -0
  48. data/vendor/pygments-main/pygments/lexers/special.py +1 -1
  49. data/vendor/pygments-main/pygments/lexers/sql.py +565 -0
  50. data/vendor/pygments-main/pygments/lexers/templates.py +1 -1
  51. data/vendor/pygments-main/pygments/lexers/text.py +237 -100
  52. data/vendor/pygments-main/pygments/lexers/web.py +146 -10
  53. data/vendor/pygments-main/pygments/plugin.py +1 -1
  54. data/vendor/pygments-main/pygments/scanner.py +1 -1
  55. data/vendor/pygments-main/pygments/style.py +1 -1
  56. data/vendor/pygments-main/pygments/styles/__init__.py +2 -1
  57. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  58. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  59. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  60. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  61. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  62. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  63. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  64. data/vendor/pygments-main/pygments/styles/fruity.py +1 -2
  65. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  66. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  67. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  68. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  69. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  70. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  71. data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
  72. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  73. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  74. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  75. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  76. data/vendor/pygments-main/pygments/token.py +1 -1
  77. data/vendor/pygments-main/pygments/unistring.py +1 -1
  78. data/vendor/pygments-main/pygments/util.py +2 -2
  79. data/vendor/pygments-main/scripts/check_sources.py +2 -2
  80. data/vendor/pygments-main/scripts/find_codetags.py +1 -1
  81. data/vendor/pygments-main/scripts/find_error.py +5 -2
  82. data/vendor/pygments-main/scripts/get_vimkw.py +9 -4
  83. data/vendor/pygments-main/setup.py +1 -1
  84. data/vendor/pygments-main/tests/examplefiles/classes.dylan +16 -0
  85. data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
  86. data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
  87. data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
  88. data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
  89. data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
  90. data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
  91. data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
  92. data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
  93. data/vendor/pygments-main/tests/examplefiles/http_request_example +14 -0
  94. data/vendor/pygments-main/tests/examplefiles/http_response_example +27 -0
  95. data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
  96. data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
  97. data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +4 -2
  98. data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
  99. data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
  100. data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
  101. data/vendor/pygments-main/tests/examplefiles/test.cs +23 -0
  102. data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
  103. data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
  104. data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
  105. data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
  106. data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
  107. data/vendor/pygments-main/tests/old_run.py +1 -1
  108. data/vendor/pygments-main/tests/run.py +1 -1
  109. data/vendor/pygments-main/tests/test_basic_api.py +4 -3
  110. data/vendor/pygments-main/tests/test_clexer.py +1 -1
  111. data/vendor/pygments-main/tests/test_cmdline.py +1 -1
  112. data/vendor/pygments-main/tests/test_examplefiles.py +4 -3
  113. data/vendor/pygments-main/tests/test_html_formatter.py +33 -1
  114. data/vendor/pygments-main/tests/test_latex_formatter.py +1 -1
  115. data/vendor/pygments-main/tests/test_perllexer.py +137 -0
  116. data/vendor/pygments-main/tests/test_regexlexer.py +1 -1
  117. data/vendor/pygments-main/tests/test_token.py +1 -1
  118. data/vendor/pygments-main/tests/test_using_api.py +1 -1
  119. data/vendor/pygments-main/tests/test_util.py +35 -5
  120. metadata +30 -4
@@ -5,7 +5,7 @@
5
5
 
6
6
  Lexers for math languages.
7
7
 
8
- :copyright: Copyright 2006-2011 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2012 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
@@ -16,9 +16,10 @@ from pygments.token import Comment, String, Punctuation, Keyword, Name, \
16
16
  Operator, Number, Text, Generic
17
17
 
18
18
  from pygments.lexers.agile import PythonLexer
19
+ from pygments.lexers import _scilab_builtins
19
20
 
20
21
  __all__ = ['MuPADLexer', 'MatlabLexer', 'MatlabSessionLexer', 'OctaveLexer',
21
- 'NumPyLexer', 'RConsoleLexer', 'SLexer']
22
+ 'ScilabLexer', 'NumPyLexer', 'RConsoleLexer', 'SLexer']
22
23
 
23
24
 
24
25
  class MuPADLexer(RegexLexer):
@@ -639,6 +640,68 @@ class OctaveLexer(RegexLexer):
639
640
  return 0.1
640
641
 
641
642
 
643
+ class ScilabLexer(RegexLexer):
644
+ """
645
+ For Scilab source code.
646
+
647
+ *New in Pygments 1.5.*
648
+ """
649
+ name = 'Scilab'
650
+ aliases = ['scilab']
651
+ filenames = ['*.sci', '*.sce', '*.tst']
652
+ mimetypes = ['text/scilab']
653
+
654
+ tokens = {
655
+ 'root': [
656
+ (r'//.*?$', Comment.Single),
657
+ (r'^\s*function', Keyword, 'deffunc'),
658
+
659
+ (r'(__FILE__|__LINE__|break|case|catch|classdef|continue|do|else|'
660
+ r'elseif|end|end_try_catch|end_unwind_protect|endclassdef|'
661
+ r'endevents|endfor|endfunction|endif|endmethods|endproperties|'
662
+ r'endswitch|endwhile|events|for|function|get|global|if|methods|'
663
+ r'otherwise|persistent|properties|return|set|static|switch|try|'
664
+ r'until|unwind_protect|unwind_protect_cleanup|while)\b', Keyword),
665
+
666
+ ("(" + "|".join(_scilab_builtins.functions_kw +
667
+ _scilab_builtins.commands_kw +
668
+ _scilab_builtins.macros_kw
669
+ ) + r')\b', Name.Builtin),
670
+
671
+ ("(" + "|".join(_scilab_builtins.builtin_consts) + r')\b',
672
+ Name.Constant),
673
+
674
+ # operators:
675
+ (r'-|==|~=|<|>|<=|>=|&&|&|~|\|\|?', Operator),
676
+ # operators requiring escape for re:
677
+ (r'\.\*|\*|\+|\.\^|\.\\|\.\/|\/|\\', Operator),
678
+
679
+ # punctuation:
680
+ (r'[\[\](){}:@.,=:;]', Punctuation),
681
+
682
+ (r'"[^"]*"', String),
683
+
684
+ # quote can be transpose, instead of string:
685
+ # (not great, but handles common cases...)
686
+ (r'(?<=[\w\)\]])\'', Operator),
687
+ (r'(?<![\w\)\]])\'', String, 'string'),
688
+
689
+ ('[a-zA-Z_][a-zA-Z0-9_]*', Name),
690
+ (r'.', Text),
691
+ ],
692
+ 'string': [
693
+ (r"[^']*'", String, '#pop'),
694
+ (r'.', String, '#pop'),
695
+ ],
696
+ 'deffunc': [
697
+ (r'(\s*)(?:(.+)(\s*)(=)(\s*))?(.+)(\()(.*)(\))(\s*)',
698
+ bygroups(Text.Whitespace, Text, Text.Whitespace, Punctuation,
699
+ Text.Whitespace, Name.Function, Punctuation, Text,
700
+ Punctuation, Text.Whitespace), '#pop'),
701
+ ],
702
+ }
703
+
704
+
642
705
  class NumPyLexer(PythonLexer):
643
706
  """
644
707
  A Python lexer recognizing Numerical Python builtins.
@@ -5,260 +5,133 @@
5
5
 
6
6
  Lexers for other languages.
7
7
 
8
- :copyright: Copyright 2006-2011 by the Pygments team, see AUTHORS.
8
+ :copyright: Copyright 2006-2012 by the Pygments team, see AUTHORS.
9
9
  :license: BSD, see LICENSE for details.
10
10
  """
11
11
 
12
12
  import re
13
13
 
14
- from pygments.lexer import Lexer, RegexLexer, include, bygroups, using, \
15
- this, do_insertions, combined
14
+ from pygments.lexer import RegexLexer, include, bygroups, using, \
15
+ this, combined, ExtendedRegexLexer
16
16
  from pygments.token import Error, Punctuation, Literal, Token, \
17
17
  Text, Comment, Operator, Keyword, Name, String, Number, Generic
18
- from pygments.util import shebang_matches
19
18
  from pygments.lexers.web import HtmlLexer
20
19
 
21
20
 
22
- __all__ = ['SqlLexer', 'MySqlLexer', 'SqliteConsoleLexer', 'BrainfuckLexer',
23
- 'BashLexer', 'BatchLexer', 'BefungeLexer', 'RedcodeLexer',
24
- 'MOOCodeLexer', 'SmalltalkLexer', 'TcshLexer', 'LogtalkLexer',
25
- 'GnuplotLexer', 'PovrayLexer', 'AppleScriptLexer',
26
- 'BashSessionLexer', 'ModelicaLexer', 'RebolLexer', 'ABAPLexer',
27
- 'NewspeakLexer', 'GherkinLexer', 'AsymptoteLexer',
28
- 'PostScriptLexer', 'AutohotkeyLexer', 'GoodDataCLLexer',
29
- 'MaqlLexer', 'ProtoBufLexer', 'HybrisLexer', 'AwkLexer',
30
- 'Cfengine3Lexer']
21
+ # backwards compatibility
22
+ from pygments.lexers.sql import SqlLexer, MySqlLexer, SqliteConsoleLexer
23
+ from pygments.lexers.shell import BashLexer, BashSessionLexer, BatchLexer, \
24
+ TcshLexer
31
25
 
32
- line_re = re.compile('.*?\n')
26
+ __all__ = ['BrainfuckLexer', 'BefungeLexer', 'RedcodeLexer', 'MOOCodeLexer',
27
+ 'SmalltalkLexer', 'LogtalkLexer', 'GnuplotLexer', 'PovrayLexer',
28
+ 'AppleScriptLexer', 'ModelicaLexer', 'RebolLexer', 'ABAPLexer',
29
+ 'NewspeakLexer', 'GherkinLexer', 'AsymptoteLexer', 'PostScriptLexer',
30
+ 'AutohotkeyLexer', 'GoodDataCLLexer', 'MaqlLexer', 'ProtoBufLexer',
31
+ 'HybrisLexer', 'AwkLexer', 'Cfengine3Lexer', 'SnobolLexer',
32
+ 'ECLLexer', 'UrbiscriptLexer', 'OpenEdgeLexer', 'BroLexer']
33
33
 
34
34
 
35
- class SqlLexer(RegexLexer):
35
+ class ECLLexer(RegexLexer):
36
36
  """
37
- Lexer for Structured Query Language. Currently, this lexer does
38
- not recognize any special syntax except ANSI SQL.
39
- """
40
-
41
- name = 'SQL'
42
- aliases = ['sql']
43
- filenames = ['*.sql']
44
- mimetypes = ['text/x-sql']
45
-
46
- flags = re.IGNORECASE
47
- tokens = {
48
- 'root': [
49
- (r'\s+', Text),
50
- (r'--.*?\n', Comment.Single),
51
- (r'/\*', Comment.Multiline, 'multiline-comments'),
52
- (r'(ABORT|ABS|ABSOLUTE|ACCESS|ADA|ADD|ADMIN|AFTER|AGGREGATE|'
53
- r'ALIAS|ALL|ALLOCATE|ALTER|ANALYSE|ANALYZE|AND|ANY|ARE|AS|'
54
- r'ASC|ASENSITIVE|ASSERTION|ASSIGNMENT|ASYMMETRIC|AT|ATOMIC|'
55
- r'AUTHORIZATION|AVG|BACKWARD|BEFORE|BEGIN|BETWEEN|BITVAR|'
56
- r'BIT_LENGTH|BOTH|BREADTH|BY|C|CACHE|CALL|CALLED|CARDINALITY|'
57
- r'CASCADE|CASCADED|CASE|CAST|CATALOG|CATALOG_NAME|CHAIN|'
58
- r'CHARACTERISTICS|CHARACTER_LENGTH|CHARACTER_SET_CATALOG|'
59
- r'CHARACTER_SET_NAME|CHARACTER_SET_SCHEMA|CHAR_LENGTH|CHECK|'
60
- r'CHECKED|CHECKPOINT|CLASS|CLASS_ORIGIN|CLOB|CLOSE|CLUSTER|'
61
- r'COALSECE|COBOL|COLLATE|COLLATION|COLLATION_CATALOG|'
62
- r'COLLATION_NAME|COLLATION_SCHEMA|COLUMN|COLUMN_NAME|'
63
- r'COMMAND_FUNCTION|COMMAND_FUNCTION_CODE|COMMENT|COMMIT|'
64
- r'COMMITTED|COMPLETION|CONDITION_NUMBER|CONNECT|CONNECTION|'
65
- r'CONNECTION_NAME|CONSTRAINT|CONSTRAINTS|CONSTRAINT_CATALOG|'
66
- r'CONSTRAINT_NAME|CONSTRAINT_SCHEMA|CONSTRUCTOR|CONTAINS|'
67
- r'CONTINUE|CONVERSION|CONVERT|COPY|CORRESPONTING|COUNT|'
68
- r'CREATE|CREATEDB|CREATEUSER|CROSS|CUBE|CURRENT|CURRENT_DATE|'
69
- r'CURRENT_PATH|CURRENT_ROLE|CURRENT_TIME|CURRENT_TIMESTAMP|'
70
- r'CURRENT_USER|CURSOR|CURSOR_NAME|CYCLE|DATA|DATABASE|'
71
- r'DATETIME_INTERVAL_CODE|DATETIME_INTERVAL_PRECISION|DAY|'
72
- r'DEALLOCATE|DECLARE|DEFAULT|DEFAULTS|DEFERRABLE|DEFERRED|'
73
- r'DEFINED|DEFINER|DELETE|DELIMITER|DELIMITERS|DEREF|DESC|'
74
- r'DESCRIBE|DESCRIPTOR|DESTROY|DESTRUCTOR|DETERMINISTIC|'
75
- r'DIAGNOSTICS|DICTIONARY|DISCONNECT|DISPATCH|DISTINCT|DO|'
76
- r'DOMAIN|DROP|DYNAMIC|DYNAMIC_FUNCTION|DYNAMIC_FUNCTION_CODE|'
77
- r'EACH|ELSE|ENCODING|ENCRYPTED|END|END-EXEC|EQUALS|ESCAPE|EVERY|'
78
- r'EXCEPT|ESCEPTION|EXCLUDING|EXCLUSIVE|EXEC|EXECUTE|EXISTING|'
79
- r'EXISTS|EXPLAIN|EXTERNAL|EXTRACT|FALSE|FETCH|FINAL|FIRST|FOR|'
80
- r'FORCE|FOREIGN|FORTRAN|FORWARD|FOUND|FREE|FREEZE|FROM|FULL|'
81
- r'FUNCTION|G|GENERAL|GENERATED|GET|GLOBAL|GO|GOTO|GRANT|GRANTED|'
82
- r'GROUP|GROUPING|HANDLER|HAVING|HIERARCHY|HOLD|HOST|IDENTITY|'
83
- r'IGNORE|ILIKE|IMMEDIATE|IMMUTABLE|IMPLEMENTATION|IMPLICIT|IN|'
84
- r'INCLUDING|INCREMENT|INDEX|INDITCATOR|INFIX|INHERITS|INITIALIZE|'
85
- r'INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INSTANTIABLE|'
86
- r'INSTEAD|INTERSECT|INTO|INVOKER|IS|ISNULL|ISOLATION|ITERATE|JOIN|'
87
- r'KEY|KEY_MEMBER|KEY_TYPE|LANCOMPILER|LANGUAGE|LARGE|LAST|'
88
- r'LATERAL|LEADING|LEFT|LENGTH|LESS|LEVEL|LIKE|LIMIT|LISTEN|LOAD|'
89
- r'LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATION|LOCATOR|LOCK|LOWER|'
90
- r'MAP|MATCH|MAX|MAXVALUE|MESSAGE_LENGTH|MESSAGE_OCTET_LENGTH|'
91
- r'MESSAGE_TEXT|METHOD|MIN|MINUTE|MINVALUE|MOD|MODE|MODIFIES|'
92
- r'MODIFY|MONTH|MORE|MOVE|MUMPS|NAMES|NATIONAL|NATURAL|NCHAR|'
93
- r'NCLOB|NEW|NEXT|NO|NOCREATEDB|NOCREATEUSER|NONE|NOT|NOTHING|'
94
- r'NOTIFY|NOTNULL|NULL|NULLABLE|NULLIF|OBJECT|OCTET_LENGTH|OF|OFF|'
95
- r'OFFSET|OIDS|OLD|ON|ONLY|OPEN|OPERATION|OPERATOR|OPTION|OPTIONS|'
96
- r'OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVERLAPS|OVERLAY|OVERRIDING|'
97
- r'OWNER|PAD|PARAMETER|PARAMETERS|PARAMETER_MODE|PARAMATER_NAME|'
98
- r'PARAMATER_ORDINAL_POSITION|PARAMETER_SPECIFIC_CATALOG|'
99
- r'PARAMETER_SPECIFIC_NAME|PARAMATER_SPECIFIC_SCHEMA|PARTIAL|'
100
- r'PASCAL|PENDANT|PLACING|PLI|POSITION|POSTFIX|PRECISION|PREFIX|'
101
- r'PREORDER|PREPARE|PRESERVE|PRIMARY|PRIOR|PRIVILEGES|PROCEDURAL|'
102
- r'PROCEDURE|PUBLIC|READ|READS|RECHECK|RECURSIVE|REF|REFERENCES|'
103
- r'REFERENCING|REINDEX|RELATIVE|RENAME|REPEATABLE|REPLACE|RESET|'
104
- r'RESTART|RESTRICT|RESULT|RETURN|RETURNED_LENGTH|'
105
- r'RETURNED_OCTET_LENGTH|RETURNED_SQLSTATE|RETURNS|REVOKE|RIGHT|'
106
- r'ROLE|ROLLBACK|ROLLUP|ROUTINE|ROUTINE_CATALOG|ROUTINE_NAME|'
107
- r'ROUTINE_SCHEMA|ROW|ROWS|ROW_COUNT|RULE|SAVE_POINT|SCALE|SCHEMA|'
108
- r'SCHEMA_NAME|SCOPE|SCROLL|SEARCH|SECOND|SECURITY|SELECT|SELF|'
109
- r'SENSITIVE|SERIALIZABLE|SERVER_NAME|SESSION|SESSION_USER|SET|'
110
- r'SETOF|SETS|SHARE|SHOW|SIMILAR|SIMPLE|SIZE|SOME|SOURCE|SPACE|'
111
- r'SPECIFIC|SPECIFICTYPE|SPECIFIC_NAME|SQL|SQLCODE|SQLERROR|'
112
- r'SQLEXCEPTION|SQLSTATE|SQLWARNINIG|STABLE|START|STATE|STATEMENT|'
113
- r'STATIC|STATISTICS|STDIN|STDOUT|STORAGE|STRICT|STRUCTURE|STYPE|'
114
- r'SUBCLASS_ORIGIN|SUBLIST|SUBSTRING|SUM|SYMMETRIC|SYSID|SYSTEM|'
115
- r'SYSTEM_USER|TABLE|TABLE_NAME| TEMP|TEMPLATE|TEMPORARY|TERMINATE|'
116
- r'THAN|THEN|TIMESTAMP|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOAST|'
117
- r'TRAILING|TRANSATION|TRANSACTIONS_COMMITTED|'
118
- r'TRANSACTIONS_ROLLED_BACK|TRANSATION_ACTIVE|TRANSFORM|'
119
- r'TRANSFORMS|TRANSLATE|TRANSLATION|TREAT|TRIGGER|TRIGGER_CATALOG|'
120
- r'TRIGGER_NAME|TRIGGER_SCHEMA|TRIM|TRUE|TRUNCATE|TRUSTED|TYPE|'
121
- r'UNCOMMITTED|UNDER|UNENCRYPTED|UNION|UNIQUE|UNKNOWN|UNLISTEN|'
122
- r'UNNAMED|UNNEST|UNTIL|UPDATE|UPPER|USAGE|USER|'
123
- r'USER_DEFINED_TYPE_CATALOG|USER_DEFINED_TYPE_NAME|'
124
- r'USER_DEFINED_TYPE_SCHEMA|USING|VACUUM|VALID|VALIDATOR|VALUES|'
125
- r'VARIABLE|VERBOSE|VERSION|VIEW|VOLATILE|WHEN|WHENEVER|WHERE|'
126
- r'WITH|WITHOUT|WORK|WRITE|YEAR|ZONE)\b', Keyword),
127
- (r'(ARRAY|BIGINT|BINARY|BIT|BLOB|BOOLEAN|CHAR|CHARACTER|DATE|'
128
- r'DEC|DECIMAL|FLOAT|INT|INTEGER|INTERVAL|NUMBER|NUMERIC|REAL|'
129
- r'SERIAL|SMALLINT|VARCHAR|VARYING|INT8|SERIAL8|TEXT)\b',
130
- Name.Builtin),
131
- (r'[+*/<>=~!@#%^&|`?^-]', Operator),
132
- (r'[0-9]+', Number.Integer),
133
- # TODO: Backslash escapes?
134
- (r"'(''|[^'])*'", String.Single),
135
- (r'"(""|[^"])*"', String.Symbol), # not a real string literal in ANSI SQL
136
- (r'[a-zA-Z_][a-zA-Z0-9_]*', Name),
137
- (r'[;:()\[\],\.]', Punctuation)
138
- ],
139
- 'multiline-comments': [
140
- (r'/\*', Comment.Multiline, 'multiline-comments'),
141
- (r'\*/', Comment.Multiline, '#pop'),
142
- (r'[^/\*]+', Comment.Multiline),
143
- (r'[/*]', Comment.Multiline)
144
- ]
145
- }
146
-
37
+ Lexer for the declarative big-data `ECL
38
+ <http://hpccsystems.com/community/docs/ecl-language-reference/html>`_
39
+ language.
147
40
 
148
- class MySqlLexer(RegexLexer):
149
- """
150
- Special lexer for MySQL.
41
+ *New in Pygments 1.5.*
151
42
  """
152
43
 
153
- name = 'MySQL'
154
- aliases = ['mysql']
155
- mimetypes = ['text/x-mysql']
44
+ name = 'ECL'
45
+ aliases = ['ecl']
46
+ filenames = ['*.ecl']
47
+ mimetypes = ['application/x-ecl']
48
+
49
+ flags = re.IGNORECASE | re.MULTILINE
156
50
 
157
- flags = re.IGNORECASE
158
51
  tokens = {
159
52
  'root': [
53
+ include('whitespace'),
54
+ include('statements'),
55
+ ],
56
+ 'whitespace': [
160
57
  (r'\s+', Text),
161
- (r'(#|--\s+).*?\n', Comment.Single),
162
- (r'/\*', Comment.Multiline, 'multiline-comments'),
163
- (r'[0-9]+', Number.Integer),
164
- (r'[0-9]*\.[0-9]+(e[+-][0-9]+)', Number.Float),
165
- # TODO: add backslash escapes
166
- (r"'(''|[^'])*'", String.Single),
167
- (r'"(""|[^"])*"', String.Double),
168
- (r"`(``|[^`])*`", String.Symbol),
169
- (r'[+*/<>=~!@#%^&|`?^-]', Operator),
170
- (r'\b(tinyint|smallint|mediumint|int|integer|bigint|date|'
171
- r'datetime|time|bit|bool|tinytext|mediumtext|longtext|text|'
172
- r'tinyblob|mediumblob|longblob|blob|float|double|double\s+'
173
- r'precision|real|numeric|dec|decimal|timestamp|year|char|'
174
- r'varchar|varbinary|varcharacter|enum|set)(\b\s*)(\()?',
175
- bygroups(Keyword.Type, Text, Punctuation)),
176
- (r'\b(add|all|alter|analyze|and|as|asc|asensitive|before|between|'
177
- r'bigint|binary|blob|both|by|call|cascade|case|change|char|'
178
- r'character|check|collate|column|condition|constraint|continue|'
179
- r'convert|create|cross|current_date|current_time|'
180
- r'current_timestamp|current_user|cursor|database|databases|'
181
- r'day_hour|day_microsecond|day_minute|day_second|dec|decimal|'
182
- r'declare|default|delayed|delete|desc|describe|deterministic|'
183
- r'distinct|distinctrow|div|double|drop|dual|each|else|elseif|'
184
- r'enclosed|escaped|exists|exit|explain|fetch|float|float4|float8'
185
- r'|for|force|foreign|from|fulltext|grant|group|having|'
186
- r'high_priority|hour_microsecond|hour_minute|hour_second|if|'
187
- r'ignore|in|index|infile|inner|inout|insensitive|insert|int|'
188
- r'int1|int2|int3|int4|int8|integer|interval|into|is|iterate|'
189
- r'join|key|keys|kill|leading|leave|left|like|limit|lines|load|'
190
- r'localtime|localtimestamp|lock|long|loop|low_priority|match|'
191
- r'minute_microsecond|minute_second|mod|modifies|natural|'
192
- r'no_write_to_binlog|not|numeric|on|optimize|option|optionally|'
193
- r'or|order|out|outer|outfile|precision|primary|procedure|purge|'
194
- r'raid0|read|reads|real|references|regexp|release|rename|repeat|'
195
- r'replace|require|restrict|return|revoke|right|rlike|schema|'
196
- r'schemas|second_microsecond|select|sensitive|separator|set|'
197
- r'show|smallint|soname|spatial|specific|sql|sql_big_result|'
198
- r'sql_calc_found_rows|sql_small_result|sqlexception|sqlstate|'
199
- r'sqlwarning|ssl|starting|straight_join|table|terminated|then|'
200
- r'to|trailing|trigger|undo|union|unique|unlock|unsigned|update|'
201
- r'usage|use|using|utc_date|utc_time|utc_timestamp|values|'
202
- r'varying|when|where|while|with|write|x509|xor|year_month|'
203
- r'zerofill)\b', Keyword),
204
- # TODO: this list is not complete
205
- (r'\b(auto_increment|engine|charset|tables)\b', Keyword.Pseudo),
206
- (r'(true|false|null)', Name.Constant),
207
- (r'([a-zA-Z_][a-zA-Z0-9_]*)(\s*)(\()',
208
- bygroups(Name.Function, Text, Punctuation)),
58
+ (r'\/\/.*', Comment.Single),
59
+ (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
60
+ ],
61
+ 'statements': [
62
+ include('types'),
63
+ include('keywords'),
64
+ include('functions'),
65
+ include('hash'),
66
+ (r'"', String, 'string'),
67
+ (r'\'', String, 'string'),
68
+ (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float),
69
+ (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
70
+ (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex),
71
+ (r'0[0-7]+[LlUu]*', Number.Oct),
72
+ (r'\d+[LlUu]*', Number.Integer),
73
+ (r'\*/', Error),
74
+ (r'[~!%^&*+=|?:<>/-]+', Operator),
75
+ (r'[{}()\[\],.;]', Punctuation),
209
76
  (r'[a-zA-Z_][a-zA-Z0-9_]*', Name),
210
- (r'@[A-Za-z0-9]*[._]*[A-Za-z0-9]*', Name.Variable),
211
- (r'[;:()\[\],\.]', Punctuation)
212
77
  ],
213
- 'multiline-comments': [
214
- (r'/\*', Comment.Multiline, 'multiline-comments'),
215
- (r'\*/', Comment.Multiline, '#pop'),
216
- (r'[^/\*]+', Comment.Multiline),
217
- (r'[/*]', Comment.Multiline)
218
- ]
78
+ 'hash': [
79
+ (r'^#.*$', Comment.Preproc),
80
+ ],
81
+ 'types': [
82
+ (r'(RECORD|END)[^\d]', Keyword.Declaration),
83
+ (r'((?:ASCII|BIG_ENDIAN|BOOLEAN|DATA|DECIMAL|EBCDIC|INTEGER|PATTERN|'
84
+ r'QSTRING|REAL|RECORD|RULE|SET OF|STRING|TOKEN|UDECIMAL|UNICODE|'
85
+ r'UNSIGNED|VARSTRING|VARUNICODE)\d*)(\s+)',
86
+ bygroups(Keyword.Type, Text)),
87
+ ],
88
+ 'keywords': [
89
+ (r'(APPLY|ASSERT|BUILD|BUILDINDEX|EVALUATE|FAIL|KEYDIFF|KEYPATCH|'
90
+ r'LOADXML|NOTHOR|NOTIFY|OUTPUT|PARALLEL|SEQUENTIAL|SOAPCALL|WAIT'
91
+ r'CHECKPOINT|DEPRECATED|FAILCODE|FAILMESSAGE|FAILURE|GLOBAL|'
92
+ r'INDEPENDENT|ONWARNING|PERSIST|PRIORITY|RECOVERY|STORED|SUCCESS|'
93
+ r'WAIT|WHEN)\b', Keyword.Reserved),
94
+ # These are classed differently, check later
95
+ (r'(ALL|AND|ANY|AS|ATMOST|BEFORE|BEGINC\+\+|BEST|BETWEEN|CASE|CONST|'
96
+ r'COUNTER|CSV|DESCEND|ENCRYPT|ENDC\+\+|ENDMACRO|EXCEPT|EXCLUSIVE|'
97
+ r'EXPIRE|EXPORT|EXTEND|FALSE|FEW|FIRST|FLAT|FULL|FUNCTION|GROUP|'
98
+ r'HEADER|HEADING|HOLE|IFBLOCK|IMPORT|IN|JOINED|KEEP|KEYED|LAST|'
99
+ r'LEFT|LIMIT|LOAD|LOCAL|LOCALE|LOOKUP|MACRO|MANY|MAXCOUNT|'
100
+ r'MAXLENGTH|MIN SKEW|MODULE|INTERFACE|NAMED|NOCASE|NOROOT|NOSCAN|'
101
+ r'NOSORT|NOT|OF|ONLY|OPT|OR|OUTER|OVERWRITE|PACKED|PARTITION|'
102
+ r'PENALTY|PHYSICALLENGTH|PIPE|QUOTE|RELATIONSHIP|REPEAT|RETURN|'
103
+ r'RIGHT|SCAN|SELF|SEPARATOR|SERVICE|SHARED|SKEW|SKIP|SQL|STORE|'
104
+ r'TERMINATOR|THOR|THRESHOLD|TOKEN|TRANSFORM|TRIM|TRUE|TYPE|'
105
+ r'UNICODEORDER|UNSORTED|VALIDATE|VIRTUAL|WHOLE|WILD|WITHIN|XML|'
106
+ r'XPATH|__COMPRESSED__)\b', Keyword.Reserved),
107
+ ],
108
+ 'functions': [
109
+ (r'(ABS|ACOS|ALLNODES|ASCII|ASIN|ASSTRING|ATAN|ATAN2|AVE|CASE|'
110
+ r'CHOOSE|CHOOSEN|CHOOSESETS|CLUSTERSIZE|COMBINE|CORRELATION|COS|'
111
+ r'COSH|COUNT|COVARIANCE|CRON|DATASET|DEDUP|DEFINE|DENORMALIZE|'
112
+ r'DISTRIBUTE|DISTRIBUTED|DISTRIBUTION|EBCDIC|ENTH|ERROR|EVALUATE|'
113
+ r'EVENT|EVENTEXTRA|EVENTNAME|EXISTS|EXP|FAILCODE|FAILMESSAGE|'
114
+ r'FETCH|FROMUNICODE|GETISVALID|GLOBAL|GRAPH|GROUP|HASH|HASH32|'
115
+ r'HASH64|HASHCRC|HASHMD5|HAVING|IF|INDEX|INTFORMAT|ISVALID|'
116
+ r'ITERATE|JOIN|KEYUNICODE|LENGTH|LIBRARY|LIMIT|LN|LOCAL|LOG|LOOP|'
117
+ r'MAP|MATCHED|MATCHLENGTH|MATCHPOSITION|MATCHTEXT|MATCHUNICODE|'
118
+ r'MAX|MERGE|MERGEJOIN|MIN|NOLOCAL|NONEMPTY|NORMALIZE|PARSE|PIPE|'
119
+ r'POWER|PRELOAD|PROCESS|PROJECT|PULL|RANDOM|RANGE|RANK|RANKED|'
120
+ r'REALFORMAT|RECORDOF|REGEXFIND|REGEXREPLACE|REGROUP|REJECTED|'
121
+ r'ROLLUP|ROUND|ROUNDUP|ROW|ROWDIFF|SAMPLE|SET|SIN|SINH|SIZEOF|'
122
+ r'SOAPCALL|SORT|SORTED|SQRT|STEPPED|STORED|SUM|TABLE|TAN|TANH|'
123
+ r'THISNODE|TOPN|TOUNICODE|TRANSFER|TRIM|TRUNCATE|TYPEOF|UNGROUP|'
124
+ r'UNICODEORDER|VARIANCE|WHICH|WORKUNIT|XMLDECODE|XMLENCODE|'
125
+ r'XMLTEXT|XMLUNICODE)\b', Name.Function),
126
+ ],
127
+ 'string': [
128
+ (r'"', String, '#pop'),
129
+ (r'\'', String, '#pop'),
130
+ (r'[^"\']+', String),
131
+ ],
219
132
  }
220
133
 
221
134
 
222
- class SqliteConsoleLexer(Lexer):
223
- """
224
- Lexer for example sessions using sqlite3.
225
-
226
- *New in Pygments 0.11.*
227
- """
228
-
229
- name = 'sqlite3con'
230
- aliases = ['sqlite3']
231
- filenames = ['*.sqlite3-console']
232
- mimetypes = ['text/x-sqlite3-console']
233
-
234
- def get_tokens_unprocessed(self, data):
235
- sql = SqlLexer(**self.options)
236
-
237
- curcode = ''
238
- insertions = []
239
- for match in line_re.finditer(data):
240
- line = match.group()
241
- if line.startswith('sqlite> ') or line.startswith(' ...> '):
242
- insertions.append((len(curcode),
243
- [(0, Generic.Prompt, line[:8])]))
244
- curcode += line[8:]
245
- else:
246
- if curcode:
247
- for item in do_insertions(insertions,
248
- sql.get_tokens_unprocessed(curcode)):
249
- yield item
250
- curcode = ''
251
- insertions = []
252
- if line.startswith('SQL error: '):
253
- yield (match.start(), Generic.Traceback, line)
254
- else:
255
- yield (match.start(), Generic.Output, line)
256
- if curcode:
257
- for item in do_insertions(insertions,
258
- sql.get_tokens_unprocessed(curcode)):
259
- yield item
260
-
261
-
262
135
  class BrainfuckLexer(RegexLexer):
263
136
  """
264
137
  Lexer for the esoteric `BrainFuck <http://www.muppetlabs.com/~breadbox/bf/>`_
@@ -321,191 +194,6 @@ class BefungeLexer(RegexLexer):
321
194
  }
322
195
 
323
196
 
324
-
325
- class BashLexer(RegexLexer):
326
- """
327
- Lexer for (ba|k|)sh shell scripts.
328
-
329
- *New in Pygments 0.6.*
330
- """
331
-
332
- name = 'Bash'
333
- aliases = ['bash', 'sh', 'ksh']
334
- filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass']
335
- mimetypes = ['application/x-sh', 'application/x-shellscript']
336
-
337
- tokens = {
338
- 'root': [
339
- include('basic'),
340
- (r'\$\(\(', Keyword, 'math'),
341
- (r'\$\(', Keyword, 'paren'),
342
- (r'\${#?', Keyword, 'curly'),
343
- (r'`', String.Backtick, 'backticks'),
344
- include('data'),
345
- ],
346
- 'basic': [
347
- (r'\b(if|fi|else|while|do|done|for|then|return|function|case|'
348
- r'select|continue|until|esac|elif)\s*\b',
349
- Keyword),
350
- (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|'
351
- r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|'
352
- r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|'
353
- r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|'
354
- r'shopt|source|suspend|test|time|times|trap|true|type|typeset|'
355
- r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)',
356
- Name.Builtin),
357
- (r'#.*\n', Comment),
358
- (r'\\[\w\W]', String.Escape),
359
- (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)),
360
- (r'[\[\]{}()=]', Operator),
361
- (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String),
362
- (r'&&|\|\|', Operator),
363
- ],
364
- 'data': [
365
- (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double),
366
- (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
367
- (r';', Text),
368
- (r'\s+', Text),
369
- (r'[^=\s\n\[\]{}()$"\'`\\<]+', Text),
370
- (r'\d+(?= |\Z)', Number),
371
- (r'\$#?(\w+|.)', Name.Variable),
372
- (r'<', Text),
373
- ],
374
- 'curly': [
375
- (r'}', Keyword, '#pop'),
376
- (r':-', Keyword),
377
- (r'[a-zA-Z0-9_]+', Name.Variable),
378
- (r'[^}:"\'`$]+', Punctuation),
379
- (r':', Punctuation),
380
- include('root'),
381
- ],
382
- 'paren': [
383
- (r'\)', Keyword, '#pop'),
384
- include('root'),
385
- ],
386
- 'math': [
387
- (r'\)\)', Keyword, '#pop'),
388
- (r'[-+*/%^|&]|\*\*|\|\|', Operator),
389
- (r'\d+', Number),
390
- include('root'),
391
- ],
392
- 'backticks': [
393
- (r'`', String.Backtick, '#pop'),
394
- include('root'),
395
- ],
396
- }
397
-
398
- def analyse_text(text):
399
- return shebang_matches(text, r'(ba|z|)sh')
400
-
401
-
402
- class BashSessionLexer(Lexer):
403
- """
404
- Lexer for simplistic shell sessions.
405
-
406
- *New in Pygments 1.1.*
407
- """
408
-
409
- name = 'Bash Session'
410
- aliases = ['console']
411
- filenames = ['*.sh-session']
412
- mimetypes = ['application/x-shell-session']
413
-
414
- def get_tokens_unprocessed(self, text):
415
- bashlexer = BashLexer(**self.options)
416
-
417
- pos = 0
418
- curcode = ''
419
- insertions = []
420
-
421
- for match in line_re.finditer(text):
422
- line = match.group()
423
- m = re.match(r'^((?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)?|\[\S+[@:]'
424
- r'[^\n]+\].+)[$#%])(.*\n?)', line)
425
- if m:
426
- # To support output lexers (say diff output), the output
427
- # needs to be broken by prompts whenever the output lexer
428
- # changes.
429
- if not insertions:
430
- pos = match.start()
431
-
432
- insertions.append((len(curcode),
433
- [(0, Generic.Prompt, m.group(1))]))
434
- curcode += m.group(2)
435
- elif line.startswith('>'):
436
- insertions.append((len(curcode),
437
- [(0, Generic.Prompt, line[:1])]))
438
- curcode += line[1:]
439
- else:
440
- if insertions:
441
- toks = bashlexer.get_tokens_unprocessed(curcode)
442
- for i, t, v in do_insertions(insertions, toks):
443
- yield pos+i, t, v
444
- yield match.start(), Generic.Output, line
445
- insertions = []
446
- curcode = ''
447
- if insertions:
448
- for i, t, v in do_insertions(insertions,
449
- bashlexer.get_tokens_unprocessed(curcode)):
450
- yield pos+i, t, v
451
-
452
-
453
- class BatchLexer(RegexLexer):
454
- """
455
- Lexer for the DOS/Windows Batch file format.
456
-
457
- *New in Pygments 0.7.*
458
- """
459
- name = 'Batchfile'
460
- aliases = ['bat']
461
- filenames = ['*.bat', '*.cmd']
462
- mimetypes = ['application/x-dos-batch']
463
-
464
- flags = re.MULTILINE | re.IGNORECASE
465
-
466
- tokens = {
467
- 'root': [
468
- # Lines can start with @ to prevent echo
469
- (r'^\s*@', Punctuation),
470
- (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)),
471
- (r'".*?"', String.Double),
472
- (r"'.*?'", String.Single),
473
- # If made more specific, make sure you still allow expansions
474
- # like %~$VAR:zlt
475
- (r'%%?[~$:\w]+%?', Name.Variable),
476
- (r'::.*', Comment), # Technically :: only works at BOL
477
- (r'(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)),
478
- (r'(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)),
479
- (r'(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)),
480
- (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|'
481
- r'setlocal|shift|errorlevel|exist|defined|cmdextversion|'
482
- r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword),
483
- (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator),
484
- include('basic'),
485
- (r'.', Text),
486
- ],
487
- 'echo': [
488
- # Escapes only valid within echo args?
489
- (r'\^\^|\^<|\^>|\^\|', String.Escape),
490
- (r'\n', Text, '#pop'),
491
- include('basic'),
492
- (r'[^\'"^]+', Text),
493
- ],
494
- 'basic': [
495
- (r'".*?"', String.Double),
496
- (r"'.*?'", String.Single),
497
- (r'`.*?`', String.Backtick),
498
- (r'-?\d+', Number),
499
- (r',', Punctuation),
500
- (r'=', Operator),
501
- (r'/\S+', Name),
502
- (r':\w+', Name.Label),
503
- (r'\w:\w+', Text),
504
- (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)),
505
- ],
506
- }
507
-
508
-
509
197
  class RedcodeLexer(RegexLexer):
510
198
  """
511
199
  A simple Redcode lexer based on ICWS'94.
@@ -707,73 +395,6 @@ class SmalltalkLexer(RegexLexer):
707
395
  }
708
396
 
709
397
 
710
- class TcshLexer(RegexLexer):
711
- """
712
- Lexer for tcsh scripts.
713
-
714
- *New in Pygments 0.10.*
715
- """
716
-
717
- name = 'Tcsh'
718
- aliases = ['tcsh', 'csh']
719
- filenames = ['*.tcsh', '*.csh']
720
- mimetypes = ['application/x-csh']
721
-
722
- tokens = {
723
- 'root': [
724
- include('basic'),
725
- (r'\$\(', Keyword, 'paren'),
726
- (r'\${#?', Keyword, 'curly'),
727
- (r'`', String.Backtick, 'backticks'),
728
- include('data'),
729
- ],
730
- 'basic': [
731
- (r'\b(if|endif|else|while|then|foreach|case|default|'
732
- r'continue|goto|breaksw|end|switch|endsw)\s*\b',
733
- Keyword),
734
- (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|'
735
- r'complete|dirs|echo|echotc|eval|exec|exit|'
736
- r'fg|filetest|getxvers|glob|getspath|hashstat|history|hup|inlib|jobs|kill|'
737
- r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|'
738
- r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|set|shift|'
739
- r'sched|setenv|setpath|settc|setty|setxvers|shift|source|stop|suspend|'
740
- r'source|suspend|telltc|time|'
741
- r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|'
742
- r'ver|wait|warp|watchlog|where|which)\s*\b',
743
- Name.Builtin),
744
- (r'#.*\n', Comment),
745
- (r'\\[\w\W]', String.Escape),
746
- (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)),
747
- (r'[\[\]{}()=]+', Operator),
748
- (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String),
749
- ],
750
- 'data': [
751
- (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double),
752
- (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single),
753
- (r'\s+', Text),
754
- (r'[^=\s\n\[\]{}()$"\'`\\]+', Text),
755
- (r'\d+(?= |\Z)', Number),
756
- (r'\$#?(\w+|.)', Name.Variable),
757
- ],
758
- 'curly': [
759
- (r'}', Keyword, '#pop'),
760
- (r':-', Keyword),
761
- (r'[a-zA-Z0-9_]+', Name.Variable),
762
- (r'[^}:"\'`$]+', Punctuation),
763
- (r':', Punctuation),
764
- include('root'),
765
- ],
766
- 'paren': [
767
- (r'\)', Keyword, '#pop'),
768
- include('root'),
769
- ],
770
- 'backticks': [
771
- (r'`', String.Backtick, '#pop'),
772
- include('root'),
773
- ],
774
- }
775
-
776
-
777
398
  class LogtalkLexer(RegexLexer):
778
399
  """
779
400
  For `Logtalk <http://logtalk.org/>`_ source code.
@@ -2915,11 +2536,12 @@ class Cfengine3Lexer(RegexLexer):
2915
2536
  bygroups(Keyword.Reserved,Text,Operator,Text)),
2916
2537
  (r'"', String, 'string'),
2917
2538
  (r'(\w+)(\()', bygroups(Name.Function, Punctuation)),
2918
- (r'([\w.!&|]+)(::)', bygroups(Name.Class, Punctuation)),
2539
+ (r'([\w.!&|\(\)]+)(::)', bygroups(Name.Class, Punctuation)),
2919
2540
  (r'(\w+)(:)', bygroups(Keyword.Declaration,Punctuation)),
2920
2541
  (r'@[\{\(][^\)\}]+[\}\)]', Name.Variable),
2921
2542
  (r'[(){},;]', Punctuation),
2922
2543
  (r'=>', Operator),
2544
+ (r'->', Operator),
2923
2545
  (r'\d+\.\d+', Number.Float),
2924
2546
  (r'\d+', Number.Integer),
2925
2547
  (r'\w+', Name.Function),
@@ -2944,3 +2566,775 @@ class Cfengine3Lexer(RegexLexer):
2944
2566
  (r'\s+', Text),
2945
2567
  ],
2946
2568
  }
2569
+
2570
+
2571
+ class SnobolLexer(RegexLexer):
2572
+ """
2573
+ Lexer for the SNOBOL4 programming language.
2574
+
2575
+ Recognizes the common ASCII equivalents of the original SNOBOL4 operators.
2576
+ Does not require spaces around binary operators.
2577
+
2578
+ *New in Pygments 1.5.*
2579
+ """
2580
+
2581
+ name = "Snobol"
2582
+ aliases = ["snobol"]
2583
+ filenames = ['*.snobol']
2584
+ mimetypes = ['text/x-snobol']
2585
+
2586
+ tokens = {
2587
+ # root state, start of line
2588
+ # comments, continuation lines, and directives start in column 1
2589
+ # as do labels
2590
+ 'root': [
2591
+ (r'\*.*\n', Comment),
2592
+ (r'[\+\.] ', Punctuation, 'statement'),
2593
+ (r'-.*\n', Comment),
2594
+ (r'END\s*\n', Name.Label, 'heredoc'),
2595
+ (r'[A-Za-z\$][\w$]*', Name.Label, 'statement'),
2596
+ (r'\s+', Text, 'statement'),
2597
+ ],
2598
+ # statement state, line after continuation or label
2599
+ 'statement': [
2600
+ (r'\s*\n', Text, '#pop'),
2601
+ (r'\s+', Text),
2602
+ (r'(?<=[^\w.])(LT|LE|EQ|NE|GE|GT|INTEGER|IDENT|DIFFER|LGT|SIZE|'
2603
+ r'REPLACE|TRIM|DUPL|REMDR|DATE|TIME|EVAL|APPLY|OPSYN|LOAD|UNLOAD|'
2604
+ r'LEN|SPAN|BREAK|ANY|NOTANY|TAB|RTAB|REM|POS|RPOS|FAIL|FENCE|'
2605
+ r'ABORT|ARB|ARBNO|BAL|SUCCEED|INPUT|OUTPUT|TERMINAL)(?=[^\w.])',
2606
+ Name.Builtin),
2607
+ (r'[A-Za-z][\w\.]*', Name),
2608
+ # ASCII equivalents of original operators
2609
+ # | for the EBCDIC equivalent, ! likewise
2610
+ # \ for EBCDIC negation
2611
+ (r'\*\*|[\?\$\.!%\*/#+\-@\|&\\!=]', Operator),
2612
+ (r'"[^"]*"', String),
2613
+ (r"'[^']*'", String),
2614
+ # Accept SPITBOL syntax for real numbers
2615
+ # as well as Macro SNOBOL4
2616
+ (r'[0-9]+(?=[^\.EeDd])', Number.Integer),
2617
+ (r'[0-9]+(\.[0-9]*)?([EDed][-+]?[0-9]+)?', Number.Float),
2618
+ # Goto
2619
+ (r':', Punctuation, 'goto'),
2620
+ (r'[\(\)<>,;]', Punctuation),
2621
+ ],
2622
+ # Goto block
2623
+ 'goto': [
2624
+ (r'\s*\n', Text, "#pop:2"),
2625
+ (r'\s+', Text),
2626
+ (r'F|S', Keyword),
2627
+ (r'(\()([A-Za-z][\w.]*)(\))',
2628
+ bygroups(Punctuation, Name.Label, Punctuation))
2629
+ ],
2630
+ # everything after the END statement is basically one
2631
+ # big heredoc.
2632
+ 'heredoc': [
2633
+ (r'.*\n', String.Heredoc)
2634
+ ]
2635
+ }
2636
+
2637
+
2638
+ class UrbiscriptLexer(ExtendedRegexLexer):
2639
+ """
2640
+ For UrbiScript source code.
2641
+
2642
+ *New in Pygments 1.5.*
2643
+ """
2644
+
2645
+ name = 'UrbiScript'
2646
+ aliases = ['urbiscript']
2647
+ filenames = ['*.u']
2648
+ mimetypes = ['application/x-urbiscript']
2649
+
2650
+ flags = re.DOTALL
2651
+
2652
+ ## TODO
2653
+ # - handle Experimental and deprecated tags with specific tokens
2654
+ # - handle Angles and Durations with specific tokens
2655
+
2656
+ def blob_callback(lexer, match, ctx):
2657
+ text_before_blob = match.group(1)
2658
+ blob_start = match.group(2)
2659
+ blob_size_str = match.group(3)
2660
+ blob_size = int(blob_size_str)
2661
+ yield match.start(), String, text_before_blob
2662
+ ctx.pos += len(text_before_blob)
2663
+
2664
+ # if blob size doesn't match blob format (example : "\B(2)(aaa)")
2665
+ # yield blob as a string
2666
+ if ctx.text[match.end() + blob_size] != ")":
2667
+ result = "\\B(" + blob_size_str + ")("
2668
+ yield match.start(), String, result
2669
+ ctx.pos += len(result)
2670
+ return
2671
+
2672
+ # if blob is well formated, yield as Escape
2673
+ blob_text = blob_start + ctx.text[match.end():match.end()+blob_size] + ")"
2674
+ yield match.start(), String.Escape, blob_text
2675
+ ctx.pos = match.end() + blob_size + 1 # +1 is the ending ")"
2676
+
2677
+ tokens = {
2678
+ 'root': [
2679
+ (r'\s+', Text),
2680
+ # comments
2681
+ (r'//.*?\n', Comment),
2682
+ (r'/\*', Comment.Multiline, 'comment'),
2683
+ (r'(?:every|for|loop|while)(?:;|&|\||,)',Keyword),
2684
+ (r'(?:assert|at|break|case|catch|closure|compl|continue|'
2685
+ r'default|else|enum|every|external|finally|for|freezeif|if|new|'
2686
+ r'onleave|return|stopif|switch|this|throw|timeout|try|'
2687
+ r'waituntil|whenever|while)\b', Keyword),
2688
+ (r'(?:asm|auto|bool|char|const_cast|delete|double|dynamic_cast|'
2689
+ r'explicit|export|extern|float|friend|goto|inline|int|'
2690
+ r'long|mutable|namespace|register|reinterpret_cast|short|'
2691
+ r'signed|sizeof|static_cast|struct|template|typedef|typeid|'
2692
+ r'typename|union|unsigned|using|virtual|volatile|'
2693
+ r'wchar_t)\b', Keyword.Reserved),
2694
+ # deprecated keywords, use a meaningfull token when available
2695
+ (r'(?:emit|foreach|internal|loopn|static)\b', Keyword),
2696
+ # ignored keywords, use a meaningfull token when available
2697
+ (r'(?:private|protected|public)\b', Keyword),
2698
+ (r'(?:var|do|const|function|class)\b', Keyword.Declaration),
2699
+ (r'(?:true|false|nil|void)\b', Keyword.Constant),
2700
+ (r'(?:Barrier|Binary|Boolean|CallMessage|Channel|Code|'
2701
+ r'Comparable|Container|Control|Date|Dictionary|Directory|'
2702
+ r'Duration|Enumeration|Event|Exception|Executable|File|Finalizable|'
2703
+ r'Float|FormatInfo|Formatter|Global|Group|Hash|InputStream|'
2704
+ r'IoService|Job|Kernel|Lazy|List|Loadable|Lobby|Location|Logger|Math|'
2705
+ r'Mutex|nil|Object|Orderable|OutputStream|Pair|Path|Pattern|Position|'
2706
+ r'Primitive|Process|Profile|PseudoLazy|PubSub|RangeIterable|Regexp|'
2707
+ r'Semaphore|Server|Singleton|Socket|StackFrame|Stream|String|System|'
2708
+ r'Tag|Timeout|Traceable|TrajectoryGenerator|Triplet|Tuple'
2709
+ r'|UObject|UValue|UVar)\b', Name.Builtin),
2710
+ (r'(?:this)\b', Name.Builtin.Pseudo),
2711
+ # don't match single | and &
2712
+ (r'(?:[-=+*%/<>~^:]+|\.&?|\|\||&&)', Operator),
2713
+ (r'(?:and_eq|and|bitand|bitor|in|not|not_eq|or_eq|or|xor_eq|xor)\b',
2714
+ Operator.Word),
2715
+ (r'[{}\[\]()]+', Punctuation),
2716
+ (r'(?:;|\||,|&|\?|!)+', Punctuation),
2717
+ (r'[$a-zA-Z_][a-zA-Z0-9_]*', Name.Other),
2718
+ (r'0x[0-9a-fA-F]+', Number.Hex),
2719
+ # Float, Integer, Angle and Duration
2720
+ (r'(?:[0-9]+(?:(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?)?'
2721
+ r'((?:rad|deg|grad)|(?:ms|s|min|h|d))?)\b', Number.Float),
2722
+ # handle binary blob in strings
2723
+ (r'"', String.Double, "string.double"),
2724
+ (r"'", String.Single, "string.single"),
2725
+ ],
2726
+ 'string.double': [
2727
+ (r'((?:\\\\|\\"|[^"])*?)(\\B\((\d+)\)\()', blob_callback),
2728
+ (r'(\\\\|\\"|[^"])*?"', String.Double, '#pop'),
2729
+ ],
2730
+ 'string.single': [
2731
+ (r"((?:\\\\|\\'|[^'])*?)(\\B\((\d+)\)\()", blob_callback),
2732
+ (r"(\\\\|\\'|[^'])*?'", String.Single, '#pop'),
2733
+ ],
2734
+ # from http://pygments.org/docs/lexerdevelopment/#changing-states
2735
+ 'comment': [
2736
+ (r'[^*/]', Comment.Multiline),
2737
+ (r'/\*', Comment.Multiline, '#push'),
2738
+ (r'\*/', Comment.Multiline, '#pop'),
2739
+ (r'[*/]', Comment.Multiline),
2740
+ ]
2741
+ }
2742
+
2743
+
2744
+ class OpenEdgeLexer(RegexLexer):
2745
+ """
2746
+ Lexer for `OpenEdge ABL (formerly Progress)
2747
+ <http://web.progress.com/en/openedge/abl.html>`_ source code.
2748
+
2749
+ *New in Pygments 1.5.*
2750
+ """
2751
+ name = 'OpenEdge ABL'
2752
+ aliases = ['openedge', 'abl', 'progress']
2753
+ filenames = ['*.p', '*.cls']
2754
+ mimetypes = ['text/x-openedge', 'application/x-openedge']
2755
+
2756
+ types = (r'(?i)(^|(?<=[^0-9a-z_\-]))(CHARACTER|CHAR|CHARA|CHARAC|CHARACT|CHARACTE|'
2757
+ r'COM-HANDLE|DATE|DATETIME|DATETIME-TZ|'
2758
+ r'DECIMAL|DEC|DECI|DECIM|DECIMA|HANDLE|'
2759
+ r'INT64|INTEGER|INT|INTE|INTEG|INTEGE|'
2760
+ r'LOGICAL|LONGCHAR|MEMPTR|RAW|RECID|ROWID)\s*($|(?=[^0-9a-z_\-]))')
2761
+
2762
+ keywords = (r'(?i)(^|(?<=[^0-9a-z_\-]))(ABSOLUTE|ABS|ABSO|ABSOL|ABSOLU|ABSOLUT|ACCELERATOR|'
2763
+ r'ACCUM|ACCUMULATE|ACCUM|ACCUMU|ACCUMUL|ACCUMULA|ACCUMULAT|'
2764
+ r'ACTIVE-FORM|ACTIVE-WINDOW|ADD|ADD-BUFFER|'
2765
+ r'ADD-CALC-COLUMN|ADD-COLUMNS-FROM|ADD-EVENTS-PROCEDURE|'
2766
+ r'ADD-FIELDS-FROM|ADD-FIRST|ADD-INDEX-FIELD|ADD-LAST|'
2767
+ r'ADD-LIKE-COLUMN|ADD-LIKE-FIELD|ADD-LIKE-INDEX|'
2768
+ r'ADD-NEW-FIELD|ADD-NEW-INDEX|ADD-SCHEMA-LOCATION|ADD-SUPER-PROCEDURE|'
2769
+ r'ADM-DATA|ADVISE|ALERT-BOX|ALIAS|ALL|ALLOW-COLUMN-SEARCHING|'
2770
+ r'ALLOW-REPLICATION|ALTER|ALWAYS-ON-TOP|AMBIGUOUS|AMBIG|AMBIGU|AMBIGUO|AMBIGUOU|'
2771
+ r'ANALYZE|ANALYZ|AND|ANSI-ONLY|ANY|ANYWHERE|APPEND|APPL-ALERT-BOXES|'
2772
+ r'APPL-ALERT|APPL-ALERT-|APPL-ALERT-B|APPL-ALERT-BO|APPL-ALERT-BOX|APPL-ALERT-BOXE|'
2773
+ r'APPL-CONTEXT-ID|APPLICATION|APPLY|APPSERVER-INFO|APPSERVER-PASSWORD|'
2774
+ r'APPSERVER-USERID|ARRAY-MESSAGE|AS|ASC|ASCENDING|ASCE|ASCEN|'
2775
+ r'ASCEND|ASCENDI|ASCENDIN|ASK-OVERWRITE|ASSEMBLY|ASSIGN|'
2776
+ r'ASYNCHRONOUS|ASYNC-REQUEST-COUNT|ASYNC-REQUEST-HANDLE|AT|'
2777
+ r'ATTACHED-PAIRLIST|ATTR-SPACE|ATTR|ATTRI|ATTRIB|ATTRIBU|ATTRIBUT|'
2778
+ r'AUDIT-CONTROL|AUDIT-ENABLED|AUDIT-EVENT-CONTEXT|AUDIT-POLICY|'
2779
+ r'AUTHENTICATION-FAILED|AUTHORIZATION|AUTO-COMPLETION|AUTO-COMP|'
2780
+ r'AUTO-COMPL|AUTO-COMPLE|AUTO-COMPLET|AUTO-COMPLETI|AUTO-COMPLETIO|'
2781
+ r'AUTO-ENDKEY|AUTO-END-KEY|AUTO-GO|AUTO-INDENT|AUTO-IND|'
2782
+ r'AUTO-INDE|AUTO-INDEN|AUTOMATIC|AUTO-RESIZE|AUTO-RETURN|AUTO-RET|'
2783
+ r'AUTO-RETU|AUTO-RETUR|AUTO-SYNCHRONIZE|AUTO-ZAP|AUTO-Z|AUTO-ZA|'
2784
+ r'AVAILABLE|AVAIL|AVAILA|AVAILAB|AVAILABL|AVAILABLE-FORMATS|'
2785
+ r'AVERAGE|AVE|AVER|AVERA|AVERAG|AVG|BACKGROUND|BACK|BACKG|'
2786
+ r'BACKGR|BACKGRO|BACKGROU|BACKGROUN|BACKWARDS|BACKWARD|'
2787
+ r'BASE64-DECODE|BASE64-ENCODE|BASE-ADE|BASE-KEY|BATCH-MODE|BATCH|'
2788
+ r'BATCH-|BATCH-M|BATCH-MO|BATCH-MOD|BATCH-SIZE|BEFORE-HIDE|BEFORE-H|'
2789
+ r'BEFORE-HI|BEFORE-HID|BEGIN-EVENT-GROUP|BEGINS|BELL|BETWEEN|'
2790
+ r'BGCOLOR|BGC|BGCO|BGCOL|BGCOLO|BIG-ENDIAN|BINARY|BIND|BIND-WHERE|'
2791
+ r'BLANK|BLOCK-ITERATION-DISPLAY|BORDER-BOTTOM-CHARS|BORDER-B|'
2792
+ r'BORDER-BO|BORDER-BOT|BORDER-BOTT|BORDER-BOTTO|BORDER-BOTTOM-PIXELS|'
2793
+ r'BORDER-BOTTOM-P|BORDER-BOTTOM-PI|BORDER-BOTTOM-PIX|'
2794
+ r'BORDER-BOTTOM-PIXE|BORDER-BOTTOM-PIXEL|BORDER-LEFT-CHARS|BORDER-L|'
2795
+ r'BORDER-LE|BORDER-LEF|BORDER-LEFT|BORDER-LEFT-|BORDER-LEFT-C|'
2796
+ r'BORDER-LEFT-CH|BORDER-LEFT-CHA|BORDER-LEFT-CHAR|BORDER-LEFT-PIXELS|'
2797
+ r'BORDER-LEFT-P|BORDER-LEFT-PI|BORDER-LEFT-PIX|BORDER-LEFT-PIXE|'
2798
+ r'BORDER-LEFT-PIXEL|BORDER-RIGHT-CHARS|BORDER-R|BORDER-RI|BORDER-RIG|'
2799
+ r'BORDER-RIGH|BORDER-RIGHT|BORDER-RIGHT-|BORDER-RIGHT-C|BORDER-RIGHT-CH|'
2800
+ r'BORDER-RIGHT-CHA|BORDER-RIGHT-CHAR|BORDER-RIGHT-PIXELS|BORDER-RIGHT-P|'
2801
+ r'BORDER-RIGHT-PI|BORDER-RIGHT-PIX|BORDER-RIGHT-PIXE|BORDER-RIGHT-PIXEL|'
2802
+ r'BORDER-TOP-CHARS|BORDER-T|BORDER-TO|BORDER-TOP|BORDER-TOP-|BORDER-TOP-C|'
2803
+ r'BORDER-TOP-CH|BORDER-TOP-CHA|BORDER-TOP-CHAR|BORDER-TOP-PIXELS|'
2804
+ r'BORDER-TOP-P|BORDER-TOP-PI|BORDER-TOP-PIX|BORDER-TOP-PIXE|BORDER-TOP-PIXEL|'
2805
+ r'BOX|BOX-SELECTABLE|BOX-SELECT|BOX-SELECTA|BOX-SELECTAB|BOX-SELECTABL|'
2806
+ r'BREAK|BROWSE|BUFFER|BUFFER-CHARS|BUFFER-COMPARE|BUFFER-COPY|BUFFER-CREATE|'
2807
+ r'BUFFER-DELETE|BUFFER-FIELD|BUFFER-HANDLE|BUFFER-LINES|BUFFER-NAME|'
2808
+ r'BUFFER-RELEASE|BUFFER-VALUE|BUTTON|BUTTONS|BUTTON|BY|BY-POINTER|'
2809
+ r'BY-VARIANT-POINTER|CACHE|CACHE-SIZE|CALL|CALL-NAME|CALL-TYPE|CANCEL-BREAK|'
2810
+ r'CANCEL-BUTTON|CAN-CREATE|CAN-DELETE|CAN-DO|CAN-FIND|CAN-QUERY|CAN-READ|'
2811
+ r'CAN-SET|CAN-WRITE|CAPS|CAREFUL-PAINT|CASE|CASE-SENSITIVE|CASE-SEN|'
2812
+ r'CASE-SENS|CASE-SENSI|CASE-SENSIT|CASE-SENSITI|CASE-SENSITIV|'
2813
+ r'CAST|CATCH|CDECL|CENTERED|CENTER|CENTERE|CHAINED|CHARACTER_LENGTH|'
2814
+ r'CHARSET|CHECK|CHECKED|CHOOSE|CHR|CLASS|CLASS-TYPE|CLEAR|'
2815
+ r'CLEAR-APPL-CONTEXT|CLEAR-LOG|CLEAR-SELECTION|CLEAR-SELECT|'
2816
+ r'CLEAR-SELECTI|CLEAR-SELECTIO|CLEAR-SORT-ARROWS|CLEAR-SORT-ARROW|'
2817
+ r'CLIENT-CONNECTION-ID|CLIENT-PRINCIPAL|CLIENT-TTY|CLIENT-TYPE|'
2818
+ r'CLIENT-WORKSTATION|CLIPBOARD|CLOSE|CLOSE-LOG|CODE|CODEBASE-LOCATOR|'
2819
+ r'CODEPAGE|CODEPAGE-CONVERT|COLLATE|COL-OF|COLON|COLON-ALIGNED|'
2820
+ r'COLON-ALIGN|COLON-ALIGNE|COLOR|COLOR-TABLE|COLUMN|COL|COLU|COLUM|'
2821
+ r'COLUMN-BGCOLOR|COLUMN-DCOLOR|COLUMN-FGCOLOR|COLUMN-FONT|COLUMN-LABEL|'
2822
+ r'COLUMN-LAB|COLUMN-LABE|COLUMN-MOVABLE|COLUMN-OF|COLUMN-PFCOLOR|'
2823
+ r'COLUMN-READ-ONLY|COLUMN-RESIZABLE|COLUMNS|COLUMN-SCROLLING|'
2824
+ r'COMBO-BOX|COMMAND|COMPARES|COMPILE|COMPILER|COMPLETE|COM-SELF|'
2825
+ r'CONFIG-NAME|CONNECT|CONNECTED|CONSTRUCTOR|CONTAINS|CONTENTS|CONTEXT|'
2826
+ r'CONTEXT-HELP|CONTEXT-HELP-FILE|CONTEXT-HELP-ID|CONTEXT-POPUP|'
2827
+ r'CONTROL|CONTROL-BOX|CONTROL-FRAME|CONVERT|CONVERT-3D-COLORS|'
2828
+ r'CONVERT-TO-OFFSET|CONVERT-TO-OFFS|CONVERT-TO-OFFSE|COPY-DATASET|'
2829
+ r'COPY-LOB|COPY-SAX-ATTRIBUTES|COPY-TEMP-TABLE|COUNT|COUNT-OF|'
2830
+ r'CPCASE|CPCOLL|CPINTERNAL|CPLOG|CPPRINT|CPRCODEIN|CPRCODEOUT|'
2831
+ r'CPSTREAM|CPTERM|CRC-VALUE|CREATE|CREATE-LIKE|CREATE-LIKE-SEQUENTIAL|'
2832
+ r'CREATE-NODE-NAMESPACE|CREATE-RESULT-LIST-ENTRY|CREATE-TEST-FILE|'
2833
+ r'CURRENT|CURRENT_DATE|CURRENT_DATE|CURRENT-CHANGED|CURRENT-COLUMN|'
2834
+ r'CURRENT-ENVIRONMENT|CURRENT-ENV|CURRENT-ENVI|CURRENT-ENVIR|'
2835
+ r'CURRENT-ENVIRO|CURRENT-ENVIRON|CURRENT-ENVIRONM|CURRENT-ENVIRONME|'
2836
+ r'CURRENT-ENVIRONMEN|CURRENT-ITERATION|CURRENT-LANGUAGE|CURRENT-LANG|'
2837
+ r'CURRENT-LANGU|CURRENT-LANGUA|CURRENT-LANGUAG|CURRENT-QUERY|'
2838
+ r'CURRENT-RESULT-ROW|CURRENT-ROW-MODIFIED|CURRENT-VALUE|CURRENT-WINDOW|'
2839
+ r'CURSOR|CURS|CURSO|CURSOR-CHAR|CURSOR-LINE|CURSOR-OFFSET|DATABASE|'
2840
+ r'DATA-BIND|DATA-ENTRY-RETURN|DATA-ENTRY-RET|DATA-ENTRY-RETU|'
2841
+ r'DATA-ENTRY-RETUR|DATA-RELATION|DATA-REL|DATA-RELA|DATA-RELAT|'
2842
+ r'DATA-RELATI|DATA-RELATIO|DATASERVERS|DATASET|DATASET-HANDLE|DATA-SOURCE|'
2843
+ r'DATA-SOURCE-COMPLETE-MAP|DATA-SOURCE-MODIFIED|DATA-SOURCE-ROWID|'
2844
+ r'DATA-TYPE|DATA-T|DATA-TY|DATA-TYP|DATE-FORMAT|DATE-F|DATE-FO|'
2845
+ r'DATE-FOR|DATE-FORM|DATE-FORMA|DAY|DBCODEPAGE|DBCOLLATION|DBNAME|'
2846
+ r'DBPARAM|DB-REFERENCES|DBRESTRICTIONS|DBREST|DBRESTR|DBRESTRI|'
2847
+ r'DBRESTRIC|DBRESTRICT|DBRESTRICTI|DBRESTRICTIO|DBRESTRICTION|'
2848
+ r'DBTASKID|DBTYPE|DBVERSION|DBVERS|DBVERSI|DBVERSIO|DCOLOR|'
2849
+ r'DDE|DDE-ERROR|DDE-ID|DDE-I|DDE-ITEM|DDE-NAME|DDE-TOPIC|DEBLANK|'
2850
+ r'DEBUG|DEBU|DEBUG-ALERT|DEBUGGER|DEBUG-LIST|DECIMALS|DECLARE|'
2851
+ r'DECLARE-NAMESPACE|DECRYPT|DEFAULT|DEFAULT-BUFFER-HANDLE|'
2852
+ r'DEFAULT-BUTTON|DEFAUT-B|DEFAUT-BU|DEFAUT-BUT|DEFAUT-BUTT|DEFAUT-BUTTO|'
2853
+ r'DEFAULT-COMMIT|DEFAULT-EXTENSION|DEFAULT-EX|DEFAULT-EXT|DEFAULT-EXTE|'
2854
+ r'DEFAULT-EXTEN|DEFAULT-EXTENS|DEFAULT-EXTENSI|DEFAULT-EXTENSIO|'
2855
+ r'DEFAULT-NOXLATE|DEFAULT-NOXL|DEFAULT-NOXLA|DEFAULT-NOXLAT|'
2856
+ r'DEFAULT-VALUE|DEFAULT-WINDOW|DEFINED|'
2857
+ r'DEFINE-USER-EVENT-MANAGER|DELETE|DEL|DELE|DELET|DELETE-CHARACTER|'
2858
+ r'DELETE-CHAR|DELETE-CHARA|DELETE-CHARAC|DELETE-CHARACT|DELETE-CHARACTE|'
2859
+ r'DELETE-CURRENT-ROW|DELETE-LINE|DELETE-RESULT-LIST-ENTRY|DELETE-SELECTED-ROW|'
2860
+ r'DELETE-SELECTED-ROWS|DELIMITER|DESC|DESCENDING|DESC|DESCE|DESCEN|'
2861
+ r'DESCEND|DESCENDI|DESCENDIN|DESELECT-FOCUSED-ROW|DESELECTION|'
2862
+ r'DESELECT-ROWS|DESELECT-SELECTED-ROW|DESTRUCTOR|DIALOG-BOX|'
2863
+ r'DICTIONARY|DICT|DICTI|DICTIO|DICTION|DICTIONA|DICTIONAR|'
2864
+ r'DIR|DISABLE|DISABLE-AUTO-ZAP|DISABLED|DISABLE-DUMP-TRIGGERS|'
2865
+ r'DISABLE-LOAD-TRIGGERS|DISCONNECT|DISCON|DISCONN|DISCONNE|DISCONNEC|'
2866
+ r'DISP|DISPLAY|DISP|DISPL|DISPLA|DISPLAY-MESSAGE|DISPLAY-TYPE|'
2867
+ r'DISPLAY-T|DISPLAY-TY|DISPLAY-TYP|DISTINCT|DO|DOMAIN-DESCRIPTION|'
2868
+ r'DOMAIN-NAME|DOMAIN-TYPE|DOS|DOUBLE|DOWN|DRAG-ENABLED|DROP|DROP-DOWN|'
2869
+ r'DROP-DOWN-LIST|DROP-FILE-NOTIFY|DROP-TARGET|DUMP|DYNAMIC|'
2870
+ r'DYNAMIC-FUNCTION|EACH|ECHO|EDGE-CHARS|EDGE|EDGE-|EDGE-C|'
2871
+ r'EDGE-CH|EDGE-CHA|EDGE-CHAR|EDGE-PIXELS|EDGE-P|EDGE-PI|EDGE-PIX|'
2872
+ r'EDGE-PIXE|EDGE-PIXEL|EDIT-CAN-PASTE|EDIT-CAN-UNDO|EDIT-CLEAR|'
2873
+ r'EDIT-COPY|EDIT-CUT|EDITING|EDITOR|EDIT-PASTE|EDIT-UNDO|ELSE|'
2874
+ r'EMPTY|EMPTY-TEMP-TABLE|ENABLE|ENABLED-FIELDS|ENCODE|ENCRYPT|'
2875
+ r'ENCRYPT-AUDIT-MAC-KEY|ENCRYPTION-SALT|END|END-DOCUMENT|'
2876
+ r'END-ELEMENT|END-EVENT-GROUP|END-FILE-DROP|ENDKEY|END-KEY|'
2877
+ r'END-MOVE|END-RESIZE|END-ROW-RESIZE|END-USER-PROMPT|ENTERED|'
2878
+ r'ENTRY|EQ|ERROR|ERROR-COLUMN|ERROR-COL|ERROR-COLU|ERROR-COLUM|'
2879
+ r'ERROR-ROW|ERROR-STACK-TRACE|ERROR-STATUS|ERROR-STAT|ERROR-STATU|'
2880
+ r'ESCAPE|ETIME|EVENT-GROUP-ID|EVENT-PROCEDURE|EVENT-PROCEDURE-CONTEXT|'
2881
+ r'EVENTS|EVENT|EVENT-TYPE|EVENT-T|EVENT-TY|EVENT-TYP|EXCEPT|'
2882
+ r'EXCLUSIVE-ID|EXCLUSIVE-LOCK|EXCLUSIVE|EXCLUSIVE-|EXCLUSIVE-L|'
2883
+ r'EXCLUSIVE-LO|EXCLUSIVE-LOC|EXCLUSIVE-WEB-USER|EXECUTE|EXISTS|'
2884
+ r'EXP|EXPAND|EXPANDABLE|EXPLICIT|EXPORT|EXPORT-PRINCIPAL|EXTENDED|'
2885
+ r'EXTENT|EXTERNAL|FALSE|FETCH|FETCH-SELECTED-ROW|FGCOLOR|FGC|FGCO|'
2886
+ r'FGCOL|FGCOLO|FIELD|FIELDS|FIELD|FILE|FILE-CREATE-DATE|'
2887
+ r'FILE-CREATE-TIME|FILE-INFORMATION|FILE-INFO|FILE-INFOR|FILE-INFORM|'
2888
+ r'FILE-INFORMA|FILE-INFORMAT|FILE-INFORMATI|FILE-INFORMATIO|FILE-MOD-DATE|'
2889
+ r'FILE-MOD-TIME|FILENAME|FILE-NAME|FILE-OFFSET|FILE-OFF|FILE-OFFS|FILE-OFFSE|'
2890
+ r'FILE-SIZE|FILE-TYPE|FILL|FILLED|FILL-IN|FILTERS|FINAL|FINALLY|FIND|'
2891
+ r'FIND-BY-ROWID|FIND-CASE-SENSITIVE|FIND-CURRENT|FINDER|FIND-FIRST|'
2892
+ r'FIND-GLOBAL|FIND-LAST|FIND-NEXT-OCCURRENCE|FIND-PREV-OCCURRENCE|'
2893
+ r'FIND-SELECT|FIND-UNIQUE|FIND-WRAP-AROUND|FIRST|FIRST-ASYNCH-REQUEST|'
2894
+ r'FIRST-CHILD|FIRST-COLUMN|FIRST-FORM|FIRST-OBJECT|FIRST-OF|'
2895
+ r'FIRST-PROCEDURE|FIRST-PROC|FIRST-PROCE|FIRST-PROCED|FIRST-PROCEDU|FIRST-PROCEDUR|'
2896
+ r'FIRST-SERVER|FIRST-TAB-ITEM|FIRST-TAB-I|FIRST-TAB-IT|FIRST-TAB-ITE|'
2897
+ r'FIT-LAST-COLUMN|FIXED-ONLY|FLAT-BUTTON|FLOAT|FOCUS|FOCUSED-ROW|'
2898
+ r'FOCUSED-ROW-SELECTED|FONT|FONT-TABLE|FOR|FORCE-FILE|'
2899
+ r'FOREGROUND|FORE|FOREG|FOREGR|FOREGRO|FOREGROU|FOREGROUN|'
2900
+ r'FORM|FORMAT|FORM|FORMA|FORMATTED|FORMATTE|FORM-LONG-INPUT|'
2901
+ r'FORWARD|FORWARDS|FORWARD|FRAGMENT|FRAGMEN|FRAME|FRAM|'
2902
+ r'FRAME-COL|FRAME-DB|FRAME-DOWN|FRAME-FIELD|FRAME-FILE|'
2903
+ r'FRAME-INDEX|FRAME-INDE|FRAME-LINE|FRAME-NAME|FRAME-ROW|'
2904
+ r'FRAME-SPACING|FRAME-SPA|FRAME-SPAC|FRAME-SPACI|FRAME-SPACIN|'
2905
+ r'FRAME-VALUE|FRAME-VAL|FRAME-VALU|FRAME-X|FRAME-Y|FREQUENCY|FROM|'
2906
+ r'FROM-CHARS|FROM-C|FROM-CH|FROM-CHA|FROM-CHAR|'
2907
+ r'FROM-CURRENT|FROM-CUR|FROM-CURR|FROM-CURRE|FROM-CURREN|'
2908
+ r'FROM-PIXELS|FROM-P|FROM-PI|FROM-PIX|FROM-PIXE|FROM-PIXEL|'
2909
+ r'FULL-HEIGHT-CHARS|FULL-HEIGHT|FULL-HEIGHT-|FULL-HEIGHT-C|FULL-HEIGHT-CH|FULL-HEIGHT-CHA|FULL-HEIGHT-CHAR|'
2910
+ r'FULL-HEIGHT-PIXELS|FULL-HEIGHT-P|FULL-HEIGHT-PI|FULL-HEIGHT-PIX|FULL-HEIGHT-PIXE|FULL-HEIGHT-PIXEL|'
2911
+ r'FULL-PATHNAME|FULL-PATHN|FULL-PATHNA|FULL-PATHNAM|'
2912
+ r'FULL-WIDTH-CHARS|FULL-WIDTH|FULL-WIDTH-|FULL-WIDTH-C|FULL-WIDTH-CH|FULL-WIDTH-CHA|FULL-WIDTH-CHAR|'
2913
+ r'FULL-WIDTH-PIXELS|FULL-WIDTH-P|FULL-WIDTH-PI|FULL-WIDTH-PIX|FULL-WIDTH-PIXE|FULL-WIDTH-PIXEL|'
2914
+ r'FUNCTION|FUNCTION-CALL-TYPE|GATEWAYS|GATEWAY|GE|GENERATE-MD5|'
2915
+ r'GENERATE-PBE-KEY|GENERATE-PBE-SALT|GENERATE-RANDOM-KEY|GENERATE-UUID|GET|'
2916
+ r'GET-ATTR-CALL-TYPE|GET-ATTRIBUTE-NODE|GET-BINARY-DATA|'
2917
+ r'GET-BLUE-VALUE|GET-BLUE|GET-BLUE-|GET-BLUE-V|GET-BLUE-VA|GET-BLUE-VAL|GET-BLUE-VALU|'
2918
+ r'GET-BROWSE-COLUMN|GET-BUFFER-HANDLEGETBYTE|GET-BYTE|GET-CALLBACK-PROC-CONTEXT|'
2919
+ r'GET-CALLBACK-PROC-NAME|GET-CGI-LIST|GET-CGI-LONG-VALUE|GET-CGI-VALUE|'
2920
+ r'GET-CODEPAGES|GET-COLLATIONS|GET-CONFIG-VALUE|GET-CURRENT|GET-DOUBLE|'
2921
+ r'GET-DROPPED-FILE|GET-DYNAMIC|GET-ERROR-COLUMN|GET-ERROR-ROW|GET-FILE|'
2922
+ r'GET-FILE-NAME|GET-FILE-OFFSET|GET-FILE-OFFSE|GET-FIRST|GET-FLOAT|'
2923
+ r'GET-GREEN-VALUE|GET-GREEN|GET-GREEN-|GET-GREEN-V|GET-GREEN-VA|GET-GREEN-VAL|GET-GREEN-VALU|'
2924
+ r'GET-INDEX-BY-NAMESPACE-NAME|GET-INDEX-BY-QNAME|GET-INT64|GET-ITERATION|'
2925
+ r'GET-KEY-VALUE|GET-KEY-VAL|GET-KEY-VALU|GET-LAST|GET-LOCALNAME-BY-INDEX|'
2926
+ r'GET-LONG|GET-MESSAGE|GET-NEXT|GET-NUMBER|GET-POINTER-VALUE|'
2927
+ r'GET-PREV|GET-PRINTERS|GET-PROPERTY|GET-QNAME-BY-INDEX|'
2928
+ r'GET-RED-VALUE|GET-RED|GET-RED-|GET-RED-V|GET-RED-VA|GET-RED-VAL|GET-RED-VALU|'
2929
+ r'GET-REPOSITIONED-ROW|GET-RGB-VALUE|'
2930
+ r'GET-SELECTED-WIDGET|GET-SELECTED|GET-SELECTED-|GET-SELECTED-W|GET-SELECTED-WI|GET-SELECTED-WID|GET-SELECTED-WIDG|GET-SELECTED-WIDGE|'
2931
+ r'GET-SHORT|GET-SIGNATURE|GET-SIZE|GET-STRING|GET-TAB-ITEM|'
2932
+ r'GET-TEXT-HEIGHT-CHARS|GET-TEXT-HEIGHT|GET-TEXT-HEIGHT-|GET-TEXT-HEIGHT-C|GET-TEXT-HEIGHT-CH|GET-TEXT-HEIGHT-CHA|GET-TEXT-HEIGHT-CHAR|'
2933
+ r'GET-TEXT-HEIGHT-PIXELS|GET-TEXT-HEIGHT-P|GET-TEXT-HEIGHT-PI|GET-TEXT-HEIGHT-PIX|GET-TEXT-HEIGHT-PIXE|GET-TEXT-HEIGHT-PIXEL|'
2934
+ r'GET-TEXT-WIDTH-CHARS|GET-TEXT-WIDTH|GET-TEXT-WIDTH-|GET-TEXT-WIDTH-C|GET-TEXT-WIDTH-CH|GET-TEXT-WIDTH-CHA|GET-TEXT-WIDTH-CHAR|'
2935
+ r'GET-TEXT-WIDTH-PIXELS|GET-TEXT-WIDTH-P|GET-TEXT-WIDTH-PI|GET-TEXT-WIDTH-PIX|GET-TEXT-WIDTH-PIXE|GET-TEXT-WIDTH-PIXEL|'
2936
+ r'GET-TYPE-BY-INDEX|GET-TYPE-BY-NAMESPACE-NAME|GET-TYPE-BY-QNAME|GET-UNSIGNED-LONG|'
2937
+ r'GET-UNSIGNED-SHORT|GET-URI-BY-INDEX|GET-VALUE-BY-INDEX|GET-VALUE-BY-NAMESPACE-NAME|'
2938
+ r'GET-VALUE-BY-QNAME|GET-WAIT-STATE|GLOBAL|GO-ON|'
2939
+ r'GO-PENDING|GO-PEND|GO-PENDI|GO-PENDIN|GRANT|'
2940
+ r'GRAPHIC-EDGE|GRAPHIC-E|GRAPHIC-ED|GRAPHIC-EDG|'
2941
+ r'GRID-FACTOR-HORIZONTAL|GRID-FACTOR-H|GRID-FACTOR-HO|GRID-FACTOR-HOR|GRID-FACTOR-HORI|GRID-FACTOR-HORIZ|GRID-FACTOR-HORIZO|GRID-FACTOR-HORIZON|GRID-FACTOR-HORIZONT|GRID-FACTOR-HORIZONTA|'
2942
+ r'GRID-FACTOR-VERTICAL|GRID-FACTOR-V|GRID-FACTOR-VE|GRID-FACTOR-VER|GRID-FACTOR-VERT|GRID-FACTOR-VERT|GRID-FACTOR-VERTI|GRID-FACTOR-VERTIC|GRID-FACTOR-VERTICA|'
2943
+ r'GRID-SNAP|'
2944
+ r'GRID-UNIT-HEIGHT-CHARS|GRID-UNIT-HEIGHT|GRID-UNIT-HEIGHT-|GRID-UNIT-HEIGHT-C|GRID-UNIT-HEIGHT-CH|GRID-UNIT-HEIGHT-CHA|'
2945
+ r'GRID-UNIT-HEIGHT-PIXELS|GRID-UNIT-HEIGHT-P|GRID-UNIT-HEIGHT-PI|GRID-UNIT-HEIGHT-PIX|GRID-UNIT-HEIGHT-PIXE|GRID-UNIT-HEIGHT-PIXEL|'
2946
+ r'GRID-UNIT-WIDTH-CHARS|GRID-UNIT-WIDTH|GRID-UNIT-WIDTH-|GRID-UNIT-WIDTH-C|GRID-UNIT-WIDTH-CH|GRID-UNIT-WIDTH-CHA|GRID-UNIT-WIDTH-CHAR|'
2947
+ r'GRID-UNIT-WIDTH-PIXELS|GRID-UNIT-WIDTH-P|GRID-UNIT-WIDTH-PI|GRID-UNIT-WIDTH-PIX|GRID-UNIT-WIDTH-PIXE|GRID-UNIT-WIDTH-PIXEL|'
2948
+ r'GRID-VISIBLE|GROUP|GT|GUID|HANDLER|HAS-RECORDS|HAVING|HEADER|'
2949
+ r'HEIGHT-CHARS|HEIGHT|HEIGHT-|HEIGHT-C|HEIGHT-CH|HEIGHT-CHA|HEIGHT-CHAR|'
2950
+ r'HEIGHT-PIXELS|HEIGHT-P|HEIGHT-PI|HEIGHT-PIX|HEIGHT-PIXE|HEIGHT-PIXEL|'
2951
+ r'HELP|HEX-DECODE|HEX-ENCODE|HIDDEN|HIDE|'
2952
+ r'HORIZONTAL|HORI|HORIZ|HORIZO|HORIZON|HORIZONT|HORIZONTA|'
2953
+ r'HOST-BYTE-ORDER|HTML-CHARSET|HTML-END-OF-LINE|HTML-END-OF-PAGE|'
2954
+ r'HTML-FRAME-BEGIN|HTML-FRAME-END|HTML-HEADER-BEGIN|HTML-HEADER-END|'
2955
+ r'HTML-TITLE-BEGIN|HTML-TITLE-END|HWND|ICON|IF|'
2956
+ r'IMAGE|IMAGE-DOWN|IMAGE-INSENSITIVE|IMAGE-SIZE|'
2957
+ r'IMAGE-SIZE-CHARS|IMAGE-SIZE-C|IMAGE-SIZE-CH|IMAGE-SIZE-CHA|IMAGE-SIZE-CHAR|'
2958
+ r'IMAGE-SIZE-PIXELS|IMAGE-SIZE-P|IMAGE-SIZE-PI|IMAGE-SIZE-PIX|IMAGE-SIZE-PIXE|IMAGE-SIZE-PIXEL|'
2959
+ r'IMAGE-UP|IMMEDIATE-DISPLAY|IMPLEMENTS|IMPORT|IMPORT-PRINCIPAL|'
2960
+ r'IN|INCREMENT-EXCLUSIVE-ID|INDEX|INDEXED-REPOSITION|INDEX-HINT|'
2961
+ r'INDEX-INFORMATION|INDICATOR|'
2962
+ r'INFORMATION|INFO|INFOR|INFORM|INFORMA|INFORMAT|INFORMATI|INFORMATIO|'
2963
+ r'IN-HANDLE|'
2964
+ r'INHERIT-BGCOLOR|INHERIT-BGC|INHERIT-BGCO|INHERIT-BGCOL|INHERIT-BGCOLO|'
2965
+ r'INHERIT-FGCOLOR|INHERIT-FGC|INHERIT-FGCO|INHERIT-FGCOL|INHERIT-FGCOLO|'
2966
+ r'INHERITS|INITIAL|INIT|INITI|INITIA|INITIAL-DIR|INITIAL-FILTER|'
2967
+ r'INITIALIZE-DOCUMENT-TYPE|INITIATE|INNER-CHARS|INNER-LINES|INPUT|'
2968
+ r'INPUT-OUTPUT|INPUT-O|INPUT-OU|INPUT-OUT|INPUT-OUTP|INPUT-OUTPU|'
2969
+ r'INPUT-VALUE|INSERT|INSERT-ATTRIBUTE|'
2970
+ r'INSERT-BACKTAB|INSERT-B|INSERT-BA|INSERT-BAC|INSERT-BACK|INSERT-BACKT|INSERT-BACKTA|'
2971
+ r'INSERT-FILE|INSERT-ROW|INSERT-STRING|INSERT-TAB|INSERT-T|INSERT-TA|'
2972
+ r'INTERFACE|INTERNAL-ENTRIES|INTO|INVOKE|IS|'
2973
+ r'IS-ATTR-SPACE|IS-ATTR|IS-ATTR-|IS-ATTR-S|IS-ATTR-SP|IS-ATTR-SPA|IS-ATTR-SPAC|'
2974
+ r'IS-CLASS|IS-CLAS|IS-LEAD-BYTE|IS-ATTR|IS-OPEN|IS-PARAMETER-SET|IS-ROW-SELECTED|'
2975
+ r'IS-SELECTED|ITEM|ITEMS-PER-ROW|JOIN|JOIN-BY-SQLDB|KBLABEL|KEEP-CONNECTION-OPEN|'
2976
+ r'KEEP-FRAME-Z-ORDER|KEEP-FRAME-Z|KEEP-FRAME-Z-|KEEP-FRAME-Z-O|KEEP-FRAME-Z-OR|KEEP-FRAME-Z-ORD|KEEP-FRAME-Z-ORDE|'
2977
+ r'KEEP-MESSAGES|KEEP-SECURITY-CACHE|KEEP-TAB-ORDER|KEY|KEYCODE|KEY-CODE|'
2978
+ r'KEYFUNCTION|KEYFUNC|KEYFUNCT|KEYFUNCTI|KEYFUNCTIO|'
2979
+ r'KEY-FUNCTION|KEY-FUNC|KEY-FUNCT|KEY-FUNCTI|KEY-FUNCTIO|'
2980
+ r'KEYLABEL|KEY-LABEL|KEYS|KEYWORD|KEYWORD-ALL|LABEL|'
2981
+ r'LABEL-BGCOLOR|LABEL-BGC|LABEL-BGCO|LABEL-BGCOL|LABEL-BGCOLO|'
2982
+ r'LABEL-DCOLOR|LABEL-DC|LABEL-DCO|LABEL-DCOL|LABEL-DCOLO|'
2983
+ r'LABEL-FGCOLOR|LABEL-FGC|LABEL-FGCO|LABEL-FGCOL|LABEL-FGCOLO|'
2984
+ r'LABEL-FONT|'
2985
+ r'LABEL-PFCOLOR|LABEL-PFC|LABEL-PFCO|LABEL-PFCOL|LABEL-PFCOLO|'
2986
+ r'LABELS|LANDSCAPE|LANGUAGES|LANGUAGE|LARGE|LARGE-TO-SMALL|LAST|'
2987
+ r'LAST-ASYNCH-REQUEST|LAST-BATCH|LAST-CHILD|LAST-EVENT|LAST-EVEN|LAST-FORM|'
2988
+ r'LASTKEY|LAST-KEY|LAST-OBJECT|LAST-OF|'
2989
+ r'LAST-PROCEDURE|LAST-PROCE|LAST-PROCED|LAST-PROCEDU|LAST-PROCEDUR|'
2990
+ r'LAST-SERVER|LAST-TAB-ITEM|LAST-TAB-I|LAST-TAB-IT|LAST-TAB-ITE|'
2991
+ r'LC|LDBNAME|LE|LEAVE|LEFT-ALIGNED|LEFT-ALIGN|LEFT-ALIGNE|LEFT-TRIM|'
2992
+ r'LENGTH|LIBRARY|LIKE|LIKE-SEQUENTIAL|LINE|LINE-COUNTER|LINE-COUNT|LINE-COUNTE|'
2993
+ r'LIST-EVENTS|LISTING|LISTI|LISTIN|LIST-ITEM-PAIRS|LIST-ITEMS|'
2994
+ r'LIST-PROPERTY-NAMES|LIST-QUERY-ATTRS|LIST-SET-ATTRS|LIST-WIDGETS|'
2995
+ r'LITERAL-QUESTION|LITTLE-ENDIAN|LOAD|LOAD-DOMAINS|LOAD-ICON|'
2996
+ r'LOAD-IMAGE|LOAD-IMAGE-DOWN|LOAD-IMAGE-INSENSITIVE|LOAD-IMAGE-UP|'
2997
+ r'LOAD-MOUSE-POINTER|LOAD-MOUSE-P|LOAD-MOUSE-PO|LOAD-MOUSE-POI|LOAD-MOUSE-POIN|LOAD-MOUSE-POINT|LOAD-MOUSE-POINTE|'
2998
+ r'LOAD-PICTURE|LOAD-SMALL-ICON|LOCAL-NAME|LOCATOR-COLUMN-NUMBER|'
2999
+ r'LOCATOR-LINE-NUMBER|LOCATOR-PUBLIC-ID|LOCATOR-SYSTEM-ID|LOCATOR-TYPE|'
3000
+ r'LOCKED|LOCK-REGISTRATION|LOG|LOG-AUDIT-EVENT|LOGIN-EXPIRATION-TIMESTAMP|'
3001
+ r'LOGIN-HOST|LOGIN-STATE|LOG-MANAGER|LOGOUT|LOOKAHEAD|LOOKUP|LT|'
3002
+ r'MACHINE-CLASS|MANDATORY|MANUAL-HIGHLIGHT|MAP|MARGIN-EXTRA|'
3003
+ r'MARGIN-HEIGHT-CHARS|MARGIN-HEIGHT|MARGIN-HEIGHT-|MARGIN-HEIGHT-C|MARGIN-HEIGHT-CH|MARGIN-HEIGHT-CHA|MARGIN-HEIGHT-CHAR|'
3004
+ r'MARGIN-HEIGHT-PIXELS|MARGIN-HEIGHT-P|MARGIN-HEIGHT-PI|MARGIN-HEIGHT-PIX|MARGIN-HEIGHT-PIXE|MARGIN-HEIGHT-PIXEL|'
3005
+ r'MARGIN-WIDTH-CHARS|MARGIN-WIDTH|MARGIN-WIDTH-|MARGIN-WIDTH-C|MARGIN-WIDTH-CH|MARGIN-WIDTH-CHA|MARGIN-WIDTH-CHAR|'
3006
+ r'MARGIN-WIDTH-PIXELS|MARGIN-WIDTH-P|MARGIN-WIDTH-PI|MARGIN-WIDTH-PIX|MARGIN-WIDTH-PIXE|MARGIN-WIDTH-PIXEL|'
3007
+ r'MARK-NEW|MARK-ROW-STATE|MATCHES|MAX|MAX-BUTTON|'
3008
+ r'MAX-CHARS|MAX-DATA-GUESS|MAX-HEIGHT|'
3009
+ r'MAX-HEIGHT-CHARS|MAX-HEIGHT-C|MAX-HEIGHT-CH|MAX-HEIGHT-CHA|MAX-HEIGHT-CHAR|'
3010
+ r'MAX-HEIGHT-PIXELS|MAX-HEIGHT-P|MAX-HEIGHT-PI|MAX-HEIGHT-PIX|MAX-HEIGHT-PIXE|MAX-HEIGHT-PIXEL|'
3011
+ r'MAXIMIZE|MAXIMUM|MAX|MAXI|MAXIM|MAXIMU|MAXIMUM-LEVEL|MAX-ROWS|'
3012
+ r'MAX-SIZE|MAX-VALUE|MAX-VAL|MAX-VALU|MAX-WIDTH|'
3013
+ r'MAX-WIDTH-CHARS|MAX-WIDTH|MAX-WIDTH-|MAX-WIDTH-C|MAX-WIDTH-CH|MAX-WIDTH-CHA|MAX-WIDTH-CHAR|'
3014
+ r'MAX-WIDTH-PIXELS|MAX-WIDTH-P|MAX-WIDTH-PI|MAX-WIDTH-PIX|MAX-WIDTH-PIXE|MAX-WIDTH-PIXEL|'
3015
+ r'MD5-DIGEST|MEMBER|MEMPTR-TO-NODE-VALUE|MENU|MENUBAR|MENU-BAR|MENU-ITEM|'
3016
+ r'MENU-KEY|MENU-K|MENU-KE|MENU-MOUSE|MENU-M|MENU-MO|MENU-MOU|MENU-MOUS|'
3017
+ r'MERGE-BY-FIELD|MESSAGE|MESSAGE-AREA|MESSAGE-AREA-FONT|MESSAGE-LINES|'
3018
+ r'METHOD|MIN|MIN-BUTTON|'
3019
+ r'MIN-COLUMN-WIDTH-CHARS|MIN-COLUMN-WIDTH-C|MIN-COLUMN-WIDTH-CH|MIN-COLUMN-WIDTH-CHA|MIN-COLUMN-WIDTH-CHAR|'
3020
+ r'MIN-COLUMN-WIDTH-PIXELS|MIN-COLUMN-WIDTH-P|MIN-COLUMN-WIDTH-PI|MIN-COLUMN-WIDTH-PIX|MIN-COLUMN-WIDTH-PIXE|MIN-COLUMN-WIDTH-PIXEL|'
3021
+ r'MIN-HEIGHT-CHARS|MIN-HEIGHT|MIN-HEIGHT-|MIN-HEIGHT-C|MIN-HEIGHT-CH|MIN-HEIGHT-CHA|MIN-HEIGHT-CHAR|'
3022
+ r'MIN-HEIGHT-PIXELS|MIN-HEIGHT-P|MIN-HEIGHT-PI|MIN-HEIGHT-PIX|MIN-HEIGHT-PIXE|MIN-HEIGHT-PIXEL|'
3023
+ r'MINIMUM|MIN|MINI|MINIM|MINIMU|MIN-SIZE|'
3024
+ r'MIN-VALUE|MIN-VAL|MIN-VALU|'
3025
+ r'MIN-WIDTH-CHARS|MIN-WIDTH|MIN-WIDTH-|MIN-WIDTH-C|MIN-WIDTH-CH|MIN-WIDTH-CHA|MIN-WIDTH-CHAR|'
3026
+ r'MIN-WIDTH-PIXELS|MIN-WIDTH-P|MIN-WIDTH-PI|MIN-WIDTH-PIX|MIN-WIDTH-PIXE|MIN-WIDTH-PIXEL|'
3027
+ r'MODIFIED|MODULO|MOD|MODU|MODUL|MONTH|MOUSE|'
3028
+ r'MOUSE-POINTER|MOUSE-P|MOUSE-PO|MOUSE-POI|MOUSE-POIN|MOUSE-POINT|MOUSE-POINTE|'
3029
+ r'MOVABLE|'
3030
+ r'MOVE-AFTER-TAB-ITEM|MOVE-AFTER|MOVE-AFTER-|MOVE-AFTER-T|MOVE-AFTER-TA|MOVE-AFTER-TAB|MOVE-AFTER-TAB-|MOVE-AFTER-TAB-I|MOVE-AFTER-TAB-IT|MOVE-AFTER-TAB-ITE|'
3031
+ r'MOVE-BEFORE-TAB-ITEM|MOVE-BEFOR|MOVE-BEFORE|MOVE-BEFORE-|MOVE-BEFORE-T|MOVE-BEFORE-TA|MOVE-BEFORE-TAB|MOVE-BEFORE-TAB-|MOVE-BEFORE-TAB-I|MOVE-BEFORE-TAB-IT|MOVE-BEFORE-TAB-ITE|'
3032
+ r'MOVE-COLUMN|MOVE-COL|MOVE-COLU|MOVE-COLUM|'
3033
+ r'MOVE-TO-BOTTOM|MOVE-TO-B|MOVE-TO-BO|MOVE-TO-BOT|MOVE-TO-BOTT|MOVE-TO-BOTTO|'
3034
+ r'MOVE-TO-EOF|MOVE-TO-TOP|MOVE-TO-T|MOVE-TO-TO|MPE|MULTI-COMPILE|MULTIPLE|'
3035
+ r'MULTIPLE-KEY|MULTITASKING-INTERVAL|MUST-EXIST|NAME|NAMESPACE-PREFIX|'
3036
+ r'NAMESPACE-URI|NATIVE|NE|NEEDS-APPSERVER-PROMPT|NEEDS-PROMPT|NEW|'
3037
+ r'NEW-INSTANCE|NEW-ROW|NEXT|NEXT-COLUMN|NEXT-PROMPT|NEXT-ROWID|'
3038
+ r'NEXT-SIBLING|NEXT-TAB-ITEM|NEXT-TAB-I|NEXT-TAB-IT|NEXT-TAB-ITE|'
3039
+ r'NEXT-VALUE|NO|NO-APPLY|NO-ARRAY-MESSAGE|NO-ASSIGN|'
3040
+ r'NO-ATTR-LIST|NO-ATTR|NO-ATTR-|NO-ATTR-L|NO-ATTR-LI|NO-ATTR-LIS|'
3041
+ r'NO-ATTR-SPACE|NO-ATTR|NO-ATTR-|NO-ATTR-S|NO-ATTR-SP|NO-ATTR-SPA|NO-ATTR-SPAC|'
3042
+ r'NO-AUTO-VALIDATE|NO-BIND-WHERE|NO-BOX|NO-CONSOLE|NO-CONVERT|'
3043
+ r'NO-CONVERT-3D-COLORS|NO-CURRENT-VALUE|NO-DEBUG|NODE-VALUE-TO-MEMPTR|'
3044
+ r'NO-DRAG|NO-ECHO|NO-EMPTY-SPACE|NO-ERROR|NO-FILL|NO-F|NO-FI|'
3045
+ r'NO-FIL|NO-FOCUS|NO-HELP|NO-HIDE|NO-INDEX-HINT|'
3046
+ r'NO-INHERIT-BGCOLOR|NO-INHERIT-BGC|NO-INHERIT-BGCO|LABEL-BGCOL|LABEL-BGCOLO|'
3047
+ r'NO-INHERIT-FGCOLOR|NO-INHERIT-FGC|NO-INHERIT-FGCO|NO-INHERIT-FGCOL|NO-INHERIT-FGCOLO|'
3048
+ r'NO-JOIN-BY-SQLDB|NO-LABELS|NO-LABE|NO-LOBS|NO-LOCK|'
3049
+ r'NO-LOOKAHEAD|NO-MAP|'
3050
+ r'NO-MESSAGE|NO-MES|NO-MESS|NO-MESSA|NO-MESSAG|'
3051
+ r'NONAMESPACE-SCHEMA-LOCATION|NONE|NO-PAUSE|'
3052
+ r'NO-PREFETCH|NO-PREFE|NO-PREFET|NO-PREFETC|NORMALIZE|'
3053
+ r'NO-ROW-MARKERS|NO-SCROLLBAR-VERTICAL|NO-SEPARATE-CONNECTION|'
3054
+ r'NO-SEPARATORS|NOT|NO-TAB-STOP|NOT-ACTIVE|'
3055
+ r'NO-UNDERLINE|NO-UND|NO-UNDE|NO-UNDER|NO-UNDERL|NO-UNDERLI|NO-UNDERLIN|'
3056
+ r'NO-UNDO|'
3057
+ r'NO-VALIDATE|NO-VAL|NO-VALI|NO-VALID|NO-VALIDA|NO-VALIDAT|NOW|'
3058
+ r'NO-WAIT|NO-WORD-WRAP|NULL|NUM-ALIASES|NUM-ALI|NUM-ALIA|NUM-ALIAS|NUM-ALIASE|'
3059
+ r'NUM-BUFFERS|NUM-BUTTONS|NUM-BUT|NUM-BUTT|NUM-BUTTO|NUM-BUTTON|'
3060
+ r'NUM-COLUMNS|NUM-COL|NUM-COLU|NUM-COLUM|NUM-COLUMN|NUM-COPIES|'
3061
+ r'NUM-DBS|NUM-DROPPED-FILES|NUM-ENTRIES|NUMERIC|'
3062
+ r'NUMERIC-FORMAT|NUMERIC-F|NUMERIC-FO|NUMERIC-FOR|NUMERIC-FORM|NUMERIC-FORMA|'
3063
+ r'NUM-FIELDS|NUM-FORMATS|NUM-ITEMS|NUM-ITERATIONS|NUM-LINES|'
3064
+ r'NUM-LOCKED-COLUMNS|NUM-LOCKED-COL|NUM-LOCKED-COLU|NUM-LOCKED-COLUM|NUM-LOCKED-COLUMN|'
3065
+ r'NUM-MESSAGES|NUM-PARAMETERS|NUM-REFERENCES|NUM-REPLACED|NUM-RESULTS|NUM-SELECTED-ROWS|'
3066
+ r'NUM-SELECTED-WIDGETS|NUM-SELECTED|NUM-SELECTED-|NUM-SELECTED-W|NUM-SELECTED-WI|NUM-SELECTED-WID|NUM-SELECTED-WIDG|NUM-SELECTED-WIDGE|NUM-SELECTED-WIDGET|'
3067
+ r'NUM-TABS|NUM-TO-RETAIN|NUM-VISIBLE-COLUMNS|OCTET-LENGTH|OF|'
3068
+ r'OFF|OK|OK-CANCEL|OLD|ON|'
3069
+ r'ON-FRAME-BORDER|ON-FRAME|ON-FRAME-|ON-FRAME-B|ON-FRAME-BO|ON-FRAME-BOR|ON-FRAME-BORD|ON-FRAME-BORDE|'
3070
+ r'OPEN|OPSYS|OPTION|OR|ORDERED-JOIN|ORDINAL|'
3071
+ r'OS-APPEND|OS-COMMAND|OS-COPY|OS-CREATE-DIR|OS-DELETE|OS-DIR|'
3072
+ r'OS-DRIVES|OS-DRIVE|OS-ERROR|OS-GETENV|OS-RENAME|OTHERWISE|'
3073
+ r'OUTPUT|OVERLAY|OVERRIDE|OWNER|PAGE|'
3074
+ r'PAGE-BOTTOM|PAGE-BOT|PAGE-BOTT|PAGE-BOTTO|PAGED|'
3075
+ r'PAGE-NUMBER|PAGE-NUM|PAGE-NUMB|PAGE-NUMBE|PAGE-SIZE|'
3076
+ r'PAGE-TOP|PAGE-WIDTH|PAGE-WID|PAGE-WIDT|'
3077
+ r'PARAMETER|PARAM|PARAME|PARAMET|PARAMETE|'
3078
+ r'PARENT|PARSE-STATUS|PARTIAL-KEY|PASCAL|PASSWORD-FIELD|PATHNAME|PAUSE|'
3079
+ r'PBE-HASH-ALGORITHM|PBE-HASH-ALG|PBE-HASH-ALGO|PBE-HASH-ALGOR|PBE-HASH-ALGORI|PBE-HASH-ALGORIT|PBE-HASH-ALGORITH|'
3080
+ r'PBE-KEY-ROUNDS|PDBNAME|PERSISTENT|PERSIST|PERSISTE|PERSISTEN|'
3081
+ r'PERSISTENT-CACHE-DISABLED|PFCOLOR|PFC|PFCO|PFCOL|PFCOLO|PIXELS|'
3082
+ r'PIXELS-PER-COLUMN|PIXELS-PER-COL|PIXELS-PER-COLU|PIXELS-PER-COLUM|'
3083
+ r'PIXELS-PER-ROW|POPUP-MENU|POPUP-M|POPUP-ME|POPUP-MEN|'
3084
+ r'POPUP-ONLY|POPUP-O|POPUP-ON|POPUP-ONL|PORTRAIT|POSITION|'
3085
+ r'PRECISION|PREFER-DATASET|PREPARED|PREPARE-STRING|'
3086
+ r'PREPROCESS|PREPROC|PREPROCE|PREPROCES|'
3087
+ r'PRESELECT|PRESEL|PRESELE|PRESELEC|PREV|PREV-COLUMN|'
3088
+ r'PREV-SIBLING|'
3089
+ r'PREV-TAB-ITEM|PREV-TAB-I|PREV-TAB-IT|PREV-TAB-ITE|'
3090
+ r'PRIMARY|PRINTER|PRINTER-CONTROL-HANDLE|PRINTER-HDC|'
3091
+ r'PRINTER-NAME|PRINTER-PORT|PRINTER-SETUP|PRIVATE|'
3092
+ r'PRIVATE-DATA|PRIVATE-D|PRIVATE-DA|PRIVATE-DAT|'
3093
+ r'PRIVILEGES|'
3094
+ r'PROCEDURE|PROCE|PROCED|PROCEDU|PROCEDUR|'
3095
+ r'PROCEDURE-CALL-TYPE|'
3096
+ r'PROCESS|'
3097
+ r'PROC-HANDLE|PROC-HA|PROC-HAN|PROC-HAND|PROC-HANDL|'
3098
+ r'PROC-STATUS|PROC-ST|PROC-STA|PROC-STAT|PROC-STATU|'
3099
+ r'proc-text|proc-text-buffer|'
3100
+ r'PROFILER|PROGRAM-NAME|PROGRESS|'
3101
+ r'PROGRESS-SOURCE|PROGRESS-S|PROGRESS-SO|PROGRESS-SOU|PROGRESS-SOUR|PROGRESS-SOURC|'
3102
+ r'PROMPT|PROMPT-FOR|PROMPT-F|PROMPT-FO|PROMSGS|PROPATH|'
3103
+ r'PROPERTY|PROTECTED|PROVERSION|PROVERS|PROVERSI|PROVERSIO|'
3104
+ r'PROXY|PROXY-PASSWORD|PROXY-USERID|PUBLIC|PUBLIC-ID|'
3105
+ r'PUBLISH|PUBLISHED-EVENTS|PUT|PUTBYTE|PUT-BYTE|PUT-DOUBLE|'
3106
+ r'PUT-FLOAT|PUT-INT64|PUT-KEY-VALUE|PUT-KEY-VAL|PUT-KEY-VALU|PUT-LONG|'
3107
+ r'PUT-SHORT|PUT-STRING|PUT-UNSIGNED-LONG|QUERY|QUERY-CLOSE|QUERY-OFF-END|'
3108
+ r'QUERY-OPEN|QUERY-PREPARE|QUERY-TUNING|QUESTION|QUIT|QUOTER|'
3109
+ r'RADIO-BUTTONS|RADIO-SET|RANDOM|RAW-TRANSFER|'
3110
+ r'RCODE-INFORMATION|RCODE-INFO|RCODE-INFOR|RCODE-INFORM|RCODE-INFORMA|RCODE-INFORMAT|RCODE-INFORMATI|RCODE-INFORMATIO|'
3111
+ r'READ-AVAILABLE|READ-EXACT-NUM|READ-FILE|READKEY|READ-ONLY|READ-XML|READ-XMLSCHEMA|'
3112
+ r'REAL|RECORD-LENGTH|RECTANGLE|RECT|RECTA|RECTAN|RECTANG|RECTANGL|'
3113
+ r'RECURSIVE|REFERENCE-ONLY|REFRESH|REFRESHABLE|REFRESH-AUDIT-POLICY|'
3114
+ r'REGISTER-DOMAIN|RELEASE|REMOTE|REMOVE-EVENTS-PROCEDURE|REMOVE-SUPER-PROCEDURE|'
3115
+ r'REPEAT|REPLACE|REPLACE-SELECTION-TEXT|REPOSITION|REPOSITION-BACKWARD|'
3116
+ r'REPOSITION-FORWARD|REPOSITION-MODE|REPOSITION-TO-ROW|REPOSITION-TO-ROWID|'
3117
+ r'REQUEST|RESET|RESIZABLE|RESIZA|RESIZAB|RESIZABL|RESIZE|RESTART-ROW|'
3118
+ r'RESTART-ROWID|RETAIN|RETAIN-SHAPE|RETRY|RETRY-CANCEL|RETURN|'
3119
+ r'RETURN-INSERTED|RETURN-INS|RETURN-INSE|RETURN-INSER|RETURN-INSERT|RETURN-INSERTE|'
3120
+ r'RETURNS|RETURN-TO-START-DIR|RETURN-TO-START-DI|'
3121
+ r'RETURN-VALUE|RETURN-VAL|RETURN-VALU|'
3122
+ r'RETURN-VALUE-DATA-TYPE|REVERSE-FROM|REVERT|'
3123
+ r'REVOKE|RGB-VALUE|RIGHT-ALIGNED|RETURN-ALIGN|RETURN-ALIGNE|'
3124
+ r'RIGHT-TRIM|R-INDEX|ROLES|ROUND|ROUTINE-LEVEL|ROW|'
3125
+ r'ROW-HEIGHT-CHARS|HEIGHT|ROW-HEIGHT-PIXELS|HEIGHT-P|ROW-MARKERS|'
3126
+ r'ROW-OF|ROW-RESIZABLE|RULE|RUN|RUN-PROCEDURE|SAVE|SAVE-AS|'
3127
+ r'SAVE-FILE|SAX-COMPLETE|SAX-COMPLE|SAX-COMPLET|SAX-PARSE|SAX-PARSE-FIRST|'
3128
+ r'SAX-PARSE-NEXT|SAX-PARSER-ERROR|SAX-RUNNING|SAX-UNINITIALIZED|'
3129
+ r'SAX-WRITE-BEGIN|SAX-WRITE-COMPLETE|SAX-WRITE-CONTENT|SAX-WRITE-ELEMENT|'
3130
+ r'SAX-WRITE-ERROR|SAX-WRITE-IDLE|SAX-WRITER|SAX-WRITE-TAG|SCHEMA|'
3131
+ r'SCHEMA-LOCATION|SCHEMA-MARSHAL|SCHEMA-PATH|SCREEN|SCREEN-IO|'
3132
+ r'SCREEN-LINES|SCREEN-VALUE|SCREEN-VAL|SCREEN-VALU|SCROLL|SCROLLABLE|'
3133
+ r'SCROLLBAR-HORIZONTAL|SCROLLBAR-H|SCROLLBAR-HO|SCROLLBAR-HOR|SCROLLBAR-HORI|SCROLLBAR-HORIZ|SCROLLBAR-HORIZO|SCROLLBAR-HORIZON|SCROLLBAR-HORIZONT|SCROLLBAR-HORIZONTA|'
3134
+ r'SCROLL-BARS|'
3135
+ r'SCROLLBAR-VERTICAL|SCROLLBAR-V|SCROLLBAR-VE|SCROLLBAR-VER|SCROLLBAR-VERT|SCROLLBAR-VERTI|SCROLLBAR-VERTIC|SCROLLBAR-VERTICA|'
3136
+ r'SCROLL-DELTA|'
3137
+ r'SCROLLED-ROW-POSITION|SCROLLED-ROW-POS|SCROLLED-ROW-POSI|SCROLLED-ROW-POSIT|SCROLLED-ROW-POSITI|SCROLLED-ROW-POSITIO|'
3138
+ r'SCROLLING|SCROLL-OFFSET|SCROLL-TO-CURRENT-ROW|SCROLL-TO-ITEM|SCROLL-TO-I|SCROLL-TO-IT|SCROLL-TO-ITE|'
3139
+ r'SCROLL-TO-SELECTED-ROW|SDBNAME|SEAL|SEAL-TIMESTAMP|SEARCH|SEARCH-SELF|SEARCH-TARGET|'
3140
+ r'SECTION|SECURITY-POLICY|SEEK|SELECT|SELECTABLE|SELECT-ALL|'
3141
+ r'SELECTED|SELECT-FOCUSED-ROW|SELECTION|SELECTION-END|SELECTION-LIST|'
3142
+ r'SELECTION-START|SELECTION-TEXT|SELECT-NEXT-ROW|SELECT-PREV-ROW|'
3143
+ r'SELECT-ROW|SELF|SEND|send-sql-statement|send-sql|SENSITIVE|'
3144
+ r'SEPARATE-CONNECTION|SEPARATOR-FGCOLOR|SEPARATORS|SERVER|'
3145
+ r'SERVER-CONNECTION-BOUND|SERVER-CONNECTION-BOUND-REQUEST|'
3146
+ r'SERVER-CONNECTION-CONTEXT|SERVER-CONNECTION-ID|SERVER-OPERATING-MODE|'
3147
+ r'SESSION|SESSION-ID|SET|SET-APPL-CONTEXT|SET-ATTR-CALL-TYPE|SET-ATTRIBUTE-NODE|'
3148
+ r'SET-BLUE-VALUE|SET-BLUE|SET-BLUE-|SET-BLUE-V|SET-BLUE-VA|SET-BLUE-VAL|SET-BLUE-VALU|'
3149
+ r'SET-BREAK|SET-BUFFERS|SET-CALLBACK|SET-CLIENT|SET-COMMIT|SET-CONTENTS|'
3150
+ r'SET-CURRENT-VALUE|SET-DB-CLIENT|SET-DYNAMIC|SET-EVENT-MANAGER-OPTION|'
3151
+ r'SET-GREEN-VALUE|SET-GREEN|SET-GREEN-|SET-GREEN-V|SET-GREEN-VA|SET-GREEN-VAL|SET-GREEN-VALU|'
3152
+ r'SET-INPUT-SOURCE|SET-OPTION|SET-OUTPUT-DESTINATION|SET-PARAMETER|SET-POINTER-VALUE|'
3153
+ r'SET-PROPERTY|SET-RED-VALUE|SET-RED|SET-RED-|SET-RED-V|SET-RED-VA|SET-RED-VAL|SET-RED-VALU|'
3154
+ r'SET-REPOSITIONED-ROW|SET-RGB-VALUE|SET-ROLLBACK|SET-SELECTION|SET-SIZE|'
3155
+ r'SET-SORT-ARROW|SETUSERID|SETUSER|SETUSERI|SET-WAIT-STATE|SHA1-DIGEST|SHARED|'
3156
+ r'SHARE-LOCK|SHARE|SHARE-|SHARE-L|SHARE-LO|SHARE-LOC|SHOW-IN-TASKBAR|SHOW-STATS|SHOW-STAT|'
3157
+ r'SIDE-LABEL-HANDLE|SIDE-LABEL-H|SIDE-LABEL-HA|SIDE-LABEL-HAN|SIDE-LABEL-HAND|SIDE-LABEL-HANDL|'
3158
+ r'SIDE-LABELS|SIDE-LAB|SIDE-LABE|SIDE-LABEL|'
3159
+ r'SILENT|SIMPLE|SINGLE|SIZE|'
3160
+ r'SIZE-CHARS|SIZE-C|SIZE-CH|SIZE-CHA|SIZE-CHAR|'
3161
+ r'SIZE-PIXELS|SIZE-P|SIZE-PI|SIZE-PIX|SIZE-PIXE|SIZE-PIXEL|SKIP|'
3162
+ r'SKIP-DELETED-RECORD|SLIDER|SMALL-ICON|SMALLINT|SMALL-TITLE|SOME|SORT|'
3163
+ r'SORT-ASCENDING|SORT-NUMBER|SOURCE|SOURCE-PROCEDURE|SPACE|SQL|SQRT|'
3164
+ r'SSL-SERVER-NAME|STANDALONE|START|START-DOCUMENT|START-ELEMENT|START-MOVE|'
3165
+ r'START-RESIZE|START-ROW-RESIZE|STATE-DETAIL|STATIC|STATUS|STATUS-AREA|STATUS-AREA-FONT|'
3166
+ r'STDCALL|STOP|STOP-PARSING|STOPPED|STOPPE|'
3167
+ r'STORED-PROCEDURE|STORED-PROC|STORED-PROCE|STORED-PROCED|STORED-PROCEDU|STORED-PROCEDUR|'
3168
+ r'STREAM|STREAM-HANDLE|STREAM-IO|STRETCH-TO-FIT|STRICT|STRING|STRING-VALUE|STRING-XREF|'
3169
+ r'SUB-AVERAGE|SUB-AVE|SUB-AVER|SUB-AVERA|SUB-AVERAG|'
3170
+ r'SUB-COUNT|SUB-MAXIMUM|SUM-MAX|SUM-MAXI|SUM-MAXIM|SUM-MAXIMU|SUB-MENU|SUBSUB-|'
3171
+ r'MINIMUM|SUB-MIN|SUBSCRIBE|SUBSTITUTE|SUBST|SUBSTI|SUBSTIT|SUBSTITU|SUBSTITUT|'
3172
+ r'SUBSTRING|SUBSTR|SUBSTRI|SUBSTRIN|SUB-TOTAL|SUBTYPE|SUM|SUPER|SUPER-PROCEDURES|'
3173
+ r'SUPPRESS-NAMESPACE-PROCESSING|'
3174
+ r'SUPPRESS-WARNINGS|SUPPRESS-W|SUPPRESS-WA|SUPPRESS-WAR|SUPPRESS-WARN|SUPPRESS-WARNI|SUPPRESS-WARNIN|SUPPRESS-WARNING|'
3175
+ r'SYMMETRIC-ENCRYPTION-ALGORITHM|SYMMETRIC-ENCRYPTION-IV|SYMMETRIC-ENCRYPTION-KEY|SYMMETRIC-SUPPORT|'
3176
+ r'SYSTEM-ALERT-BOXES|SYSTEM-ALERT|SYSTEM-ALERT-|SYSTEM-ALERT-B|SYSTEM-ALERT-BO|SYSTEM-ALERT-BOX|SYSTEM-ALERT-BOXE|'
3177
+ r'SYSTEM-DIALOG|SYSTEM-HELP|SYSTEM-ID|TABLE|TABLE-HANDLE|TABLE-NUMBER|TAB-POSITION|'
3178
+ r'TAB-STOP|TARGET|TARGET-PROCEDURE|'
3179
+ r'TEMP-DIRECTORY|TEMP-DIR|TEMP-DIRE|TEMP-DIREC|TEMP-DIRECT|TEMP-DIRECTO|TEMP-DIRECTOR|'
3180
+ r'TEMP-TABLE|TEMP-TABLE-PREPARE|TERM|TERMINAL|TERM|TERMI|TERMIN|TERMINA|'
3181
+ r'TERMINATE|TEXT|TEXT-CURSOR|TEXT-SEG-GROW|TEXT-SELECTED|THEN|'
3182
+ r'THIS-OBJECT|THIS-PROCEDURE|THREE-D|THROW|THROUGH|THRU|TIC-MARKS|TIME|'
3183
+ r'TIME-SOURCE|TITLE|'
3184
+ r'TITLE-BGCOLOR|TITLE-BGC|TITLE-BGCO|TITLE-BGCOL|TITLE-BGCOLO|'
3185
+ r'TITLE-DCOLOR|TITLE-DC|TITLE-DCO|TITLE-DCOL|TITLE-DCOLO|'
3186
+ r'TITLE-FGCOLOR|TITLE-FGC|TITLE-FGCO|TITLE-FGCOL|TITLE-FGCOLO|'
3187
+ r'TITLE-FONT|TITLE-FO|TITLE-FON|'
3188
+ r'TO|TODAY|TOGGLE-BOX|TOOLTIP|TOOLTIPS|TOPIC|TOP-NAV-QUERY|TOP-ONLY|'
3189
+ r'TO-ROWID|TOTAL|TRAILING|TRANS|TRANSACTION|TRANSACTION-MODE|'
3190
+ r'TRANS-INIT-PROCEDURE|TRANSPARENT|TRIGGER|TRIGGERS|TRIM|'
3191
+ r'TRUE|TRUNCATE|TRUNC|TRUNCA|TRUNCAT|TYPE|TYPE-OF|'
3192
+ r'UNBOX|UNBUFFERED|UNBUFF|UNBUFFE|UNBUFFER|UNBUFFERE|'
3193
+ r'UNDERLINE|UNDERL|UNDERLI|UNDERLIN|UNDO|'
3194
+ r'UNFORMATTED|UNFORM|UNFORMA|UNFORMAT|UNFORMATT|UNFORMATTE|UNION|'
3195
+ r'UNIQUE|UNIQUE-ID|UNIQUE-MATCH|UNIX|UNLESS-HIDDEN|UNLOAD|'
3196
+ r'UNSIGNED-LONG|UNSUBSCRIBE|UP|UPDATE|UPDATE-ATTRIBUTE|'
3197
+ r'URL|URL-DECODE|URL-ENCODE|URL-PASSWORD|URL-USERID|USE|'
3198
+ r'USE-DICT-EXPS|USE-FILENAME|USE-INDEX|USER|USE-REVVIDEO|'
3199
+ r'USERID|USER-ID|USE-TEXT|USE-UNDERLINE|USE-WIDGET-POOL|'
3200
+ r'USING|V6DISPLAY|V6FRAME|VALIDATE|VALIDATE-EXPRESSION|'
3201
+ r'VALIDATE-MESSAGE|VALIDATE-SEAL|VALIDATION-ENABLED|VALID-EVENT|'
3202
+ r'VALID-HANDLE|VALID-OBJECT|VALUE|VALUE-CHANGED|VALUES|'
3203
+ r'VARIABLE|VAR|VARI|VARIA|VARIAB|VARIABL|VERBOSE|'
3204
+ r'VERSION|VERTICAL|VERT|VERTI|VERTIC|VERTICA|'
3205
+ r'VIEW|VIEW-AS|VIEW-FIRST-COLUMN-ON-REOPEN|'
3206
+ r'VIRTUAL-HEIGHT-CHARS|VIRTUAL-HEIGHT|VIRTUAL-HEIGHT-|VIRTUAL-HEIGHT-C|VIRTUAL-HEIGHT-CH|VIRTUAL-HEIGHT-CHA|VIRTUAL-HEIGHT-CHAR|'
3207
+ r'VIRTUAL-HEIGHT-PIXELS|VIRTUAL-HEIGHT-P|VIRTUAL-HEIGHT-PI|VIRTUAL-HEIGHT-PIX|VIRTUAL-HEIGHT-PIXE|VIRTUAL-HEIGHT-PIXEL|'
3208
+ r'VIRTUAL-WIDTH-CHARS|VIRTUAL-WIDTH|VIRTUAL-WIDTH-|VIRTUAL-WIDTH-C|VIRTUAL-WIDTH-CH|VIRTUAL-WIDTH-CHA|VIRTUAL-WIDTH-CHAR|'
3209
+ r'VIRTUAL-WIDTH-PIXELS|VIRTUAL-WIDTH-P|VIRTUAL-WIDTH-PI|VIRTUAL-WIDTH-PIX|VIRTUAL-WIDTH-PIXE|VIRTUAL-WIDTH-PIXEL|'
3210
+ r'VISIBLE|VOID|WAIT|WAIT-FOR|WARNING|WEB-CONTEXT|WEEKDAY|WHEN|'
3211
+ r'WHERE|WHILE|WIDGET|'
3212
+ r'WIDGET-ENTER|WIDGET-E|WIDGET-EN|WIDGET-ENT|WIDGET-ENTE|'
3213
+ r'WIDGET-ID|'
3214
+ r'WIDGET-LEAVE|WIDGET-L|WIDGET-LE|WIDGET-LEA|WIDGET-LEAV|'
3215
+ r'WIDGET-POOL|WIDTH|'
3216
+ r'WIDTH-CHARS|WIDTH|WIDTH-|WIDTH-C|WIDTH-CH|WIDTH-CHA|WIDTH-CHAR|'
3217
+ r'WIDTH-PIXELS|WIDTH-P|WIDTH-PI|WIDTH-PIX|WIDTH-PIXE|WIDTH-PIXEL|'
3218
+ r'WINDOW|'
3219
+ r'WINDOW-MAXIMIZED|WINDOW-MAXIM|WINDOW-MAXIMI|WINDOW-MAXIMIZ|WINDOW-MAXIMIZE|'
3220
+ r'WINDOW-MINIMIZED|WINDOW-MINIM|WINDOW-MINIMI|WINDOW-MINIMIZ|WINDOW-MINIMIZE|'
3221
+ r'WINDOW-NAME|WINDOW-NORMAL|WINDOW-STATE|WINDOW-STA|WINDOW-STAT|'
3222
+ r'WINDOW-SYSTEM|WITH|WORD-INDEX|WORD-WRAP|WORK-AREA-HEIGHT-PIXELS|'
3223
+ r'WORK-AREA-WIDTH-PIXELS|WORK-AREA-X|WORK-AREA-Y|WORKFILE|'
3224
+ r'WORK-TABLE|WORK-TAB|WORK-TABL|WRITE|WRITE-CDATA|WRITE-CHARACTERS|'
3225
+ r'WRITE-COMMENT|WRITE-DATA-ELEMENT|WRITE-EMPTY-ELEMENT|WRITE-ENTITY-REF|'
3226
+ r'WRITE-EXTERNAL-DTD|WRITE-FRAGMENT|WRITE-MESSAGE|'
3227
+ r'WRITE-PROCESSING-INSTRUCTION|WRITE-STATUS|WRITE-XML|WRITE-XMLSCHEMA|'
3228
+ r'X|XCODE|XML-DATA-TYPE|XML-NODE-TYPE|XML-SCHEMA-PATH|'
3229
+ r'XML-SUPPRESS-NAMESPACE-PROCESSING|X-OF|XREF|'
3230
+ r'XREF-XML|Y|YEAR|YEAR-OFFSET|YES|YES-NO|'
3231
+ r'YES-NO-CANCEL|Y-OF)\s*($|(?=[^0-9a-z_\-]))')
3232
+
3233
+ tokens = {
3234
+ 'root': [
3235
+ (r'/\*', Comment.Multiline, 'comment'),
3236
+ (r'\{', Comment.Preproc, 'preprocessor'),
3237
+ (r'\s*&.*', Comment.Preproc),
3238
+ (r'0[xX][0-9a-fA-F]+[LlUu]*', Number.Hex),
3239
+ (r'(?i)(DEFINE|DEF|DEFI|DEFIN)\b', Keyword.Declaration),
3240
+ (types, Keyword.Type),
3241
+ (keywords, Name.Builtin),
3242
+ (r'"(\\\\|\\"|[^"])*"', String.Double),
3243
+ (r"'(\\\\|\\'|[^'])*'", String.Single),
3244
+ (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
3245
+ (r'[0-9]+', Number.Integer),
3246
+ (r'\s+', Text),
3247
+ (r'[\\+\\-\\*\\/\\=]', Operator),
3248
+ (r'[\\.\\:\\(\\)]', Punctuation),
3249
+ (r'.', Name.Variable), # Lazy catch-all
3250
+ ],
3251
+ 'comment': [
3252
+ (r'[^*/]', Comment.Multiline),
3253
+ (r'/\*', Comment.Multiline, '#push'),
3254
+ (r'\*/', Comment.Multiline, '#pop'),
3255
+ (r'[*/]', Comment.Multiline)
3256
+ ],
3257
+ 'preprocessor': [
3258
+ (r'[^{}]', Comment.Preproc),
3259
+ (r'{', Comment.Preproc, '#push'),
3260
+ (r'}', Comment.Preproc, '#pop'),
3261
+ ],
3262
+ }
3263
+
3264
+
3265
+ class BroLexer(RegexLexer):
3266
+ """
3267
+ For `Bro <http://bro-ids.org/>`_ scripts.
3268
+
3269
+ *New in Pygments 1.5.*
3270
+ """
3271
+ name = 'Bro'
3272
+ aliases = ['bro']
3273
+ filenames = ['*.bro']
3274
+
3275
+ _hex = r'[0-9a-fA-F_]+'
3276
+ _float = r'((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?'
3277
+ _h = r'[A-Za-z0-9][-A-Za-z0-9]*'
3278
+
3279
+ tokens = {
3280
+ 'root': [
3281
+ # Whitespace
3282
+ ('^@.*?\n', Comment.Preproc),
3283
+ (r'#.*?\n', Comment.Single),
3284
+ (r'\n', Text),
3285
+ (r'\s+', Text),
3286
+ (r'\\\n', Text),
3287
+ # Keywords
3288
+ (r'(add|alarm|break|case|const|continue|delete|do|else|enum|event'
3289
+ r'|export|for|function|if|global|local|module|next'
3290
+ r'|of|print|redef|return|schedule|type|when|while)\b', Keyword),
3291
+ (r'(addr|any|bool|count|counter|double|file|int|interval|net'
3292
+ r'|pattern|port|record|set|string|subnet|table|time|timer'
3293
+ r'|vector)\b', Keyword.Type),
3294
+ (r'(T|F)\b', Keyword.Constant),
3295
+ (r'(&)((?:add|delete|expire)_func|attr|(create|read|write)_expire'
3296
+ r'|default|disable_print_hook|raw_output|encrypt|group|log'
3297
+ r'|mergeable|optional|persistent|priority|redef'
3298
+ r'|rotate_(?:interval|size)|synchronized)\b', bygroups(Punctuation,
3299
+ Keyword)),
3300
+ (r'\s+module\b', Keyword.Namespace),
3301
+ # Addresses, ports and networks
3302
+ (r'\d+/(tcp|udp|icmp|unknown)\b', Number),
3303
+ (r'(\d+\.){3}\d+', Number),
3304
+ (r'(' + _hex + r'){7}' + _hex, Number),
3305
+ (r'0x' + _hex + r'(' + _hex + r'|:)*::(' + _hex + r'|:)*', Number),
3306
+ (r'((\d+|:)(' + _hex + r'|:)*)?::(' + _hex + r'|:)*', Number),
3307
+ (r'(\d+\.\d+\.|(\d+\.){2}\d+)', Number),
3308
+ # Hostnames
3309
+ (_h + r'(\.' + _h + r')+', String),
3310
+ # Numeric
3311
+ (_float + r'\s+(day|hr|min|sec|msec|usec)s?\b', Literal.Date),
3312
+ (r'0[xX]' + _hex, Number.Hex),
3313
+ (_float, Number.Float),
3314
+ (r'\d+', Number.Integer),
3315
+ (r'/', String.Regex, 'regex'),
3316
+ (r'"', String, 'string'),
3317
+ # Operators
3318
+ (r'[!%*/+-:<=>?~|]', Operator),
3319
+ (r'([-+=&|]{2}|[+-=!><]=)', Operator),
3320
+ (r'(in|match)\b', Operator.Word),
3321
+ (r'[{}()\[\]$.,;]', Punctuation),
3322
+ # Identfier
3323
+ (r'([_a-zA-Z]\w*)(::)', bygroups(Name, Name.Namespace)),
3324
+ (r'[a-zA-Z_][a-zA-Z_0-9]*', Name)
3325
+ ],
3326
+ 'string': [
3327
+ (r'"', String, '#pop'),
3328
+ (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
3329
+ (r'[^\\"\n]+', String),
3330
+ (r'\\\n', String),
3331
+ (r'\\', String)
3332
+ ],
3333
+ 'regex': [
3334
+ (r'/', String.Regex, '#pop'),
3335
+ (r'\\[\\nt/]', String.Regex), # String.Escape is too intense here.
3336
+ (r'[^\\/\n]+', String.Regex),
3337
+ (r'\\\n', String.Regex),
3338
+ (r'\\', String.Regex)
3339
+ ]
3340
+ }