rouge 3.16.0 → 3.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/bin/rougify +2 -2
  3. data/lib/rouge.rb +67 -53
  4. data/lib/rouge/demos/augeas +16 -0
  5. data/lib/rouge/demos/bibtex +12 -0
  6. data/lib/rouge/demos/brightscript +6 -0
  7. data/lib/rouge/demos/cypher +5 -0
  8. data/lib/rouge/demos/datastudio +21 -0
  9. data/lib/rouge/demos/ecl +18 -0
  10. data/lib/rouge/demos/ghc-cmm +23 -0
  11. data/lib/rouge/demos/hlsl +20 -0
  12. data/lib/rouge/demos/isbl +4 -0
  13. data/lib/rouge/demos/janet +3 -0
  14. data/lib/rouge/demos/livescript +15 -0
  15. data/lib/rouge/demos/rego +8 -0
  16. data/lib/rouge/demos/solidity +13 -0
  17. data/lib/rouge/demos/ssh +4 -0
  18. data/lib/rouge/demos/vcl +12 -0
  19. data/lib/rouge/demos/velocity +9 -0
  20. data/lib/rouge/demos/yang +17 -0
  21. data/lib/rouge/demos/zig +6 -0
  22. data/lib/rouge/lexer.rb +2 -1
  23. data/lib/rouge/lexers/apache.rb +22 -12
  24. data/lib/rouge/lexers/apache/keywords.rb +24 -0
  25. data/lib/rouge/lexers/augeas.rb +93 -0
  26. data/lib/rouge/lexers/batchfile.rb +1 -1
  27. data/lib/rouge/lexers/bibtex.rb +115 -0
  28. data/lib/rouge/lexers/brightscript.rb +147 -0
  29. data/lib/rouge/lexers/cmake.rb +1 -0
  30. data/lib/rouge/lexers/coffeescript.rb +47 -15
  31. data/lib/rouge/lexers/console.rb +53 -37
  32. data/lib/rouge/lexers/cpp.rb +21 -7
  33. data/lib/rouge/lexers/css.rb +3 -1
  34. data/lib/rouge/lexers/cypher.rb +108 -0
  35. data/lib/rouge/lexers/datastudio.rb +138 -0
  36. data/lib/rouge/lexers/diff.rb +1 -1
  37. data/lib/rouge/lexers/docker.rb +1 -1
  38. data/lib/rouge/lexers/ecl.rb +175 -0
  39. data/lib/rouge/lexers/fsharp.rb +1 -0
  40. data/lib/rouge/lexers/ghc_cmm.rb +340 -0
  41. data/lib/rouge/lexers/gherkin.rb +1 -1
  42. data/lib/rouge/lexers/gherkin/keywords.rb +9 -6
  43. data/lib/rouge/lexers/haskell.rb +27 -19
  44. data/lib/rouge/lexers/hlsl.rb +166 -0
  45. data/lib/rouge/lexers/html.rb +7 -7
  46. data/lib/rouge/lexers/isbl.rb +97 -0
  47. data/lib/rouge/lexers/isbl/builtins.rb +17 -0
  48. data/lib/rouge/lexers/janet.rb +217 -0
  49. data/lib/rouge/lexers/javascript.rb +4 -4
  50. data/lib/rouge/lexers/jinja.rb +22 -7
  51. data/lib/rouge/lexers/json.rb +3 -0
  52. data/lib/rouge/lexers/json_doc.rb +1 -0
  53. data/lib/rouge/lexers/jsx.rb +47 -59
  54. data/lib/rouge/lexers/julia.rb +4 -2
  55. data/lib/rouge/lexers/kotlin.rb +14 -2
  56. data/lib/rouge/lexers/lasso.rb +11 -12
  57. data/lib/rouge/lexers/lasso/keywords.rb +20 -0
  58. data/lib/rouge/lexers/livescript.rb +310 -0
  59. data/lib/rouge/lexers/llvm.rb +6 -33
  60. data/lib/rouge/lexers/llvm/keywords.rb +25 -0
  61. data/lib/rouge/lexers/lua.rb +2 -2
  62. data/lib/rouge/lexers/lua/keywords.rb +28 -0
  63. data/lib/rouge/lexers/markdown.rb +9 -5
  64. data/lib/rouge/lexers/mathematica.rb +2 -2
  65. data/lib/rouge/lexers/mathematica/keywords.rb +17 -0
  66. data/lib/rouge/lexers/matlab.rb +3 -4
  67. data/lib/rouge/lexers/matlab/builtins.rb +11 -0
  68. data/lib/rouge/lexers/matlab/keywords.rb +15 -0
  69. data/lib/rouge/lexers/nasm.rb +42 -168
  70. data/lib/rouge/lexers/opentype_feature_file.rb +27 -42
  71. data/lib/rouge/lexers/pascal.rb +1 -1
  72. data/lib/rouge/lexers/perl.rb +21 -3
  73. data/lib/rouge/lexers/php.rb +48 -33
  74. data/lib/rouge/lexers/php/keywords.rb +202 -0
  75. data/lib/rouge/lexers/powershell.rb +5 -3
  76. data/lib/rouge/lexers/python.rb +58 -57
  77. data/lib/rouge/lexers/racket.rb +24 -1
  78. data/lib/rouge/lexers/rego.rb +60 -0
  79. data/lib/rouge/lexers/ruby.rb +16 -3
  80. data/lib/rouge/lexers/sass/common.rb +1 -0
  81. data/lib/rouge/lexers/scala.rb +1 -1
  82. data/lib/rouge/lexers/solidity.rb +185 -0
  83. data/lib/rouge/lexers/sparql.rb +5 -4
  84. data/lib/rouge/lexers/sqf.rb +2 -2
  85. data/lib/rouge/lexers/sqf/keywords.rb +12 -0
  86. data/lib/rouge/lexers/ssh.rb +33 -0
  87. data/lib/rouge/lexers/terraform.rb +15 -0
  88. data/lib/rouge/lexers/tsx.rb +10 -3
  89. data/lib/rouge/lexers/turtle.rb +1 -1
  90. data/lib/rouge/lexers/twig.rb +4 -4
  91. data/lib/rouge/lexers/typescript.rb +1 -8
  92. data/lib/rouge/lexers/typescript/common.rb +18 -4
  93. data/lib/rouge/lexers/varnish.rb +53 -16
  94. data/lib/rouge/lexers/velocity.rb +71 -0
  95. data/lib/rouge/lexers/viml.rb +6 -38
  96. data/lib/rouge/lexers/viml/keywords.rb +11 -4
  97. data/lib/rouge/lexers/vue.rb +4 -1
  98. data/lib/rouge/lexers/xml.rb +5 -3
  99. data/lib/rouge/lexers/yaml.rb +5 -3
  100. data/lib/rouge/lexers/yang.rb +147 -0
  101. data/lib/rouge/lexers/zig.rb +139 -0
  102. data/lib/rouge/version.rb +1 -1
  103. metadata +47 -10
  104. data/lib/rouge/demos/varnish +0 -55
  105. data/lib/rouge/lexers/apache/keywords.yml +0 -764
  106. data/lib/rouge/lexers/lasso/keywords.yml +0 -446
  107. data/lib/rouge/lexers/lua/builtins.rb +0 -24
  108. data/lib/rouge/lexers/mathematica/builtins.rb +0 -13
  109. data/lib/rouge/lexers/matlab/builtins.yml +0 -3515
  110. data/lib/rouge/lexers/php/builtins.rb +0 -203
  111. data/lib/rouge/lexers/sqf/commands.rb +0 -15
@@ -15,10 +15,12 @@ module Rouge
15
15
 
16
16
  tag 'javascript'
17
17
  aliases 'js'
18
- filenames '*.js', '*.mjs'
18
+ filenames '*.cjs', '*.js', '*.mjs'
19
19
  mimetypes 'application/javascript', 'application/x-javascript',
20
20
  'text/javascript', 'text/x-javascript'
21
21
 
22
+ # Pseudo-documentation: https://stackoverflow.com/questions/1661197/what-characters-are-valid-for-javascript-variable-names
23
+
22
24
  def self.detect?(text)
23
25
  return 1 if text.shebang?('node')
24
26
  return 1 if text.shebang?('jsc')
@@ -138,7 +140,7 @@ module Rouge
138
140
  end
139
141
 
140
142
  def self.id_regex
141
- /[$a-z_][a-z0-9_]*/io
143
+ /[\p{L}\p{Nl}$_][\p{Word}]*/io
142
144
  end
143
145
 
144
146
  id = self.id_regex
@@ -225,8 +227,6 @@ module Rouge
225
227
  groups Name::Label, Text, Punctuation
226
228
  end
227
229
 
228
- rule %r/[{}]/, Punctuation
229
-
230
230
  mixin :expr_start
231
231
  end
232
232
 
@@ -40,6 +40,17 @@ module Rouge
40
40
  rule %r/{#/, Comment, :comment
41
41
  rule %r/##.*/, Comment
42
42
 
43
+ # Raw and verbatim
44
+ rule %r/({%-?)(\s*)(raw|verbatim)(\s*)(-?%})/ do |m|
45
+ groups Comment::Preproc, Text, Keyword, Text, Comment::Preproc
46
+ case m[3]
47
+ when "raw"
48
+ push :raw
49
+ when "verbatim"
50
+ push :verbatim
51
+ end
52
+ end
53
+
43
54
  # Statements
44
55
  rule %r/\{\%/ do
45
56
  token Comment::Preproc
@@ -114,11 +125,6 @@ module Rouge
114
125
  end
115
126
 
116
127
  state :statement do
117
- rule %r/(raw|verbatim)(\s+)(\%\})/ do
118
- groups Keyword, Text, Comment::Preproc
119
- goto :raw
120
- end
121
-
122
128
  rule %r/(\w+\.?)/ do |m|
123
129
  if self.class.keywords.include?(m[0])
124
130
  groups Keyword
@@ -142,12 +148,21 @@ module Rouge
142
148
  end
143
149
 
144
150
  state :raw do
145
- rule %r{(\{\%)(\s+)(endverbatim|endraw)(\s+)(\%\})} do
151
+ rule %r/({%-?)(\s*)(endraw)(\s*)(-?%})/ do
146
152
  groups Comment::Preproc, Text, Keyword, Text, Comment::Preproc
147
153
  pop!
148
154
  end
155
+ rule %r/[^{]+/, Text
156
+ rule %r/{/, Text
157
+ end
149
158
 
150
- rule %r/(.+?)/m, Text
159
+ state :verbatim do
160
+ rule %r/({%-?)(\s*)(endverbatim)(\s*)(-?%})/ do
161
+ groups Comment::Preproc, Text, Keyword, Text, Comment::Preproc
162
+ pop!
163
+ end
164
+ rule %r/[^{]+/, Text
165
+ rule %r/{/, Text
151
166
  end
152
167
  end
153
168
  end
@@ -23,6 +23,9 @@ module Rouge
23
23
 
24
24
  mixin :name
25
25
  mixin :value
26
+
27
+ # These characters may be invalid but syntax correctness is a non-goal
28
+ rule %r/[\]}]/, Punctuation
26
29
  end
27
30
 
28
31
  state :object do
@@ -8,6 +8,7 @@ module Rouge
8
8
  class JSONDOC < JSON
9
9
  desc "JavaScript Object Notation with extensions for documentation"
10
10
  tag 'json-doc'
11
+ aliases 'jsonc'
11
12
 
12
13
  prepend :name do
13
14
  rule %r/([$\w]+)(\s*)(:)/ do
@@ -6,97 +6,85 @@ module Rouge
6
6
 
7
7
  class JSX < Javascript
8
8
  title 'JSX'
9
- desc 'React JSX (https://facebook.github.io/react/)'
9
+ desc 'An XML-like syntax extension to JavaScript (facebook.github.io/jsx/)'
10
10
  tag 'jsx'
11
11
  aliases 'jsx', 'react'
12
12
  filenames '*.jsx'
13
13
 
14
14
  mimetypes 'text/x-jsx', 'application/x-jsx'
15
15
 
16
- id = Javascript.id_regex
16
+ start { @html = HTML.new(options); push :expr_start }
17
17
 
18
- def start_embed!
19
- @embed ||= JSX.new(options)
20
- @embed.reset!
21
- @embed.push(:expr_start)
22
- push :jsx_embed_root
23
- end
24
-
25
- def tag_token(name)
26
- name[0] =~ /\p{Lower}/ ? Name::Tag : Name::Class
18
+ prepend :expr_start do
19
+ mixin :tag
27
20
  end
28
21
 
29
- start { @html = HTML.new(options) }
30
-
31
- state :jsx_tags do
32
- rule %r/</, Punctuation, :jsx_element
22
+ state :tag do
23
+ rule %r/</ do
24
+ token Punctuation
25
+ push :tag_opening
26
+ push :element
27
+ push :element_name
28
+ end
33
29
  end
34
30
 
35
- state :jsx_internal do
36
- rule %r(</) do
31
+ state :tag_opening do
32
+ rule %r/<\// do
37
33
  token Punctuation
38
- goto :jsx_end_tag
34
+ goto :element
35
+ push :element_name
39
36
  end
40
-
37
+ mixin :tag
41
38
  rule %r/{/ do
42
39
  token Str::Interpol
43
- start_embed!
40
+ push :interpol
41
+ push :expr_start
44
42
  end
45
-
46
- rule %r/[^<>{]+/ do
43
+ rule %r/[^<{]+/ do
47
44
  delegate @html
48
45
  end
49
-
50
- mixin :jsx_tags
51
- end
52
-
53
- prepend :expr_start do
54
- mixin :jsx_tags
55
46
  end
56
47
 
57
- state :jsx_tag do
48
+ state :element do
58
49
  mixin :comments_and_whitespace
59
- rule %r/#{id}/ do |m|
60
- token tag_token(m[0])
50
+ rule %r/\/>/ do
51
+ token Punctuation
52
+ pop! 2
61
53
  end
62
-
63
- rule %r/[.]/, Punctuation
64
- end
65
-
66
- state :jsx_end_tag do
67
- mixin :jsx_tag
68
54
  rule %r/>/, Punctuation, :pop!
69
- end
70
-
71
- state :jsx_element do
72
- rule %r/#{id}=/, Name::Attribute, :jsx_attribute
73
- mixin :jsx_tag
74
- rule %r/>/ do token Punctuation; goto :jsx_internal end
75
- rule %r(/>), Punctuation, :pop!
76
- end
77
-
78
- state :jsx_attribute do
79
- rule %r/"(\\[\\"]|[^"])*"/, Str::Double, :pop!
80
- rule %r/'(\\[\\']|[^'])*'/, Str::Single, :pop!
81
55
  rule %r/{/ do
82
56
  token Str::Interpol
83
- pop!
84
- start_embed!
57
+ push :interpol
58
+ push :expr_start
85
59
  end
60
+ rule %r/\w+/, Name::Attribute
61
+ rule %r/=/, Punctuation
62
+ rule %r/(["']).*?(\1)/, Str
86
63
  end
87
64
 
88
- state :jsx_embed_root do
89
- rule %r/[.][.][.]/, Punctuation
65
+ state :element_name do
66
+ rule %r/[A-Z]\w*/, Name::Class
67
+ rule %r/\w+/, Name::Tag
68
+ rule %r/\./, Punctuation
69
+ rule(//) { pop! }
70
+ end
71
+
72
+ state :interpol do
90
73
  rule %r/}/, Str::Interpol, :pop!
91
- mixin :jsx_embed
74
+ rule %r/{/ do
75
+ token Punctuation
76
+ push :interpol_inner
77
+ push :statement
78
+ end
79
+ mixin :root
92
80
  end
93
81
 
94
- state :jsx_embed do
95
- rule %r/{/ do delegate @embed; push :jsx_embed end
96
- rule %r/}/ do delegate @embed; pop! end
97
- rule %r/[^{}]+/ do
98
- delegate @embed
82
+ state :interpol_inner do
83
+ rule %r/}/ do
84
+ token Punctuation
85
+ goto :statement
99
86
  end
87
+ mixin :root
100
88
  end
101
89
  end
102
90
  end
@@ -11,6 +11,8 @@ module Rouge
11
11
  filenames '*.jl'
12
12
  mimetypes 'text/x-julia', 'application/x-julia'
13
13
 
14
+ # Documentation: https://docs.julialang.org/en/v1/manual/variables/#Allowed-Variable-Names-1
15
+
14
16
  def self.detect?(text)
15
17
  return true if text.shebang? 'julia'
16
18
  end
@@ -252,13 +254,13 @@ module Rouge
252
254
 
253
255
 
254
256
  state :funcname do
255
- rule %r/[a-zA-Z_]\w*/, Name::Function, :pop!
257
+ rule %r/[\p{L}\p{Nl}\p{S}_][\p{Word}\p{S}\p{Po}!]*/, Name::Function, :pop!
256
258
  rule %r/\([^\s\w{]{1,2}\)/, Operator, :pop!
257
259
  rule %r/[^\s\w{]{1,2}/, Operator, :pop!
258
260
  end
259
261
 
260
262
  state :typename do
261
- rule %r/[a-zA-Z_]\w*/, Name::Class, :pop!
263
+ rule %r/[\p{L}\p{Nl}\p{S}_][\p{Word}\p{S}\p{Po}!]*/, Name::Class, :pop!
262
264
  end
263
265
 
264
266
  state :stringescape do
@@ -53,6 +53,9 @@ module Rouge
53
53
  groups Keyword::Declaration, Text
54
54
  push :property
55
55
  end
56
+ rule %r'(return|continue|break|this|super)(@#{name})?' do
57
+ groups Keyword, Name::Decorator
58
+ end
56
59
  rule %r'\bfun\b', Keyword
57
60
  rule %r'\b(?:#{keywords.join('|')})\b', Keyword
58
61
  rule %r'^\s*\[.*?\]', Name::Attribute
@@ -64,13 +67,20 @@ module Rouge
64
67
  rule %r'\n', Text
65
68
  rule %r'::|!!|\?[:.]', Operator
66
69
  rule %r"(\.\.)", Operator
70
+ # Number literals
71
+ decDigits = %r"([0-9][0-9_]*[0-9])|[0-9]"
72
+ exponent = %r"[eE][+-]?(#{decDigits})"
73
+ double = %r"((#{decDigits})?\.#{decDigits}(#{exponent})?)|(#{decDigits}#{exponent})"
74
+ rule %r"(#{double}[fF]?)|(#{decDigits}[fF])", Num::Float
75
+ rule %r"0[bB]([01][01_]*[01]|[01])[uU]?L?", Num::Bin
76
+ rule %r"0[xX]([0-9a-fA-F][0-9a-fA-F_]*[0-9a-fA-F]|[0-9a-fA-F])[uU]?L?", Num::Hex
77
+ rule %r"(([1-9][0-9_]*[0-9])|[0-9])[uU]?L?", Num::Integer
67
78
  rule %r'[~!%^&*()+=|\[\]:;,.<>/?-]', Punctuation
68
79
  rule %r'[{}]', Punctuation
69
80
  rule %r'@"(""|[^"])*"'m, Str
70
81
  rule %r'""".*?"""'m, Str
71
82
  rule %r'"(\\\\|\\"|[^"\n])*["\n]'m, Str
72
83
  rule %r"'\\.'|'[^\\]'", Str::Char
73
- rule %r"[0-9](\.[0-9]+)?([eE][+-][0-9]+)?[flFL]?|0[xX][0-9a-fA-F]+[Ll]?", Num
74
84
  rule %r'(@#{class_name})', Name::Decorator
75
85
  rule %r'(#{class_name})(<)' do
76
86
  groups Name::Class, Punctuation
@@ -78,6 +88,7 @@ module Rouge
78
88
  end
79
89
  rule class_name, Name::Class
80
90
  rule %r'(#{name})(?=\s*[({])', Name::Function
91
+ rule %r'(#{name})@', Name::Decorator # label
81
92
  rule name, Name
82
93
  end
83
94
 
@@ -101,7 +112,8 @@ module Rouge
101
112
  state :generic_parameters do
102
113
  rule class_name, Name::Class
103
114
  rule %r'(<)', Punctuation, :generic_parameters
104
- rule %r'(,)', Punctuation
115
+ rule %r'(reified|out|in)', Keyword
116
+ rule %r'([,:])', Punctuation
105
117
  rule %r'(\s+)', Text
106
118
  rule %r'(>)', Punctuation, :pop!
107
119
  end
@@ -34,15 +34,10 @@ module Rouge
34
34
  push :lasso if start_inline?
35
35
  end
36
36
 
37
- class << self
38
- attr_reader :keywords
39
- end
40
-
41
- # Load Lasso keywords from separate YML file
42
- @keywords = ::YAML.load_file(File.join(__dir__, 'lasso/keywords.yml')).tap do |h|
43
- h.each do |k,v|
44
- h[k] = Set.new v
45
- end
37
+ # self-modifying method that loads the keywords file
38
+ def self.keywords
39
+ Kernel::load File.join(Lexers::BASE_DIR, 'lasso/keywords.rb')
40
+ keywords
46
41
  end
47
42
 
48
43
  id = /[a-z_][\w.]*/i
@@ -125,7 +120,6 @@ module Rouge
125
120
  rule %r/(?<!->)(self|inherited|currentcapture|givenblock)\b/i, Name::Builtin::Pseudo
126
121
  rule %r/-(?!infinity)#{id}/i, Name::Attribute
127
122
  rule %r/::\s*#{id}/, Name::Label
128
- rule %r/error_((code|msg)_\w+|adderror|columnrestriction|databaseconnectionunavailable|databasetimeout|deleteerror|fieldrestriction|filenotfound|invaliddatabase|invalidpassword|invalidusername|modulenotfound|noerror|nopermission|outofmemory|reqcolumnmissing|reqfieldmissing|requiredcolumnmissing|requiredfieldmissing|updateerror)/i, Name::Exception
129
123
 
130
124
  # definitions
131
125
  rule %r/(define)(\s+)(#{id})(\s*=>\s*)(type|trait|thread)\b/i do
@@ -150,7 +144,6 @@ module Rouge
150
144
  # keywords
151
145
  rule %r/(true|false|none|minimal|full|all|void)\b/i, Keyword::Constant
152
146
  rule %r/(local|var|variable|global|data(?=\s))\b/i, Keyword::Declaration
153
- rule %r/(array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray)\b/i, Keyword::Type
154
147
  rule %r/(#{id})(\s+)(in)\b/i do
155
148
  groups Name, Text, Keyword
156
149
  end
@@ -174,9 +167,15 @@ module Rouge
174
167
 
175
168
  if name == 'namespace_using'
176
169
  token Keyword::Namespace, m[2]
170
+ elsif self.class.keywords[:exceptions].include? name
171
+ token Name::Exception, m[2]
172
+ elsif self.class.keywords[:types].include? name
173
+ token Keyword::Type, m[2]
174
+ elsif self.class.keywords[:traits].include? name
175
+ token Name::Decorator, m[2]
177
176
  elsif self.class.keywords[:keywords].include? name
178
177
  token Keyword, m[2]
179
- elsif self.class.keywords[:types_traits].include? name
178
+ elsif self.class.keywords[:builtins].include? name
180
179
  token Name::Builtin, m[2]
181
180
  else
182
181
  token Name::Other, m[2]
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ # DO NOT EDIT
5
+ # This file is automatically generated by `rake builtins:lasso`.
6
+ # See tasks/builtins/lasso.rake for more info.
7
+
8
+ module Rouge
9
+ module Lexers
10
+ def Lasso.keywords
11
+ @keywords ||= {}.tap do |h|
12
+ h[:types] = Set.new ["array", "date", "decimal", "duration", "integer", "map", "pair", "string", "tag", "xml", "null", "boolean", "bytes", "keyword", "list", "locale", "queue", "set", "stack", "staticarray", "atbegin", "bson_iter", "bson", "bytes_document_body", "cache_server_element", "cache_server", "capture", "client_address", "client_ip", "component_container", "component_render_state", "component", "curl", "curltoken", "currency", "custom", "data_document", "database_registry", "dateandtime", "dbgp_packet", "dbgp_server", "debugging_stack", "delve", "dir", "dirdesc", "dns_response", "document_base", "document_body", "document_header", "dsinfo", "eacher", "email_compose", "email_parse", "email_pop", "email_queue_impl_base", "email_queue_impl", "email_smtp", "email_stage_impl_base", "email_stage_impl", "fastcgi_each_fcgi_param", "fastcgi_server", "fcgi_record", "fcgi_request", "file", "filedesc", "filemaker_datasource", "generateforeachkeyed", "generateforeachunkeyed", "generateseries", "hash_map", "html_atomic_element", "html_attr", "html_base", "html_binary", "html_br", "html_cdata", "html_container_element", "html_div", "html_document_body", "html_document_head", "html_eol", "html_fieldset", "html_form", "html_h1", "html_h2", "html_h3", "html_h4", "html_h5", "html_h6", "html_hr", "html_img", "html_input", "html_json", "html_label", "html_legend", "html_link", "html_meta", "html_object", "html_option", "html_raw", "html_script", "html_select", "html_span", "html_style", "html_table", "html_td", "html_text", "html_th", "html_tr", "http_document_header", "http_document", "http_error", "http_header_field", "http_server_connection_handler_globals", "http_server_connection_handler", "http_server_request_logger_thread", "http_server_web_connection", "http_server", "image", "include_cache", "inline_type", "java_jnienv", "jbyte", "jbytearray", "jchar", "jchararray", "jfieldid", "jfloat", "jint", "jmethodid", "jobject", "jshort", "json_decode", "json_encode", "json_literal", "json_object", "lassoapp_compiledsrc_appsource", "lassoapp_compiledsrc_fileresource", "lassoapp_content_rep_halt", "lassoapp_dirsrc_appsource", "lassoapp_dirsrc_fileresource", "lassoapp_installer", "lassoapp_livesrc_appsource", "lassoapp_livesrc_fileresource", "lassoapp_long_expiring_bytes", "lassoapp_manualsrc_appsource", "lassoapp_zip_file_server", "lassoapp_zipsrc_appsource", "lassoapp_zipsrc_fileresource", "ldap", "library_thread_loader", "list_node", "log_impl_base", "log_impl", "magick_image", "map_node", "memberstream", "memory_session_driver_impl_entry", "memory_session_driver_impl", "memory_session_driver", "mime_reader", "mongo_client", "mongo_collection", "mongo_cursor", "mustache_ctx", "mysql_session_driver_impl", "mysql_session_driver", "net_named_pipe", "net_tcp_ssl", "net_tcp", "net_udp_packet", "net_udp", "odbc_session_driver_impl", "odbc_session_driver", "opaque", "os_process", "pair_compare", "pairup", "pdf_barcode", "pdf_chunk", "pdf_color", "pdf_doc", "pdf_font", "pdf_hyphenator", "pdf_image", "pdf_list", "pdf_paragraph", "pdf_phrase", "pdf_read", "pdf_table", "pdf_text", "pdf_typebase", "percent", "portal_impl", "queriable_groupby", "queriable_grouping", "queriable_groupjoin", "queriable_join", "queriable_orderby", "queriable_orderbydescending", "queriable_select", "queriable_selectmany", "queriable_skip", "queriable_take", "queriable_thenby", "queriable_thenbydescending", "queriable_where", "raw_document_body", "regexp", "repeat", "scientific", "security_registry", "serialization_element", "serialization_object_identity_compare", "serialization_reader", "serialization_writer_ref", "serialization_writer_standin", "serialization_writer", "session_delete_expired_thread", "signature", "sourcefile", "sqlite_column", "sqlite_currentrow", "sqlite_db", "sqlite_results", "sqlite_session_driver_impl_entry", "sqlite_session_driver_impl", "sqlite_session_driver", "sqlite_table", "sqlite3_stmt", "sqlite3", "sys_process", "text_document", "tie", "timeonly", "tree_base", "tree_node", "tree_nullnode", "ucal", "usgcpu", "usgvm", "web_error_atend", "web_node_base", "web_node_content_representation_css_specialized", "web_node_content_representation_html_specialized", "web_node_content_representation_js_specialized", "web_node_content_representation_xhr_container", "web_node_echo", "web_node_root", "web_request_impl", "web_request", "web_response_impl", "web_response", "web_router", "websocket_handler", "worker_pool", "xml_attr", "xml_cdatasection", "xml_characterdata", "xml_comment", "xml_document", "xml_documentfragment", "xml_documenttype", "xml_domimplementation", "xml_element", "xml_entity", "xml_entityreference", "xml_namednodemap_attr", "xml_namednodemap_ht", "xml_namednodemap", "xml_node", "xml_nodelist", "xml_notation", "xml_processinginstruction", "xml_text", "xmlstream", "zip_file_impl", "zip_file", "zip_impl", "zip"]
13
+ h[:traits] = Set.new ["any", "formattingbase", "html_attributed", "html_element_coreattrs", "html_element_eventsattrs", "html_element_i18nattrs", "lassoapp_capabilities", "lassoapp_resource", "lassoapp_source", "queriable_asstring", "session_driver", "trait_array", "trait_asstring", "trait_backcontractible", "trait_backended", "trait_backexpandable", "trait_close", "trait_contractible", "trait_decompose_assignment", "trait_doubleended", "trait_each_sub", "trait_encodeurl", "trait_endedfullymutable", "trait_expandable", "trait_file", "trait_finite", "trait_finiteforeach", "trait_foreach", "trait_foreachtextelement", "trait_frontcontractible", "trait_frontended", "trait_frontexpandable", "trait_fullymutable", "trait_generator", "trait_generatorcentric", "trait_hashable", "trait_json_serialize", "trait_keyed", "trait_keyedfinite", "trait_keyedforeach", "trait_keyedmutable", "trait_list", "trait_map", "trait_net", "trait_pathcomponents", "trait_positionallykeyed", "trait_positionallysearchable", "trait_queriable", "trait_queriablelambda", "trait_readbytes", "trait_readstring", "trait_scalar", "trait_searchable", "trait_serializable", "trait_setencoding", "trait_setoperations", "trait_stack", "trait_treenode", "trait_writebytes", "trait_writestring", "trait_xml_elementcompat", "trait_xml_nodecompat", "web_connection", "web_node_container", "web_node_content_css_specialized", "web_node_content_document", "web_node_content_html_specialized", "web_node_content_js_specialized", "web_node_content_json_specialized", "web_node_content_representation", "web_node_content", "web_node_postable", "web_node"]
14
+ h[:builtins] = Set.new ["__char", "__sync_timestamp__", "_admin_addgroup", "_admin_adduser", "_admin_defaultconnector", "_admin_defaultconnectornames", "_admin_defaultdatabase", "_admin_defaultfield", "_admin_defaultgroup", "_admin_defaulthost", "_admin_defaulttable", "_admin_defaultuser", "_admin_deleteconnector", "_admin_deletedatabase", "_admin_deletefield", "_admin_deletegroup", "_admin_deletehost", "_admin_deletetable", "_admin_deleteuser", "_admin_duplicategroup", "_admin_internaldatabase", "_admin_listconnectors", "_admin_listdatabases", "_admin_listfields", "_admin_listgroups", "_admin_listhosts", "_admin_listtables", "_admin_listusers", "_admin_refreshconnector", "_admin_refreshsecurity", "_admin_servicepath", "_admin_updateconnector", "_admin_updatedatabase", "_admin_updatefield", "_admin_updategroup", "_admin_updatehost", "_admin_updatetable", "_admin_updateuser", "_chartfx_activation_string", "_chartfx_getchallengestring", "_chop_args", "_chop_mimes", "_client_addr_old", "_client_address_old", "_client_ip_old", "_database_names", "_datasource_reload", "_date_current", "_date_format", "_date_msec", "_date_parse", "_execution_timelimit", "_file_chmod", "_initialize", "_jdbc_acceptsurl", "_jdbc_debug", "_jdbc_deletehost", "_jdbc_driverclasses", "_jdbc_driverinfo", "_jdbc_metainfo", "_jdbc_propertyinfo", "_jdbc_setdriver", "_lasso_param", "_log_helper", "_proc_noparam", "_proc_withparam", "_recursion_limit", "_request_param", "_security_binaryexpiration", "_security_flushcaches", "_security_isserialized", "_security_serialexpiration", "_srand", "_strict_literals", "_substring", "_xmlrpc_exconverter", "_xmlrpc_inconverter", "_xmlrpc_xmlinconverter", "action_addinfo", "action_addrecord", "action_setfoundcount", "action_setrecordid", "action_settotalcount", "admin_allowedfileroots", "admin_changeuser", "admin_createuser", "admin_groupassignuser", "admin_grouplistusers", "admin_groupremoveuser", "admin_listgroups", "admin_refreshlicensing", "admin_refreshsecurity", "admin_reloaddatasource", "admin_userlistgroups", "array_iterator", "auth_auth", "auth", "base64", "bean", "bigint", "cache_delete", "cache_empty", "cache_exists", "cache_fetch", "cache_internal", "cache_maintenance", "cache_object", "cache_preferences", "cache_store", "chartfx_records", "chartfx_serve", "chartfx", "choice_list", "choice_listitem", "choicelistitem", "click_text", "client_ipfrominteger", "compare_beginswith", "compare_contains", "compare_endswith", "compare_equalto", "compare_greaterthan", "compare_greaterthanorequals", "compare_greaterthanorequls", "compare_lessthan", "compare_lessthanorequals", "compare_notbeginswith", "compare_notcontains", "compare_notendswith", "compare_notequalto", "compare_notregexp", "compare_regexp", "compare_strictequalto", "compare_strictnotequalto", "compiler_removecacheddoc", "compiler_setdefaultparserflags", "curl_ftp_getfile", "curl_ftp_getlisting", "curl_ftp_putfile", "curl_include_url", "database_changecolumn", "database_changefield", "database_createcolumn", "database_createfield", "database_createtable", "database_fmcontainer", "database_hostinfo", "database_inline", "database_nameitem", "database_realname", "database_removecolumn", "database_removefield", "database_removetable", "database_repeating_valueitem", "database_repeating", "database_repeatingvalueitem", "database_schemanameitem", "database_tablecolumn", "database_tablenameitem", "datasource_name", "datasource_register", "date__date_current", "date__date_format", "date__date_msec", "date__date_parse", "date_add", "date_date", "date_difference", "date_duration", "date_format", "date_getcurrentdate", "date_getday", "date_getdayofweek", "date_gethour", "date_getlocaltimezone", "date_getminute", "date_getmonth", "date_getsecond", "date_gettime", "date_getyear", "date_gmttolocal", "date_localtogmt", "date_maximum", "date_minimum", "date_msec", "date_setformat", "date_subtract", "db_layoutnameitem", "db_layoutnames", "db_nameitem", "db_names", "db_tablenameitem", "db_tablenames", "dbi_column_names", "dbi_field_names", "decimal_setglobaldefaultprecision", "decode_base64", "decode_bheader", "decode_hex", "decode_html", "decode_json", "decode_qheader", "decode_quotedprintable", "decode_quotedprintablebytes", "decode_url", "decode_xml", "decrypt_blowfish2", "default", "define_constant", "define_prototype", "define_tagp", "define_typep", "deserialize", "directory_directorynameitem", "directory_lister", "directory_nameitem", "directorynameitem", "email_mxerror", "encode_base64", "encode_bheader", "encode_break", "encode_breaks", "encode_crc32", "encode_hex", "encode_html", "encode_htmltoxml", "encode_json", "encode_quotedprintable", "encode_quotedprintablebytes", "encode_smart", "encode_sql", "encode_sql92", "encode_stricturl", "encode_url", "encode_xml", "encrypt_blowfish2", "error_currenterror", "error_norecordsfound", "error_seterrorcode", "error_seterrormessage", "euro", "event_schedule", "file_autoresolvefullpaths", "file_chmod", "file_control", "file_copy", "file_create", "file_creationdate", "file_currenterror", "file_delete", "file_exists", "file_getlinecount", "file_getsize", "file_isdirectory", "file_listdirectory", "file_moddate", "file_move", "file_openread", "file_openreadwrite", "file_openwrite", "file_openwriteappend", "file_openwritetruncate", "file_probeeol", "file_processuploads", "file_read", "file_readline", "file_rename", "file_serve", "file_setsize", "file_stream", "file_streamcopy", "file_uploads", "file_waitread", "file_waittimeout", "file_waitwrite", "file_write", "find_soap_ops", "form_param", "global_defined", "global_remove", "global_reset", "globals", "http_getfile", "ical_alarm", "ical_attribute", "ical_calendar", "ical_daylight", "ical_event", "ical_freebusy", "ical_item", "ical_journal", "ical_parse", "ical_standard", "ical_timezone", "ical_todo", "image_url", "img", "include_cgi", "iterator", "java_bean", "java", "json_records", "lasso_comment", "lasso_datasourceis", "lasso_datasourceis4d", "lasso_datasourceisfilemaker", "lasso_datasourceisfilemaker7", "lasso_datasourceisfilemaker9", "lasso_datasourceisfilemakersa", "lasso_datasourceisjdbc", "lasso_datasourceislassomysql", "lasso_datasourceismysql", "lasso_datasourceisodbc", "lasso_datasourceisopenbase", "lasso_datasourceisoracle", "lasso_datasourceispostgresql", "lasso_datasourceisspotlight", "lasso_datasourceissqlite", "lasso_datasourceissqlserver", "lasso_datasourcemodulename", "lasso_datatype", "lasso_disableondemand", "lasso_parser", "lasso_process", "lasso_sessionid", "lasso_siteid", "lasso_siteisrunning", "lasso_sitename", "lasso_siterestart", "lasso_sitestart", "lasso_sitestop", "lasso_tagmodulename", "lasso_updatecheck", "lasso_uptime", "lassoapp_create", "lassoapp_dump", "lassoapp_flattendir", "lassoapp_getappdata", "lassoapp_list", "lassoapp_process", "lassoapp_unitize", "ldml_ldml", "ldml", "link_currentactionparams", "link_currentactionurl", "link_currentgroupparams", "link_currentgroupurl", "link_currentrecordparams", "link_currentrecordurl", "link_currentsearch", "link_currentsearchparams", "link_currentsearchurl", "link_detailparams", "link_detailurl", "link_firstgroupparams", "link_firstgroupurl", "link_firstrecordparams", "link_firstrecordurl", "link_lastgroupparams", "link_lastgroupurl", "link_lastrecordparams", "link_lastrecordurl", "link_nextgroupparams", "link_nextgroupurl", "link_nextrecordparams", "link_nextrecordurl", "link_params", "link_prevgroupparams", "link_prevgroupurl", "link_prevrecordparams", "link_prevrecordurl", "link_setformat", "link_url", "list_additem", "list_fromlist", "list_fromstring", "list_getitem", "list_itemcount", "list_iterator", "list_removeitem", "list_replaceitem", "list_reverseiterator", "list_tostring", "literal", "ljax_end", "ljax_hastarget", "ljax_include", "ljax_start", "local_defined", "local_remove", "local_reset", "locals", "logicalop_value", "logicaloperator_value", "map_iterator", "match_comparator", "match_notrange", "match_notregexp", "match_range", "match_regexp", "math_abs", "math_acos", "math_add", "math_asin", "math_atan", "math_atan2", "math_ceil", "math_converteuro", "math_cos", "math_div", "math_exp", "math_floor", "math_internal_rand", "math_internal_randmax", "math_internal_srand", "math_ln", "math_log", "math_log10", "math_max", "math_min", "math_mod", "math_mult", "math_pow", "math_random", "math_range", "math_rint", "math_roman", "math_round", "math_sin", "math_sqrt", "math_sub", "math_tan", "mime_type", "misc__srand", "misc_randomnumber", "misc_roman", "misc_valid_creditcard", "named_param", "namespace_current", "namespace_delimiter", "namespace_exists", "namespace_file_fullpathexists", "namespace_load", "namespace_page", "namespace_unload", "net", "no_default_output", "object", "once", "oneoff", "op_logicalvalue", "operator_logicalvalue", "option", "postcondition", "precondition", "prettyprintingnsmap", "prettyprintingtypemap", "priorityqueue", "proc_convert", "proc_convertbody", "proc_convertone", "proc_extract", "proc_extractone", "proc_find", "proc_first", "proc_foreach", "proc_get", "proc_join", "proc_lasso", "proc_last", "proc_map_entry", "proc_null", "proc_regexp", "proc_xml", "proc_xslt", "rand", "randomnumber", "raw", "recid_value", "record_count", "recordcount", "recordid_value", "reference", "repeating_valueitem", "repeatingvalueitem", "repetition", "req_column", "req_field", "required_column", "required_field", "response_fileexists", "reverseiterator", "roman", "row_count", "search_columnitem", "search_fielditem", "search_operatoritem", "search_opitem", "search_valueitem", "searchfielditem", "searchoperatoritem", "searchopitem", "searchvalueitem", "serialize", "server_date", "server_day", "server_siteisrunning", "server_sitestart", "server_sitestop", "server_time", "session_addoutputfilter", "session_addvariable", "session_removevariable", "session_setdriver", "set_iterator", "set_reverseiterator", "site_atbegin", "site_restart", "soap_convertpartstopairs", "soap_info", "soap_stub", "sort_columnitem", "sort_fielditem", "sort_orderitem", "sortcolumnitem", "sortfielditem", "sortorderitem", "srand", "stock_quote", "string_charfromname", "string_concatenate", "string_countfields", "string_endswith", "string_extract", "string_findposition", "string_findregexp", "string_fordigit", "string_getfield", "string_getunicodeversion", "string_insert", "string_isalpha", "string_isalphanumeric", "string_isdigit", "string_ishexdigit", "string_islower", "string_isnumeric", "string_ispunctuation", "string_isspace", "string_isupper", "string_length", "string_lowercase", "string_remove", "string_removeleading", "string_removetrailing", "string_replace", "string_replaceregexp", "string_todecimal", "string_tointeger", "string_uppercase", "table_realname", "tags_find", "tags_list", "tags", "tcp_close", "tcp_open", "tcp_send", "tcp_tcp_close", "tcp_tcp_open", "tcp_tcp_send", "thread_abort", "thread_event", "thread_exists", "thread_getcurrentid", "thread_getpriority", "thread_info", "thread_list", "thread_lock", "thread_pipe", "thread_priority_default", "thread_priority_high", "thread_priority_low", "thread_rwlock", "thread_semaphore", "thread_setpriority", "total_records", "treemap_iterator", "url_rewrite", "valid_creditcard", "valid_date", "valid_email", "valid_url", "var_defined", "var_remove", "var_reset", "var_set", "variable_defined", "variable_set", "variables", "variant_count", "vars", "wsdl_extract", "wsdl_getbinding", "wsdl_getbindingforoperation", "wsdl_getbindingoperations", "wsdl_getmessagenamed", "wsdl_getmessageparts", "wsdl_getmessagetriofromporttype", "wsdl_getopbodystyle", "wsdl_getopbodyuse", "wsdl_getoperation", "wsdl_getoplocation", "wsdl_getopmessagetypes", "wsdl_getopsoapaction", "wsdl_getportaddress", "wsdl_getportsforservice", "wsdl_getporttype", "wsdl_getporttypeoperation", "wsdl_getservicedocumentation", "wsdl_getservices", "wsdl_gettargetnamespace", "wsdl_issoapoperation", "wsdl_listoperations", "wsdl_maketest", "xml_extract", "xml_rpc", "xml_rpccall", "xml_rw", "xml_serve", "xml_xml", "xml_xmlstream", "xsd_attribute", "xsd_blankarraybase", "xsd_blankbase", "xsd_buildtype", "xsd_cache", "xsd_checkcardinality", "xsd_continueall", "xsd_continueannotation", "xsd_continueany", "xsd_continueanyattribute", "xsd_continueattribute", "xsd_continueattributegroup", "xsd_continuechoice", "xsd_continuecomplexcontent", "xsd_continuecomplextype", "xsd_continuedocumentation", "xsd_continueextension", "xsd_continuegroup", "xsd_continuekey", "xsd_continuelist", "xsd_continuerestriction", "xsd_continuesequence", "xsd_continuesimplecontent", "xsd_continuesimpletype", "xsd_continueunion", "xsd_deserialize", "xsd_fullyqualifyname", "xsd_generate", "xsd_generateblankfromtype", "xsd_generateblanksimpletype", "xsd_generatetype", "xsd_getschematype", "xsd_issimpletype", "xsd_loadschema", "xsd_lookupnamespaceuri", "xsd_lookuptype", "xsd_processany", "xsd_processattribute", "xsd_processattributegroup", "xsd_processcomplextype", "xsd_processelement", "xsd_processgroup", "xsd_processimport", "xsd_processinclude", "xsd_processschema", "xsd_processsimpletype", "xsd_ref", "xsd_type", "_ffi", "abort_clear", "abort_now", "action_param", "action_params", "action_statement", "admin_authorization", "admin_currentgroups", "admin_currentuserid", "admin_currentusername", "admin_getpref", "admin_initialize", "admin_lassoservicepath", "admin_removepref", "admin_setpref", "admin_userexists", "auth_admin", "auth_check", "auth_custom", "auth_group", "auth_prompt", "auth_user", "bom_utf16be", "bom_utf16le", "bom_utf32be", "bom_utf32le", "bom_utf8", "capture_nearestloopabort", "capture_nearestloopcontinue", "capture_nearestloopcount", "checked", "cipher_decrypt_private", "cipher_decrypt_public", "cipher_decrypt", "cipher_digest", "cipher_encrypt_private", "cipher_encrypt_public", "cipher_encrypt", "cipher_generate_key", "cipher_hmac", "cipher_keylength", "cipher_list", "cipher_open", "cipher_seal", "cipher_sign", "cipher_verify", "client_addr", "client_authorization", "client_browser", "client_contentlength", "client_contenttype", "client_cookielist", "client_cookies", "client_encoding", "client_formmethod", "client_getargs", "client_getparam", "client_getparams", "client_headers", "client_integertoip", "client_iptointeger", "client_password", "client_postargs", "client_postparam", "client_postparams", "client_type", "client_url", "client_username", "column_name", "column_names", "column_type", "column", "compress", "content_addheader", "content_body", "content_encoding", "content_header", "content_replaceheader", "content_type", "cookie_set", "cookie", "curl_easy_cleanup", "curl_easy_duphandle", "curl_easy_getinfo", "curl_easy_init", "curl_easy_reset", "curl_easy_setopt", "curl_easy_strerror", "curl_getdate", "curl_http_version_1_0", "curl_http_version_1_1", "curl_http_version_none", "curl_ipresolve_v4", "curl_ipresolve_v6", "curl_ipresolve_whatever", "curl_multi_perform", "curl_multi_result", "curl_netrc_ignored", "curl_netrc_optional", "curl_netrc_required", "curl_sslversion_default", "curl_sslversion_sslv2", "curl_sslversion_sslv3", "curl_sslversion_tlsv1", "curl_version_asynchdns", "curl_version_debug", "curl_version_gssnegotiate", "curl_version_idn", "curl_version_info", "curl_version_ipv6", "curl_version_kerberos4", "curl_version_largefile", "curl_version_libz", "curl_version_ntlm", "curl_version_spnego", "curl_version_ssl", "curl_version", "curlauth_any", "curlauth_anysafe", "curlauth_basic", "curlauth_digest", "curlauth_gssnegotiate", "curlauth_none", "curlauth_ntlm", "curle_aborted_by_callback", "curle_bad_calling_order", "curle_bad_content_encoding", "curle_bad_download_resume", "curle_bad_function_argument", "curle_bad_password_entered", "curle_couldnt_connect", "curle_couldnt_resolve_host", "curle_couldnt_resolve_proxy", "curle_failed_init", "curle_file_couldnt_read_file", "curle_filesize_exceeded", "curle_ftp_access_denied", "curle_ftp_cant_get_host", "curle_ftp_cant_reconnect", "curle_ftp_couldnt_get_size", "curle_ftp_couldnt_retr_file", "curle_ftp_couldnt_set_ascii", "curle_ftp_couldnt_set_binary", "curle_ftp_couldnt_use_rest", "curle_ftp_port_failed", "curle_ftp_quote_error", "curle_ftp_ssl_failed", "curle_ftp_user_password_incorrect", "curle_ftp_weird_227_format", "curle_ftp_weird_pass_reply", "curle_ftp_weird_pasv_reply", "curle_ftp_weird_server_reply", "curle_ftp_weird_user_reply", "curle_ftp_write_error", "curle_function_not_found", "curle_got_nothing", "curle_http_post_error", "curle_http_range_error", "curle_http_returned_error", "curle_interface_failed", "curle_ldap_cannot_bind", "curle_ldap_invalid_url", "curle_ldap_search_failed", "curle_library_not_found", "curle_login_denied", "curle_malformat_user", "curle_obsolete", "curle_ok", "curle_operation_timeouted", "curle_out_of_memory", "curle_partial_file", "curle_read_error", "curle_recv_error", "curle_send_error", "curle_send_fail_rewind", "curle_share_in_use", "curle_ssl_cacert", "curle_ssl_certproblem", "curle_ssl_cipher", "curle_ssl_connect_error", "curle_ssl_engine_initfailed", "curle_ssl_engine_notfound", "curle_ssl_engine_setfailed", "curle_ssl_peer_certificate", "curle_telnet_option_syntax", "curle_too_many_redirects", "curle_unknown_telnet_option", "curle_unsupported_protocol", "curle_url_malformat_user", "curle_url_malformat", "curle_write_error", "curlftpauth_default", "curlftpauth_ssl", "curlftpauth_tls", "curlftpssl_all", "curlftpssl_control", "curlftpssl_last", "curlftpssl_none", "curlftpssl_try", "curlinfo_connect_time", "curlinfo_content_length_download", "curlinfo_content_length_upload", "curlinfo_content_type", "curlinfo_effective_url", "curlinfo_filetime", "curlinfo_header_size", "curlinfo_http_connectcode", "curlinfo_httpauth_avail", "curlinfo_namelookup_time", "curlinfo_num_connects", "curlinfo_os_errno", "curlinfo_pretransfer_time", "curlinfo_proxyauth_avail", "curlinfo_redirect_count", "curlinfo_redirect_time", "curlinfo_request_size", "curlinfo_response_code", "curlinfo_size_download", "curlinfo_size_upload", "curlinfo_speed_download", "curlinfo_speed_upload", "curlinfo_ssl_engines", "curlinfo_ssl_verifyresult", "curlinfo_starttransfer_time", "curlinfo_total_time", "curlmsg_done", "curlopt_autoreferer", "curlopt_buffersize", "curlopt_cainfo", "curlopt_capath", "curlopt_connecttimeout", "curlopt_cookie", "curlopt_cookiefile", "curlopt_cookiejar", "curlopt_cookiesession", "curlopt_crlf", "curlopt_customrequest", "curlopt_dns_use_global_cache", "curlopt_egdsocket", "curlopt_encoding", "curlopt_failonerror", "curlopt_filetime", "curlopt_followlocation", "curlopt_forbid_reuse", "curlopt_fresh_connect", "curlopt_ftp_account", "curlopt_ftp_create_missing_dirs", "curlopt_ftp_response_timeout", "curlopt_ftp_ssl", "curlopt_ftp_use_eprt", "curlopt_ftp_use_epsv", "curlopt_ftpappend", "curlopt_ftplistonly", "curlopt_ftpport", "curlopt_ftpsslauth", "curlopt_header", "curlopt_http_version", "curlopt_http200aliases", "curlopt_httpauth", "curlopt_httpget", "curlopt_httpheader", "curlopt_httppost", "curlopt_httpproxytunnel", "curlopt_infilesize_large", "curlopt_infilesize", "curlopt_interface", "curlopt_ipresolve", "curlopt_krb4level", "curlopt_low_speed_limit", "curlopt_low_speed_time", "curlopt_mail_from", "curlopt_mail_rcpt", "curlopt_maxconnects", "curlopt_maxfilesize_large", "curlopt_maxfilesize", "curlopt_maxredirs", "curlopt_netrc_file", "curlopt_netrc", "curlopt_nobody", "curlopt_noprogress", "curlopt_port", "curlopt_post", "curlopt_postfields", "curlopt_postfieldsize_large", "curlopt_postfieldsize", "curlopt_postquote", "curlopt_prequote", "curlopt_proxy", "curlopt_proxyauth", "curlopt_proxyport", "curlopt_proxytype", "curlopt_proxyuserpwd", "curlopt_put", "curlopt_quote", "curlopt_random_file", "curlopt_range", "curlopt_readdata", "curlopt_referer", "curlopt_resume_from_large", "curlopt_resume_from", "curlopt_ssl_cipher_list", "curlopt_ssl_verifyhost", "curlopt_ssl_verifypeer", "curlopt_sslcert", "curlopt_sslcerttype", "curlopt_sslengine_default", "curlopt_sslengine", "curlopt_sslkey", "curlopt_sslkeypasswd", "curlopt_sslkeytype", "curlopt_sslversion", "curlopt_tcp_nodelay", "curlopt_timecondition", "curlopt_timeout", "curlopt_timevalue", "curlopt_transfertext", "curlopt_unrestricted_auth", "curlopt_upload", "curlopt_url", "curlopt_use_ssl", "curlopt_useragent", "curlopt_userpwd", "curlopt_verbose", "curlopt_writedata", "curlproxy_http", "curlproxy_socks4", "curlproxy_socks5", "database_adddefaultsqlitehost", "database_database", "database_initialize", "database_name", "database_qs", "database_table_database_tables", "database_table_datasource_databases", "database_table_datasource_hosts", "database_table_datasources", "database_table_table_fields", "database_util_cleanpath", "dbgp_stop_stack_name", "debugging_break", "debugging_breakpoint_get", "debugging_breakpoint_list", "debugging_breakpoint_remove", "debugging_breakpoint_set", "debugging_breakpoint_update", "debugging_context_locals", "debugging_context_self", "debugging_context_vars", "debugging_detach", "debugging_enabled", "debugging_get_context", "debugging_get_stack", "debugging_run", "debugging_step_in", "debugging_step_out", "debugging_step_over", "debugging_stop", "debugging_terminate", "decimal_random", "decompress", "decrypt_blowfish", "define_atbegin", "define_atend", "dns_default", "dns_lookup", "document", "email_attachment_mime_type", "email_digestchallenge", "email_digestresponse", "email_extract", "email_findemails", "email_fix_address_list", "email_fix_address", "email_fs_error_clean", "email_immediate", "email_initialize", "email_merge", "email_mxlookup", "email_pop_priv_extract", "email_pop_priv_quote", "email_pop_priv_substring", "email_queue", "email_result", "email_safeemail", "email_send", "email_status", "email_token", "email_translatebreakstocrlf", "encode_qheader", "encoding_iso88591", "encoding_utf8", "encrypt_blowfish", "encrypt_crammd5", "encrypt_hmac", "encrypt_md5", "eol", "error_code", "error_msg", "error_obj", "error_pop", "error_push", "error_reset", "error_stack", "escape_tag", "evdns_resolve_ipv4", "evdns_resolve_ipv6", "evdns_resolve_reverse_ipv6", "evdns_resolve_reverse", "fail_now", "failure_clear", "fastcgi_createfcgirequest", "fastcgi_handlecon", "fastcgi_handlereq", "fastcgi_initialize", "fastcgi_initiate_request", "fcgi_abort_request", "fcgi_authorize", "fcgi_begin_request", "fcgi_bodychunksize", "fcgi_cant_mpx_conn", "fcgi_data", "fcgi_end_request", "fcgi_filter", "fcgi_get_values_result", "fcgi_get_values", "fcgi_keep_conn", "fcgi_makeendrequestbody", "fcgi_makestdoutbody", "fcgi_max_conns", "fcgi_max_reqs", "fcgi_mpxs_conns", "fcgi_null_request_id", "fcgi_overloaded", "fcgi_params", "fcgi_read_timeout_seconds", "fcgi_readparam", "fcgi_request_complete", "fcgi_responder", "fcgi_stderr", "fcgi_stdin", "fcgi_stdout", "fcgi_unknown_role", "fcgi_unknown_type", "fcgi_version_1", "fcgi_x_stdin", "field_name", "field_names", "field", "file_copybuffersize", "file_defaultencoding", "file_forceroot", "file_modechar", "file_modeline", "file_stderr", "file_stdin", "file_stdout", "file_tempfile", "filemakerds_initialize", "filemakerds", "found_count", "ftp_deletefile", "ftp_getdata", "ftp_getfile", "ftp_getlisting", "ftp_putdata", "ftp_putfile", "generateforeach", "hash_primes", "http_char_colon", "http_char_cr", "http_char_htab", "http_char_lf", "http_char_question", "http_char_space", "http_default_files", "http_read_headers", "http_read_timeout_secs", "http_server_apps_path", "http_server_request_logger", "include_cache_compare", "include_currentpath", "include_filepath", "include_localpath", "include_once", "include_path", "include_raw", "include_url", "include", "includes", "inline_colinfo_name_pos", "inline_colinfo_type_pos", "inline_colinfo_valuelist_pos", "inline_columninfo_pos", "inline_foundcount_pos", "inline_namedget", "inline_namedput", "inline_resultrows_pos", "inline_scopeget", "inline_scopepop", "inline_scopepush", "integer_bitor", "integer_random", "io_dir_dt_blk", "io_dir_dt_chr", "io_dir_dt_dir", "io_dir_dt_fifo", "io_dir_dt_lnk", "io_dir_dt_reg", "io_dir_dt_sock", "io_dir_dt_unknown", "io_dir_dt_wht", "io_file_access", "io_file_chdir", "io_file_chmod", "io_file_chown", "io_file_dirname", "io_file_f_dupfd", "io_file_f_getfd", "io_file_f_getfl", "io_file_f_getlk", "io_file_f_rdlck", "io_file_f_setfd", "io_file_f_setfl", "io_file_f_setlk", "io_file_f_setlkw", "io_file_f_test", "io_file_f_tlock", "io_file_f_ulock", "io_file_f_unlck", "io_file_f_wrlck", "io_file_fd_cloexec", "io_file_fioasync", "io_file_fioclex", "io_file_fiodtype", "io_file_fiogetown", "io_file_fionbio", "io_file_fionclex", "io_file_fionread", "io_file_fiosetown", "io_file_getcwd", "io_file_lchown", "io_file_link", "io_file_lockf", "io_file_lstat_atime", "io_file_lstat_mode", "io_file_lstat_mtime", "io_file_lstat_size", "io_file_mkdir", "io_file_mkfifo", "io_file_mkstemp", "io_file_o_append", "io_file_o_async", "io_file_o_creat", "io_file_o_excl", "io_file_o_exlock", "io_file_o_fsync", "io_file_o_nofollow", "io_file_o_nonblock", "io_file_o_rdonly", "io_file_o_rdwr", "io_file_o_shlock", "io_file_o_sync", "io_file_o_trunc", "io_file_o_wronly", "io_file_pipe", "io_file_readlink", "io_file_realpath", "io_file_remove", "io_file_rename", "io_file_rmdir", "io_file_s_ifblk", "io_file_s_ifchr", "io_file_s_ifdir", "io_file_s_ififo", "io_file_s_iflnk", "io_file_s_ifmt", "io_file_s_ifreg", "io_file_s_ifsock", "io_file_s_irgrp", "io_file_s_iroth", "io_file_s_irusr", "io_file_s_irwxg", "io_file_s_irwxo", "io_file_s_irwxu", "io_file_s_isgid", "io_file_s_isuid", "io_file_s_isvtx", "io_file_s_iwgrp", "io_file_s_iwoth", "io_file_s_iwusr", "io_file_s_ixgrp", "io_file_s_ixoth", "io_file_s_ixusr", "io_file_seek_cur", "io_file_seek_end", "io_file_seek_set", "io_file_stat_atime", "io_file_stat_mode", "io_file_stat_mtime", "io_file_stat_size", "io_file_stderr", "io_file_stdin", "io_file_stdout", "io_file_symlink", "io_file_tempnam", "io_file_truncate", "io_file_umask", "io_file_unlink", "io_net_accept", "io_net_af_inet", "io_net_af_inet6", "io_net_af_unix", "io_net_bind", "io_net_connect", "io_net_getpeername", "io_net_getsockname", "io_net_ipproto_ip", "io_net_ipproto_udp", "io_net_listen", "io_net_msg_oob", "io_net_msg_peek", "io_net_msg_waitall", "io_net_recv", "io_net_recvfrom", "io_net_send", "io_net_sendto", "io_net_shut_rd", "io_net_shut_rdwr", "io_net_shut_wr", "io_net_shutdown", "io_net_so_acceptconn", "io_net_so_broadcast", "io_net_so_debug", "io_net_so_dontroute", "io_net_so_error", "io_net_so_keepalive", "io_net_so_linger", "io_net_so_oobinline", "io_net_so_rcvbuf", "io_net_so_rcvlowat", "io_net_so_rcvtimeo", "io_net_so_reuseaddr", "io_net_so_sndbuf", "io_net_so_sndlowat", "io_net_so_sndtimeo", "io_net_so_timestamp", "io_net_so_type", "io_net_so_useloopback", "io_net_sock_dgram", "io_net_sock_raw", "io_net_sock_rdm", "io_net_sock_seqpacket", "io_net_sock_stream", "io_net_socket", "io_net_sol_socket", "io_net_ssl_accept", "io_net_ssl_begin", "io_net_ssl_connect", "io_net_ssl_end", "io_net_ssl_error", "io_net_ssl_errorstring", "io_net_ssl_funcerrorstring", "io_net_ssl_liberrorstring", "io_net_ssl_read", "io_net_ssl_reasonerrorstring", "io_net_ssl_setacceptstate", "io_net_ssl_setconnectstate", "io_net_ssl_setverifylocations", "io_net_ssl_shutdown", "io_net_ssl_usecertificatechainfile", "io_net_ssl_useprivatekeyfile", "io_net_ssl_write", "java_jvm_create", "java_jvm_getenv", "jdbc_initialize", "json_back_slash", "json_back_space", "json_close_array", "json_close_object", "json_colon", "json_comma", "json_consume_array", "json_consume_object", "json_consume_string", "json_consume_token", "json_cr", "json_debug", "json_deserialize", "json_e_lower", "json_e_upper", "json_f_lower", "json_form_feed", "json_forward_slash", "json_lf", "json_n_lower", "json_negative", "json_open_array", "json_open_object", "json_period", "json_positive", "json_quote_double", "json_rpccall", "json_serialize", "json_t_lower", "json_tab", "json_white_space", "keycolumn_name", "keycolumn_value", "keyfield_name", "keyfield_value", "lasso_currentaction", "lasso_errorreporting", "lasso_executiontimelimit", "lasso_methodexists", "lasso_tagexists", "lasso_uniqueid", "lasso_version", "lassoapp_current_app", "lassoapp_current_include", "lassoapp_do_with_include", "lassoapp_exists", "lassoapp_find_missing_file", "lassoapp_format_mod_date", "lassoapp_get_capabilities_name", "lassoapp_include_current", "lassoapp_include", "lassoapp_initialize_db", "lassoapp_initialize", "lassoapp_invoke_resource", "lassoapp_issourcefileextension", "lassoapp_link", "lassoapp_load_module", "lassoapp_mime_get", "lassoapp_mime_type_appcache", "lassoapp_mime_type_css", "lassoapp_mime_type_csv", "lassoapp_mime_type_doc", "lassoapp_mime_type_docx", "lassoapp_mime_type_eof", "lassoapp_mime_type_eot", "lassoapp_mime_type_gif", "lassoapp_mime_type_html", "lassoapp_mime_type_ico", "lassoapp_mime_type_jpg", "lassoapp_mime_type_js", "lassoapp_mime_type_lasso", "lassoapp_mime_type_map", "lassoapp_mime_type_pdf", "lassoapp_mime_type_png", "lassoapp_mime_type_ppt", "lassoapp_mime_type_rss", "lassoapp_mime_type_svg", "lassoapp_mime_type_swf", "lassoapp_mime_type_tif", "lassoapp_mime_type_ttf", "lassoapp_mime_type_txt", "lassoapp_mime_type_woff", "lassoapp_mime_type_xaml", "lassoapp_mime_type_xap", "lassoapp_mime_type_xbap", "lassoapp_mime_type_xhr", "lassoapp_mime_type_xml", "lassoapp_mime_type_zip", "lassoapp_path_to_method_name", "lassoapp_settingsdb", "layout_name", "lcapi_datasourceadd", "lcapi_datasourcecloseconnection", "lcapi_datasourcedelete", "lcapi_datasourceduplicate", "lcapi_datasourceexecsql", "lcapi_datasourcefindall", "lcapi_datasourceimage", "lcapi_datasourceinfo", "lcapi_datasourceinit", "lcapi_datasourcematchesname", "lcapi_datasourcenames", "lcapi_datasourcenothing", "lcapi_datasourceopand", "lcapi_datasourceopany", "lcapi_datasourceopbw", "lcapi_datasourceopct", "lcapi_datasourceopeq", "lcapi_datasourceopew", "lcapi_datasourceopft", "lcapi_datasourceopgt", "lcapi_datasourceopgteq", "lcapi_datasourceopin", "lcapi_datasourceoplt", "lcapi_datasourceoplteq", "lcapi_datasourceopnbw", "lcapi_datasourceopnct", "lcapi_datasourceopneq", "lcapi_datasourceopnew", "lcapi_datasourceopnin", "lcapi_datasourceopno", "lcapi_datasourceopnot", "lcapi_datasourceopnrx", "lcapi_datasourceopor", "lcapi_datasourceoprx", "lcapi_datasourcepreparesql", "lcapi_datasourceprotectionnone", "lcapi_datasourceprotectionreadonly", "lcapi_datasourcerandom", "lcapi_datasourceschemanames", "lcapi_datasourcescripts", "lcapi_datasourcesearch", "lcapi_datasourcesortascending", "lcapi_datasourcesortcustom", "lcapi_datasourcesortdescending", "lcapi_datasourcetablenames", "lcapi_datasourceterm", "lcapi_datasourcetickle", "lcapi_datasourcetypeblob", "lcapi_datasourcetypeboolean", "lcapi_datasourcetypedate", "lcapi_datasourcetypedecimal", "lcapi_datasourcetypeinteger", "lcapi_datasourcetypestring", "lcapi_datasourceunpreparesql", "lcapi_datasourceupdate", "lcapi_fourchartointeger", "lcapi_listdatasources", "lcapi_loadmodule", "lcapi_loadmodules", "lcapi_updatedatasourceslist", "ldap_scope_base", "ldap_scope_children", "ldap_scope_onelevel", "ldap_scope_subtree", "library_once", "library", "ljapi_initialize", "locale_availablelocales", "locale_canada", "locale_canadafrench", "locale_china", "locale_chinese", "locale_default", "locale_english", "locale_format_style_date_time", "locale_format_style_default", "locale_format_style_full", "locale_format_style_long", "locale_format_style_medium", "locale_format_style_none", "locale_format_style_short", "locale_format", "locale_france", "locale_french", "locale_german", "locale_germany", "locale_isocountries", "locale_isolanguages", "locale_italian", "locale_italy", "locale_japan", "locale_japanese", "locale_korea", "locale_korean", "locale_prc", "locale_setdefault", "locale_simplifiedchinese", "locale_taiwan", "locale_traditionalchinese", "locale_uk", "locale_us", "log_always", "log_critical", "log_deprecated", "log_destination_console", "log_destination_database", "log_destination_file", "log_detail", "log_initialize", "log_level_critical", "log_level_deprecated", "log_level_detail", "log_level_sql", "log_level_warning", "log_max_file_size", "log_setdestination", "log_sql", "log_trim_file_size", "log_warning", "loop_key_pop", "loop_key_push", "loop_key", "loop_pop", "loop_push", "loop_value_pop", "loop_value_push", "loop_value", "main_thread_only", "maxrecords_value", "median", "method_name", "micros", "millis", "mongo_insert_continue_on_error", "mongo_insert_no_validate", "mongo_insert_none", "mongo_query_await_data", "mongo_query_exhaust", "mongo_query_no_cursor_timeout", "mongo_query_none", "mongo_query_oplog_replay", "mongo_query_partial", "mongo_query_slave_ok", "mongo_query_tailable_cursor", "mongo_remove_none", "mongo_remove_single_remove", "mongo_update_multi_update", "mongo_update_no_validate", "mongo_update_none", "mongo_update_upsert", "mustache_compile_file", "mustache_compile_string", "mustache_include", "mysqlds", "namespace_global", "namespace_import", "net_connectinprogress", "net_connectok", "net_typessl", "net_typessltcp", "net_typessludp", "net_typetcp", "net_typeudp", "net_waitread", "net_waittimeout", "net_waitwrite", "nslookup", "odbc_session_driver_mssql", "odbc", "output", "pdf_package", "pdf_rectangle", "pdf_serve", "pi", "postgresql", "process", "protect_now", "queriable_average", "queriable_defaultcompare", "queriable_do", "queriable_internal_combinebindings", "queriable_max", "queriable_min", "queriable_qsort", "queriable_reversecompare", "queriable_sum", "random_seed", "range", "records_array", "records_map", "redirect_url", "referer_url", "referrer_url", "register_thread", "register", "response_filepath", "response_localpath", "response_path", "response_realm", "response_root", "resultset_count", "resultsets", "rows_array", "rows_impl", "schema_name", "security_database", "security_default_realm", "security_initialize", "security_table_groups", "security_table_ug_map", "security_table_users", "selected", "series", "server_admin", "server_ip", "server_name", "server_port", "server_protocol", "server_push", "server_signature", "server_software", "session_abort", "session_addvar", "session_decorate", "session_deleteexpired", "session_end", "session_getdefaultdriver", "session_id", "session_initialize", "session_removevar", "session_result", "session_setdefaultdriver", "session_start", "shown_count", "shown_first", "shown_last", "site_id", "site_name", "skiprecords_value", "sleep", "sqlite_abort", "sqlite_auth", "sqlite_blob", "sqlite_busy", "sqlite_cantopen", "sqlite_constraint", "sqlite_corrupt", "sqlite_createdb", "sqlite_done", "sqlite_empty", "sqlite_error", "sqlite_float", "sqlite_format", "sqlite_full", "sqlite_integer", "sqlite_internal", "sqlite_interrupt", "sqlite_ioerr", "sqlite_locked", "sqlite_mismatch", "sqlite_misuse", "sqlite_nolfs", "sqlite_nomem", "sqlite_notadb", "sqlite_notfound", "sqlite_null", "sqlite_ok", "sqlite_perm", "sqlite_protocol", "sqlite_range", "sqlite_readonly", "sqlite_row", "sqlite_schema", "sqlite_setsleepmillis", "sqlite_setsleeptries", "sqlite_text", "sqlite_toobig", "sqliteconnector", "staticarray_join", "stdout", "stdoutnl", "string_validcharset", "suspend", "sys_appspath", "sys_chroot", "sys_clock", "sys_clockspersec", "sys_credits", "sys_daemon", "sys_databasespath", "sys_detach_exec", "sys_difftime", "sys_dll_ext", "sys_drand48", "sys_environ", "sys_eol", "sys_erand48", "sys_errno", "sys_exec_pid_to_os_pid", "sys_exec", "sys_exit", "sys_fork", "sys_garbagecollect", "sys_getbytessincegc", "sys_getchar", "sys_getegid", "sys_getenv", "sys_geteuid", "sys_getgid", "sys_getgrnam", "sys_getheapfreebytes", "sys_getheapsize", "sys_getlogin", "sys_getpid", "sys_getppid", "sys_getpwnam", "sys_getpwuid", "sys_getstartclock", "sys_getthreadcount", "sys_getuid", "sys_growheapby", "sys_homepath", "sys_is_full_path", "sys_is_windows", "sys_isfullpath", "sys_iswindows", "sys_iterate", "sys_jrand48", "sys_kill_exec", "sys_kill", "sys_lcong48", "sys_librariespath", "sys_library", "sys_listtraits", "sys_listtypes", "sys_listunboundmethods", "sys_load_dynamic_library", "sys_loadlibrary", "sys_lrand48", "sys_masterhomepath", "sys_mrand48", "sys_nrand48", "sys_pid_exec", "sys_pointersize", "sys_rand", "sys_random", "sys_seed48", "sys_setenv", "sys_setgid", "sys_setsid", "sys_setuid", "sys_sigabrt", "sys_sigalrm", "sys_sigbus", "sys_sigchld", "sys_sigcont", "sys_sigfpe", "sys_sighup", "sys_sigill", "sys_sigint", "sys_sigkill", "sys_sigpipe", "sys_sigprof", "sys_sigquit", "sys_sigsegv", "sys_sigstop", "sys_sigsys", "sys_sigterm", "sys_sigtrap", "sys_sigtstp", "sys_sigttin", "sys_sigttou", "sys_sigurg", "sys_sigusr1", "sys_sigusr2", "sys_sigvtalrm", "sys_sigxcpu", "sys_sigxfsz", "sys_srand", "sys_srand48", "sys_srandom", "sys_strerror", "sys_supportpath", "sys_test_exec", "sys_time", "sys_uname", "sys_unsetenv", "sys_usercapimodulepath", "sys_userstartuppath", "sys_version", "sys_wait_exec", "sys_waitpid", "sys_wcontinued", "sys_while", "sys_wnohang", "sys_wuntraced", "table_name", "tag_exists", "thread_var_get", "thread_var_pop", "thread_var_push", "threadvar_find", "threadvar_get", "threadvar_set_asrt", "threadvar_set", "timer", "token_value", "treemap", "u_lb_alphabetic", "u_lb_ambiguous", "u_lb_break_after", "u_lb_break_before", "u_lb_break_both", "u_lb_break_symbols", "u_lb_carriage_return", "u_lb_close_punctuation", "u_lb_combining_mark", "u_lb_complex_context", "u_lb_contingent_break", "u_lb_exclamation", "u_lb_glue", "u_lb_h2", "u_lb_h3", "u_lb_hyphen", "u_lb_ideographic", "u_lb_infix_numeric", "u_lb_inseparable", "u_lb_jl", "u_lb_jt", "u_lb_jv", "u_lb_line_feed", "u_lb_mandatory_break", "u_lb_next_line", "u_lb_nonstarter", "u_lb_numeric", "u_lb_open_punctuation", "u_lb_postfix_numeric", "u_lb_prefix_numeric", "u_lb_quotation", "u_lb_space", "u_lb_surrogate", "u_lb_unknown", "u_lb_word_joiner", "u_lb_zwspace", "u_nt_decimal", "u_nt_digit", "u_nt_none", "u_nt_numeric", "u_sb_aterm", "u_sb_close", "u_sb_format", "u_sb_lower", "u_sb_numeric", "u_sb_oletter", "u_sb_other", "u_sb_sep", "u_sb_sp", "u_sb_sterm", "u_sb_upper", "u_wb_aletter", "u_wb_extendnumlet", "u_wb_format", "u_wb_katakana", "u_wb_midletter", "u_wb_midnum", "u_wb_numeric", "u_wb_other", "ucal_ampm", "ucal_dayofmonth", "ucal_dayofweek", "ucal_dayofweekinmonth", "ucal_dayofyear", "ucal_daysinfirstweek", "ucal_dowlocal", "ucal_dstoffset", "ucal_era", "ucal_extendedyear", "ucal_firstdayofweek", "ucal_hour", "ucal_hourofday", "ucal_julianday", "ucal_lenient", "ucal_listtimezones", "ucal_millisecond", "ucal_millisecondsinday", "ucal_minute", "ucal_month", "ucal_second", "ucal_weekofmonth", "ucal_weekofyear", "ucal_year", "ucal_yearwoy", "ucal_zoneoffset", "uchar_age", "uchar_alphabetic", "uchar_ascii_hex_digit", "uchar_bidi_class", "uchar_bidi_control", "uchar_bidi_mirrored", "uchar_bidi_mirroring_glyph", "uchar_bidi_paired_bracket", "uchar_block", "uchar_canonical_combining_class", "uchar_case_folding", "uchar_case_sensitive", "uchar_dash", "uchar_decomposition_type", "uchar_default_ignorable_code_point", "uchar_deprecated", "uchar_diacritic", "uchar_east_asian_width", "uchar_extender", "uchar_full_composition_exclusion", "uchar_general_category_mask", "uchar_general_category", "uchar_grapheme_base", "uchar_grapheme_cluster_break", "uchar_grapheme_extend", "uchar_grapheme_link", "uchar_hangul_syllable_type", "uchar_hex_digit", "uchar_hyphen", "uchar_id_continue", "uchar_ideographic", "uchar_ids_binary_operator", "uchar_ids_trinary_operator", "uchar_iso_comment", "uchar_join_control", "uchar_joining_group", "uchar_joining_type", "uchar_lead_canonical_combining_class", "uchar_line_break", "uchar_logical_order_exception", "uchar_lowercase_mapping", "uchar_lowercase", "uchar_math", "uchar_name", "uchar_nfc_inert", "uchar_nfc_quick_check", "uchar_nfd_inert", "uchar_nfd_quick_check", "uchar_nfkc_inert", "uchar_nfkc_quick_check", "uchar_nfkd_inert", "uchar_nfkd_quick_check", "uchar_noncharacter_code_point", "uchar_numeric_type", "uchar_numeric_value", "uchar_pattern_syntax", "uchar_pattern_white_space", "uchar_posix_alnum", "uchar_posix_blank", "uchar_posix_graph", "uchar_posix_print", "uchar_posix_xdigit", "uchar_quotation_mark", "uchar_radical", "uchar_s_term", "uchar_script", "uchar_segment_starter", "uchar_sentence_break", "uchar_simple_case_folding", "uchar_simple_lowercase_mapping", "uchar_simple_titlecase_mapping", "uchar_simple_uppercase_mapping", "uchar_soft_dotted", "uchar_terminal_punctuation", "uchar_titlecase_mapping", "uchar_trail_canonical_combining_class", "uchar_unicode_1_name", "uchar_unified_ideograph", "uchar_uppercase_mapping", "uchar_uppercase", "uchar_variation_selector", "uchar_white_space", "uchar_word_break", "uchar_xid_continue", "uncompress", "usage", "uuid_compare", "uuid_copy", "uuid_generate_random", "uuid_generate_time", "uuid_generate", "uuid_is_null", "uuid_parse", "uuid_unparse_lower", "uuid_unparse_upper", "uuid_unparse", "value_listitem", "valuelistitem", "var_keys", "var_values", "wap_isenabled", "wap_maxbuttons", "wap_maxcolumns", "wap_maxhorzpixels", "wap_maxrows", "wap_maxvertpixels", "web_handlefcgirequest", "web_node_content_representation_css", "web_node_content_representation_html", "web_node_content_representation_js", "web_node_content_representation_xhr", "web_node_forpath", "web_nodes_initialize", "web_nodes_normalizeextension", "web_nodes_processcontentnode", "web_nodes_requesthandler", "web_response_nodesentry", "web_router_database", "web_router_initialize", "websocket_handler_timeout", "wexitstatus", "wifcontinued", "wifexited", "wifsignaled", "wifstopped", "wstopsig", "wtermsig", "xml_transform", "zip_add_dir", "zip_add", "zip_checkcons", "zip_close", "zip_cm_bzip2", "zip_cm_default", "zip_cm_deflate", "zip_cm_deflate64", "zip_cm_implode", "zip_cm_pkware_implode", "zip_cm_reduce_1", "zip_cm_reduce_2", "zip_cm_reduce_3", "zip_cm_reduce_4", "zip_cm_shrink", "zip_cm_store", "zip_create", "zip_delete", "zip_em_3des_112", "zip_em_3des_168", "zip_em_aes_128", "zip_em_aes_192", "zip_em_aes_256", "zip_em_des", "zip_em_none", "zip_em_rc2_old", "zip_em_rc2", "zip_em_rc4", "zip_em_trad_pkware", "zip_em_unknown", "zip_er_changed", "zip_er_close", "zip_er_compnotsupp", "zip_er_crc", "zip_er_deleted", "zip_er_eof", "zip_er_exists", "zip_er_incons", "zip_er_internal", "zip_er_inval", "zip_er_memory", "zip_er_multidisk", "zip_er_noent", "zip_er_nozip", "zip_er_ok", "zip_er_open", "zip_er_read", "zip_er_remove", "zip_er_rename", "zip_er_seek", "zip_er_tmpopen", "zip_er_write", "zip_er_zipclosed", "zip_er_zlib", "zip_error_get_sys_type", "zip_error_get", "zip_error_to_str", "zip_et_none", "zip_et_sys", "zip_et_zlib", "zip_excl", "zip_fclose", "zip_file_error_get", "zip_file_strerror", "zip_fl_compressed", "zip_fl_nocase", "zip_fl_nodir", "zip_fl_unchanged", "zip_fopen_index", "zip_fopen", "zip_fread", "zip_get_archive_comment", "zip_get_file_comment", "zip_get_name", "zip_get_num_files", "zip_name_locate", "zip_open", "zip_rename", "zip_replace", "zip_set_archive_comment", "zip_set_file_comment", "zip_stat_index", "zip_stat", "zip_strerror", "zip_unchange_all", "zip_unchange_archive", "zip_unchange", "zlib_version"]
15
+ h[:keywords] = Set.new ["cache", "database_names", "database_schemanames", "database_tablenames", "define_tag", "define_type", "email_batch", "encode_set", "html_comment", "handle", "handle_error", "header", "if", "inline", "iterate", "ljax_target", "link", "link_currentaction", "link_currentgroup", "link_currentrecord", "link_detail", "link_firstgroup", "link_firstrecord", "link_lastgroup", "link_lastrecord", "link_nextgroup", "link_nextrecord", "link_prevgroup", "link_prevrecord", "log", "loop", "namespace_using", "output_none", "portal", "private", "protect", "records", "referer", "referrer", "repeating", "resultset", "rows", "search_args", "search_arguments", "select", "sort_args", "sort_arguments", "thread_atomic", "value_list", "while", "abort", "case", "else", "fail_if", "fail_ifnot", "fail", "if_empty", "if_false", "if_null", "if_true", "loop_abort", "loop_continue", "loop_count", "params", "params_up", "return", "return_value", "run_children", "soap_definetag", "soap_lastrequest", "soap_lastresponse", "tag_name", "ascending", "average", "by", "define", "descending", "do", "equals", "frozen", "group", "handle_failure", "import", "in", "into", "join", "let", "match", "max", "min", "on", "order", "parent", "protected", "provide", "public", "require", "returnhome", "skip", "split_thread", "sum", "take", "thread", "to", "trait", "type", "where", "with", "yield", "yieldhome"]
16
+ h[:exceptions] = Set.new ["error_adderror", "error_columnrestriction", "error_databaseconnectionunavailable", "error_databasetimeout", "error_deleteerror", "error_fieldrestriction", "error_filenotfound", "error_invaliddatabase", "error_invalidpassword", "error_invalidusername", "error_modulenotfound", "error_noerror", "error_nopermission", "error_outofmemory", "error_reqcolumnmissing", "error_reqfieldmissing", "error_requiredcolumnmissing", "error_requiredfieldmissing", "error_updateerror"]
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,310 @@
1
+ # -*- coding: utf-8 -*- #
2
+ # frozen_string_literal: true
3
+
4
+ module Rouge
5
+ module Lexers
6
+ class Livescript < RegexLexer
7
+ tag 'livescript'
8
+ aliases 'ls'
9
+ filenames '*.ls'
10
+ mimetypes 'text/livescript'
11
+
12
+ title 'LiveScript'
13
+ desc 'LiveScript, a language which compiles to JavaScript (livescript.net)'
14
+
15
+ def self.detect?(text)
16
+ return text.shebang? 'lsc'
17
+ end
18
+
19
+ def self.declarations
20
+ @declarations ||= Set.new %w(const let var function class extends implements)
21
+ end
22
+
23
+ def self.keywords
24
+ @keywords ||= Set.new %w(
25
+ loop until for in of while break return continue switch case
26
+ fallthrough default otherwise when then if unless else throw try
27
+ catch finally new delete typeof instanceof super by from to til
28
+ with require do debugger import export yield
29
+ )
30
+ end
31
+
32
+ def self.constants
33
+ @constants ||= Javascript.constants + %w(yes no on off void)
34
+ end
35
+
36
+ def self.builtins
37
+ @builtins ||= Javascript.builtins + %w(this it that arguments)
38
+ end
39
+
40
+ def self.loop_control_keywords
41
+ @loop_control_keywords ||= Set.new %w(break continue)
42
+ end
43
+
44
+ id = /[$a-z_]((-(?=[a-z]))?[a-z0-9_])*/i
45
+ int_number = /\d[\d_]*/
46
+ int = /#{int_number}(e[+-]?#{int_number})?[$\w]*/ # the last class matches units
47
+
48
+ state :root do
49
+ rule(%r(^(?=\s|/))) { push :slash_starts_regex }
50
+ mixin :comments
51
+ mixin :whitespace
52
+
53
+ # list of words
54
+ rule %r/(<\[)(.*?)(\]>)/m do
55
+ groups Punctuation, Str, Punctuation
56
+ end
57
+
58
+ # function declarations
59
+ rule %r/!\s*function\b/, Keyword::Declaration
60
+ rule %r/!?[-~]>|<[-~]!?/, Keyword::Declaration
61
+
62
+ # switch arrow
63
+ rule %r/(=>)/, Keyword
64
+
65
+ # prototype attributes
66
+ rule %r/(::)(#{id})/ do
67
+ groups Punctuation, Name::Attribute
68
+ push :id
69
+ end
70
+ rule %r/(::)(#{int})/ do
71
+ groups Punctuation, Num::Integer
72
+ push :id
73
+ end
74
+
75
+ # instance attributes
76
+ rule %r/(@)(#{id})/ do
77
+ groups Name::Variable::Instance, Name::Attribute
78
+ push :id
79
+ end
80
+ rule %r/([.])(#{id})/ do
81
+ groups Punctuation, Name::Attribute
82
+ push :id
83
+ end
84
+ rule %r/([.])(\d+)/ do
85
+ groups Punctuation, Num::Integer
86
+ push :id
87
+ end
88
+ rule %r/#{id}(?=\s*:[^:=])/, Name::Attribute
89
+
90
+ # operators
91
+ rule %r(
92
+ [+][+]|--|&&|\b(and|x?or|is(nt)?|not)\b(?!-[a-zA-Z]|_)|[|][|]|
93
+ [.]([|&^]|<<|>>>?)[.]|\\(?=\n)|[.:]=|<<<<?|<[|]|[|]>|
94
+ (<<|>>|==?|!=?|[-<>+*%^/~?])=?
95
+ )x, Operator, :slash_starts_regex
96
+
97
+ # arguments shorthand
98
+ rule %r/(&)(#{id})?/ do
99
+ groups Name::Builtin, Name::Attribute
100
+ end
101
+
102
+ # switch case
103
+ rule %r/[|]|\bcase(?=\s)/, Keyword, :switch_underscore
104
+
105
+ rule %r/@/, Name::Variable::Instance
106
+ rule %r/[.]{3}/, Punctuation
107
+ rule %r/:/, Punctuation
108
+
109
+ # keywords
110
+ rule %r/#{id}/ do |m|
111
+ if self.class.loop_control_keywords.include? m[0]
112
+ token Keyword
113
+ push :loop_control
114
+ next
115
+ elsif self.class.keywords.include? m[0]
116
+ token Keyword
117
+ elsif self.class.constants.include? m[0]
118
+ token Name::Constant
119
+ elsif self.class.builtins.include? m[0]
120
+ token Name::Builtin
121
+ elsif self.class.declarations.include? m[0]
122
+ token Keyword::Declaration
123
+ elsif /^[A-Z]/.match(m[0]) && /[^-][a-z]/.match(m[0])
124
+ token Name::Class
125
+ else
126
+ token Name::Variable
127
+ end
128
+ push :id
129
+ end
130
+
131
+ # punctuation and brackets
132
+ rule %r/\](?=[!?.]|#{id})/, Punctuation, :id
133
+ rule %r/[{(\[;,]/, Punctuation, :slash_starts_regex
134
+ rule %r/[})\].]/, Punctuation
135
+
136
+ # literals
137
+ rule %r/#{int_number}[.]#{int}/, Num::Float
138
+ rule %r/0x[0-9A-Fa-f]+/, Num::Hex
139
+ rule %r/#{int}/, Num::Integer
140
+
141
+ # strings
142
+ rule %r/"""/ do
143
+ token Str
144
+ push do
145
+ rule %r/"""/, Str, :pop!
146
+ rule %r/"/, Str
147
+ mixin :double_strings
148
+ end
149
+ end
150
+
151
+ rule %r/'''/ do
152
+ token Str
153
+ push do
154
+ rule %r/'''/, Str, :pop!
155
+ rule %r/'/, Str
156
+ mixin :single_strings
157
+ end
158
+ end
159
+
160
+ rule %r/"/ do
161
+ token Str
162
+ push do
163
+ rule %r/"/, Str, :pop!
164
+ mixin :double_strings
165
+ end
166
+ end
167
+
168
+ rule %r/'/ do
169
+ token Str
170
+ push do
171
+ rule %r/'/, Str, :pop!
172
+ mixin :single_strings
173
+ end
174
+ end
175
+
176
+ # words
177
+ rule %r/\\\S[^\s,;\])}]*/, Str
178
+ end
179
+
180
+ state :code_escape do
181
+ rule %r(\\(
182
+ c[A-Z]|
183
+ x[0-9a-fA-F]{2}|
184
+ u[0-9a-fA-F]{4}|
185
+ u\{[0-9a-fA-F]{4}\}
186
+ ))x, Str::Escape
187
+ end
188
+
189
+ state :interpolated_expression do
190
+ rule %r/}/, Str::Interpol, :pop!
191
+ mixin :root
192
+ end
193
+
194
+ state :interpolation do
195
+ # with curly braces
196
+ rule %r/[#][{]/, Str::Interpol, :interpolated_expression
197
+ # without curly braces
198
+ rule %r/(#)(#{id})/ do |m|
199
+ groups Str::Interpol, (self.class.builtins.include? m[2]) ? Name::Builtin : Name::Variable
200
+ end
201
+ end
202
+
203
+ state :whitespace do
204
+ # white space and loop labels
205
+ rule %r/(\s+?)(?:^([^\S\n]*)(:#{id}))?/m do
206
+ groups Text, Text, Name::Label
207
+ end
208
+ end
209
+
210
+ state :whitespace_single_line do
211
+ rule %r([^\S\n]+), Text
212
+ end
213
+
214
+ state :slash_starts_regex do
215
+ mixin :comments
216
+ mixin :whitespace
217
+ mixin :multiline_regex_begin
218
+
219
+ rule %r(
220
+ /(\\.|[^\[/\\\n]|\[(\\.|[^\]\\\n])*\])+/ # a regex
221
+ ([gimy]+\b|\B)
222
+ )x, Str::Regex, :pop!
223
+
224
+ rule(//) { pop! }
225
+ end
226
+
227
+ state :multiline_regex_begin do
228
+ rule %r(//) do
229
+ token Str::Regex
230
+ goto :multiline_regex
231
+ end
232
+ end
233
+
234
+ state :multiline_regex_end do
235
+ rule %r(//([gimy]+\b|\B)), Str::Regex, :pop!
236
+ end
237
+
238
+ state :multiline_regex do
239
+ mixin :multiline_regex_end
240
+ mixin :regex_comment
241
+ mixin :interpolation
242
+ mixin :code_escape
243
+ rule %r/\\\D/, Str::Escape
244
+ rule %r/\\\d+/, Name::Variable
245
+ rule %r/./m, Str::Regex
246
+ end
247
+
248
+ state :regex_comment do
249
+ rule %r/^#(\s+.*)?$/, Comment::Single
250
+ rule %r/(\s+)(#)(\s+.*)?$/ do
251
+ groups Text, Comment::Single, Comment::Single
252
+ end
253
+ end
254
+
255
+ state :comments do
256
+ rule %r(/\*.*?\*/)m, Comment::Multiline
257
+ rule %r/#.*$/, Comment::Single
258
+ end
259
+
260
+ state :switch_underscore do
261
+ mixin :whitespace_single_line
262
+ rule %r/_(?=\s*=>|\s+then\b)/, Keyword
263
+ rule(//) { pop! }
264
+ end
265
+
266
+ state :loop_control do
267
+ mixin :whitespace_single_line
268
+ rule %r/#{id}(?=[);\n])/, Name::Label
269
+ rule(//) { pop! }
270
+ end
271
+
272
+ state :id do
273
+ rule %r/[!?]|[.](?!=)/, Punctuation
274
+ rule %r/[{]/ do
275
+ # destructuring
276
+ token Punctuation
277
+ push do
278
+ rule %r/[,;]/, Punctuation
279
+ rule %r/#{id}/, Name::Attribute
280
+ rule %r/#{int}/, Num::Integer
281
+ mixin :whitespace
282
+ rule %r/[}]/, Punctuation, :pop!
283
+ end
284
+ end
285
+ rule %r/#{id}/, Name::Attribute
286
+ rule %r/#{int}/, Num::Integer
287
+ rule(//) { goto :slash_starts_regex }
288
+ end
289
+
290
+ state :strings do
291
+ # all strings are multi-line
292
+ rule %r/[^#\\'"]+/m, Str
293
+ mixin :code_escape
294
+ rule %r/\\./, Str::Escape
295
+ rule %r/#/, Str
296
+ end
297
+
298
+ state :double_strings do
299
+ rule %r/'/, Str
300
+ mixin :interpolation
301
+ mixin :strings
302
+ end
303
+
304
+ state :single_strings do
305
+ rule %r/"/, Str
306
+ mixin :strings
307
+ end
308
+ end
309
+ end
310
+ end