summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2012-08-19 10:02:42 +0200
committerGeorg Brandl <georg@python.org>2012-08-19 10:02:42 +0200
commitbdcbecd4a7e4ce29b1897b862fca2c73888835d0 (patch)
tree74ddbeb9ad2c5ed54dfed7ff1cbe030afef47a3c
parent58e89ae4fed19d75b50701d4a7619da1a8966af8 (diff)
parent7fd6d17d2e6965f2a42b43fe95b156ad932c8b32 (diff)
downloadpygments-bdcbecd4a7e4ce29b1897b862fca2c73888835d0.tar.gz
Merged in zythmer/pygments-main (pull request #80)
-rw-r--r--AUTHORS6
-rw-r--r--CHANGES9
-rwxr-xr-xexternal/lasso-builtins-generator-9.lasso121
-rw-r--r--pygments/lexers/_lassobuiltins.py5413
-rw-r--r--pygments/lexers/_mapping.py13
-rw-r--r--pygments/lexers/agile.py57
-rw-r--r--pygments/lexers/compiled.py137
-rw-r--r--pygments/lexers/jvm.py85
-rw-r--r--pygments/lexers/math.py337
-rw-r--r--pygments/lexers/other.py5
-rw-r--r--pygments/lexers/templates.py106
-rw-r--r--pygments/lexers/text.py6
-rw-r--r--pygments/lexers/web.py341
-rw-r--r--tests/examplefiles/example.bugs55
-rw-r--r--tests/examplefiles/example.jags48
-rw-r--r--tests/examplefiles/example.stan87
-rw-r--r--tests/examplefiles/example.xtend34
-rw-r--r--tests/examplefiles/http_request_example3
-rw-r--r--tests/examplefiles/http_response_example6
-rw-r--r--tests/examplefiles/json.lasso301
-rw-r--r--tests/examplefiles/json.lasso9213
-rw-r--r--tests/examplefiles/livescript-demo.ls41
-rw-r--r--tests/examplefiles/rust_example.rs743
-rw-r--r--tests/examplefiles/test.R264
-rw-r--r--tests/examplefiles/test.cu36
25 files changed, 8274 insertions, 193 deletions
diff --git a/AUTHORS b/AUTHORS
index 74f186af..b3f5939d 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -9,6 +9,7 @@ Other contributors, listed alphabetically, are:
* Kumar Appaiah -- Debian control lexer
* Ali Afshar -- image formatter
* Andreas Amann -- AppleScript lexer
+* Jeffrey Arnold -- R/S lexer, BUGS lexers
* Jeremy Ashkenas -- CoffeeScript lexer
* Stefan Matthias Aust -- Smalltalk lexer
* Ben Bangert -- Mako lexers
@@ -27,6 +28,7 @@ Other contributors, listed alphabetically, are:
* Pete Curry -- bugfixes
* Owen Durni -- haXe lexer
* Nick Efford -- Python 3 lexer
+* Sven Efftinge -- Xtend lexer
* Artem Egorkine -- terminal256 formatter
* James H. Fisher -- PostScript lexer
* Carlos Galdino -- Elixir and Elixir Console lexers
@@ -52,6 +54,7 @@ Other contributors, listed alphabetically, are:
* Brian R. Jackson -- Tea lexer
* Dennis Kaarsemaker -- sources.list lexer
* Igor Kalnitsky -- vhdl lexer
+* Eric Knibbe -- Lasso lexer
* Adam Koprowski -- Opa lexer
* Benjamin Kowarsch -- Modula-2 lexer
* Marek Kubica -- Scheme lexer
@@ -67,8 +70,10 @@ Other contributors, listed alphabetically, are:
* Stephen McKamey -- Duel/JBST lexer
* Brian McKenna -- F# lexer
* Lukas Meuser -- BBCode formatter, Lua lexer
+* Paul Miller -- LiveScript lexer
* Hong Minhee -- HTTP lexer
* Michael Mior -- Awk lexer
+* Jon Morton -- Rust lexer
* Paulo Moura -- Logtalk lexer
* Mher Movsisyan -- DTD lexer
* Ana Nelson -- Ragel, ANTLR, R console lexers
@@ -82,6 +87,7 @@ Other contributors, listed alphabetically, are:
* Benjamin Peterson -- Test suite refactoring
* Dominik Picheta -- Nimrod lexer
* Clément Prévost -- UrbiScript lexer
+* Kashif Rasul -- CUDA lexer
* Justin Reidy -- MXML lexer
* Norman Richards -- JSON lexer
* Lubomir Rintel -- GoodData MAQL and CL lexers
diff --git a/CHANGES b/CHANGES
index de9e0389..cf622031 100644
--- a/CHANGES
+++ b/CHANGES
@@ -11,9 +11,18 @@ Version 1.6
- Lexers added:
* Julia (PR#61)
+ * Croc (new name for MiniD)
+ * LiveScript (PR#84)
+ * Lasso (PR#95)
+ * BUGS-like languages (PR#89)
+ * Rust (PR#67)
+ * CUDA (PR#75)
+ * Xtend (PR#68)
- Fix Template Haskell highlighting (PR#63)
+- Fix some S/R lexer errors (PR#91)
+
Version 1.5
-----------
diff --git a/external/lasso-builtins-generator-9.lasso b/external/lasso-builtins-generator-9.lasso
new file mode 100755
index 00000000..bea8b2ab
--- /dev/null
+++ b/external/lasso-builtins-generator-9.lasso
@@ -0,0 +1,121 @@
+#!/usr/bin/lasso9
+
+/*
+ Builtins Generator for Lasso 9
+
+ This is the shell script that was used to extract Lasso 9's built-in keywords
+ and generate most of the _lassobuiltins.py file. When run, it creates a file
+ named "lassobuiltins-9.py" containing the types, traits, and methods of the
+ currently-installed version of Lasso 9.
+
+ A partial list of keywords in Lasso 8 can be generated with this code:
+
+ <?LassoScript
+ local('l8tags' = list);
+ iterate(tags_list, local('i'));
+ #l8tags->insert(string_removeleading(#i, -pattern='_global_'));
+ /iterate;
+ #l8tags->sort;
+ iterate(#l8tags, local('i'));
+ string_lowercase(#i)+"<br>";
+ /iterate;
+
+*/
+
+output("This output statement is required for a complete list of methods.")
+local(f) = file("lassobuiltins-9.py")
+#f->doWithClose => {
+
+#f->openWrite
+#f->writeString('# -*- coding: utf-8 -*-
+"""
+ pygments.lexers._lassobuiltins
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Built-in Lasso types, traits, and methods.
+"""
+
+')
+
+lcapi_loadModules
+
+// Load all of the libraries from builtins and lassoserver
+// This forces all possible available types and methods to be registered
+local(srcs =
+ tie(
+ dir(sys_masterHomePath + 'LassoLibraries/builtins/')->eachFilePath,
+ dir(sys_masterHomePath + 'LassoLibraries/lassoserver/')->eachFilePath
+ )
+)
+
+with topLevelDir in #srcs
+where !#topLevelDir->lastComponent->beginsWith('.')
+do protect => {
+ handle_error => {
+ stdoutnl('Unable to load: ' + #topLevelDir + ' ' + error_msg)
+ }
+ library_thread_loader->loadLibrary(#topLevelDir)
+ stdoutnl('Loaded: ' + #topLevelDir)
+}
+
+local(
+ typesList = list(),
+ traitsList = list(),
+ methodsList = list()
+)
+
+// unbound methods
+with method in sys_listUnboundMethods
+where !#method->methodName->asString->endsWith('=')
+where #method->methodName->asString->isalpha(1)
+where #methodsList !>> #method->methodName->asString
+do #methodsList->insert(#method->methodName->asString)
+
+// traits
+with trait in sys_listTraits
+where !#trait->asString->beginsWith('$')
+where #traitsList !>> #trait->asString
+do {
+ #traitsList->insert(#trait->asString)
+ with tmethod in tie(#trait->getType->provides, #trait->getType->requires)
+ where !#tmethod->methodName->asString->endsWith('=')
+ where #tmethod->methodName->asString->isalpha(1)
+ where #methodsList !>> #tmethod->methodName->asString
+ do #methodsList->insert(#tmethod->methodName->asString)
+}
+
+// types
+with type in sys_listTypes
+where #typesList !>> #type->asString
+do {
+ #typesList->insert(#type->asString)
+ with tmethod in #type->getType->listMethods
+ where !#tmethod->methodName->asString->endsWith('=')
+ where #tmethod->methodName->asString->isalpha(1)
+ where #methodsList !>> #tmethod->methodName->asString
+ do #methodsList->insert(#tmethod->methodName->asString)
+}
+
+#f->writeString("BUILTINS = {
+ 'Types': [
+")
+with t in #typesList
+do #f->writeString(" '"+string_lowercase(#t)+"',\n")
+
+#f->writeString(" ],
+ 'Traits': [
+")
+with t in #traitsList
+do #f->writeString(" '"+string_lowercase(#t)+"',\n")
+
+#f->writeString(" ],
+ 'Methods': [
+")
+with t in #methodsList
+do #f->writeString(" '"+string_lowercase(#t)+"',\n")
+
+#f->writeString(" ],
+}
+")
+
+}
diff --git a/pygments/lexers/_lassobuiltins.py b/pygments/lexers/_lassobuiltins.py
new file mode 100644
index 00000000..e609daf7
--- /dev/null
+++ b/pygments/lexers/_lassobuiltins.py
@@ -0,0 +1,5413 @@
+# -*- coding: utf-8 -*-
+"""
+ pygments.lexers._lassobuiltins
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Built-in Lasso types, traits, and methods.
+"""
+
+BUILTINS = {
+ 'Types': [
+ 'null',
+ 'void',
+ 'tag',
+ 'trait',
+ 'integer',
+ 'decimal',
+ 'boolean',
+ 'capture',
+ 'string',
+ 'bytes',
+ 'keyword',
+ 'custom',
+ 'staticarray',
+ 'signature',
+ 'memberstream',
+ 'dsinfo',
+ 'sourcefile',
+ 'array',
+ 'pair',
+ 'opaque',
+ 'filedesc',
+ 'dirdesc',
+ 'locale',
+ 'ucal',
+ 'xml_domimplementation',
+ 'xml_node',
+ 'xml_characterdata',
+ 'xml_document',
+ 'xml_element',
+ 'xml_attr',
+ 'xml_text',
+ 'xml_cdatasection',
+ 'xml_entityreference',
+ 'xml_entity',
+ 'xml_processinginstruction',
+ 'xml_comment',
+ 'xml_documenttype',
+ 'xml_documentfragment',
+ 'xml_notation',
+ 'xml_nodelist',
+ 'xml_namednodemap',
+ 'xml_namednodemap_ht',
+ 'xml_namednodemap_attr',
+ 'xmlstream',
+ 'sqlite3',
+ 'sqlite3_stmt',
+ 'mime_reader',
+ 'curltoken',
+ 'regexp',
+ 'zip_impl',
+ 'zip_file_impl',
+ 'library_thread_loader_thread$',
+ 'library_thread_loader',
+ 'generateforeachunkeyed',
+ 'generateforeachkeyed',
+ 'eacher',
+ 'queriable_where',
+ 'queriable_select',
+ 'queriable_selectmany',
+ 'queriable_groupby',
+ 'queriable_join',
+ 'queriable_groupjoin',
+ 'queriable_orderby',
+ 'queriable_orderbydescending',
+ 'queriable_thenby',
+ 'queriable_thenbydescending',
+ 'queriable_skip',
+ 'queriable_take',
+ 'queriable_grouping',
+ 'generateseries',
+ 'tie',
+ 'pairup',
+ 'delve',
+ 'repeat',
+ 'pair_compare',
+ 'serialization_object_identity_compare',
+ 'serialization_element',
+ 'serialization_writer_standin',
+ 'serialization_writer_ref',
+ 'serialization_writer',
+ 'serialization_reader',
+ 'tree_nullnode',
+ 'tree_node',
+ 'tree_base',
+ 'map_node',
+ 'map',
+ 'file',
+ 'dir',
+ 'magick_image',
+ 'ldap',
+ 'os_process',
+ 'java_jnienv',
+ 'jobject',
+ 'jmethodid',
+ 'jfieldid',
+ 'database_registry',
+ 'sqlite_db',
+ 'sqlite_results',
+ 'sqlite_currentrow',
+ 'sqlite_table',
+ 'sqlite_column',
+ 'curl',
+ 'date',
+ 'debugging_stack',
+ 'dbgp_server',
+ 'dbgp_packet',
+ 'duration',
+ 'inline_type',
+ 'json_literal',
+ 'json_object',
+ 'list_node',
+ 'list',
+ 'jchar',
+ 'jchararray',
+ 'jbyte',
+ 'jbytearray',
+ 'jfloat',
+ 'jint',
+ 'jshort',
+ 'currency',
+ 'scientific',
+ 'percent',
+ 'dateandtime',
+ 'timeonly',
+ 'net_tcp',
+ 'net_tcpssl',
+ 'net_named_pipe',
+ 'net_udppacket',
+ 'net_udp',
+ 'pdf_typebase',
+ 'pdf_doc',
+ 'pdf_color',
+ 'pdf_barcode',
+ 'pdf_font',
+ 'pdf_image',
+ 'pdf_list',
+ 'pdf_read',
+ 'pdf_table',
+ 'pdf_text',
+ 'pdf_hyphenator',
+ 'pdf_chunk',
+ 'pdf_phrase',
+ 'pdf_paragraph',
+ 'queue',
+ 'set',
+ 'sys_process',
+ 'worker_pool',
+ 'zip_file',
+ 'zip',
+ 'cache_server_element',
+ 'cache_server',
+ 'dns_response',
+ 'component_render_state',
+ 'component',
+ 'component_container',
+ 'document_base',
+ 'document_body',
+ 'document_header',
+ 'text_document',
+ 'data_document',
+ 'email_compose',
+ 'email_pop',
+ 'email_parse',
+ 'email_queue_impl_base',
+ 'email_stage_impl_base',
+ 'fcgi_record',
+ 'web_request_impl',
+ 'fcgi_request',
+ 'include_cache_thread$',
+ 'include_cache',
+ 'atbegin_thread$',
+ 'atbegin',
+ 'fastcgi_each_fcgi_param',
+ 'fastcgi_server',
+ 'filemaker_datasource',
+ 'http_document',
+ 'http_document_header',
+ 'http_header_field',
+ 'html_document_head',
+ 'html_document_body',
+ 'raw_document_body',
+ 'bytes_document_body',
+ 'html_attr',
+ 'html_atomic_element',
+ 'html_container_element',
+ 'http_error',
+ 'html_script',
+ 'html_text',
+ 'html_raw',
+ 'html_binary',
+ 'html_json',
+ 'html_cdata',
+ 'html_eol',
+ 'html_div',
+ 'html_span',
+ 'html_br',
+ 'html_hr',
+ 'html_h1',
+ 'html_h2',
+ 'html_h3',
+ 'html_h4',
+ 'html_h5',
+ 'html_h6',
+ 'html_meta',
+ 'html_link',
+ 'html_object',
+ 'html_style',
+ 'html_base',
+ 'html_table',
+ 'html_tr',
+ 'html_td',
+ 'html_th',
+ 'html_img',
+ 'html_form',
+ 'html_fieldset',
+ 'html_legend',
+ 'html_input',
+ 'html_label',
+ 'html_option',
+ 'html_select',
+ 'http_server_web_connection',
+ 'http_server',
+ 'http_server_connection_handler',
+ 'image',
+ 'lassoapp_installer',
+ 'lassoapp_content_rep_halt',
+ 'lassoapp_dirsrc_fileresource',
+ 'lassoapp_dirsrc_appsource',
+ 'lassoapp_livesrc_fileresource',
+ 'lassoapp_livesrc_appsource',
+ 'lassoapp_long_expiring_bytes',
+ 'lassoapp_zip_file_server_thread$',
+ 'lassoapp_zip_file_server',
+ 'lassoapp_zipsrc_fileresource',
+ 'lassoapp_zipsrc_appsource',
+ 'lassoapp_compiledsrc_fileresource',
+ 'lassoapp_compiledsrc_appsource',
+ 'lassoapp_manualsrc_appsource',
+ 'log_impl_base',
+ 'portal_impl',
+ 'security_registry',
+ 'memory_session_driver_impl_entry',
+ 'memory_session_driver_impl',
+ 'sqlite_session_driver_impl_entry',
+ 'sqlite_session_driver_impl',
+ 'mysql_session_driver_impl',
+ 'odbc_session_driver_impl',
+ 'session_delete_expired_thread_thread$',
+ 'session_delete_expired_thread',
+ 'email_smtp',
+ 'client_address',
+ 'client_ip',
+ 'web_node_base',
+ 'web_node_root',
+ 'web_node_content_representation_xhr_container',
+ 'web_node_content_representation_html_specialized',
+ 'web_node_content_representation_css_specialized',
+ 'web_node_content_representation_js_specialized',
+ 'web_node_echo',
+ 'web_error_atend',
+ 'web_response_impl',
+ 'web_router'
+ ],
+ 'Traits': [
+ 'trait_asstring',
+ 'any',
+ 'trait_generator',
+ 'trait_decompose_assignment',
+ 'trait_foreach',
+ 'trait_generatorcentric',
+ 'trait_foreachtextelement',
+ 'trait_finite',
+ 'trait_finiteforeach',
+ 'trait_keyed',
+ 'trait_keyedfinite',
+ 'trait_keyedforeach',
+ 'trait_frontended',
+ 'trait_backended',
+ 'trait_doubleended',
+ 'trait_positionallykeyed',
+ 'trait_expandable',
+ 'trait_frontexpandable',
+ 'trait_backexpandable',
+ 'trait_contractible',
+ 'trait_frontcontractible',
+ 'trait_backcontractible',
+ 'trait_fullymutable',
+ 'trait_keyedmutable',
+ 'trait_endedfullymutable',
+ 'trait_setoperations',
+ 'trait_searchable',
+ 'trait_positionallysearchable',
+ 'trait_pathcomponents',
+ 'trait_readbytes',
+ 'trait_writebytes',
+ 'trait_setencoding',
+ 'trait_readstring',
+ 'trait_writestring',
+ 'trait_hashable',
+ 'trait_each_sub',
+ 'trait_stack',
+ 'trait_list',
+ 'trait_array',
+ 'trait_map',
+ 'trait_close',
+ 'trait_file',
+ 'trait_scalar',
+ 'trait_queriablelambda',
+ 'trait_queriable',
+ 'queriable_asstring',
+ 'trait_serializable',
+ 'trait_treenode',
+ 'trait_json_serialize',
+ 'formattingbase',
+ 'trait_net',
+ 'trait_xml_elementcompat',
+ 'trait_xml_nodecompat',
+ 'web_connection',
+ 'html_element_coreattrs',
+ 'html_element_i18nattrs',
+ 'html_element_eventsattrs',
+ 'html_attributed',
+ 'lassoapp_resource',
+ 'lassoapp_source',
+ 'lassoapp_capabilities',
+ 'session_driver',
+ 'web_node_content_json_specialized',
+ 'web_node',
+ 'web_node_container',
+ 'web_node_content_representation',
+ 'web_node_content',
+ 'web_node_content_document',
+ 'web_node_postable',
+ 'web_node_content_html_specialized',
+ 'web_node_content_css_specialized',
+ 'web_node_content_js_specialized'
+ ],
+ 'Methods': [
+ 'fail_now',
+ 'staticarray',
+ 'integer',
+ 'decimal',
+ 'string',
+ 'bytes',
+ 'keyword',
+ 'signature',
+ 'register',
+ 'register_thread',
+ 'escape_tag',
+ 'handle',
+ 'handle_failure',
+ 'protect_now',
+ 'threadvar_get',
+ 'threadvar_set',
+ 'threadvar_set_asrt',
+ 'threadvar_find',
+ 'abort_now',
+ 'abort_clear',
+ 'failure_clear',
+ 'var_keys',
+ 'var_values',
+ 'null',
+ 'trait',
+ 'staticarray_join',
+ 'suspend',
+ 'main_thread_only',
+ 'split_thread',
+ 'capture_nearestloopcount',
+ 'capture_nearestloopcontinue',
+ 'capture_nearestloopabort',
+ 'pair',
+ 'io_file_o_rdonly',
+ 'io_file_o_wronly',
+ 'io_file_o_rdwr',
+ 'io_file_o_nonblock',
+ 'io_file_o_sync',
+ 'io_file_o_shlock',
+ 'io_file_o_exlock',
+ 'io_file_o_async',
+ 'io_file_o_fsync',
+ 'io_file_o_nofollow',
+ 'io_file_s_irwxu',
+ 'io_file_s_irusr',
+ 'io_file_s_iwusr',
+ 'io_file_s_ixusr',
+ 'io_file_s_irwxg',
+ 'io_file_s_irgrp',
+ 'io_file_s_iwgrp',
+ 'io_file_s_ixgrp',
+ 'io_file_s_irwxo',
+ 'io_file_s_iroth',
+ 'io_file_s_iwoth',
+ 'io_file_s_ixoth',
+ 'io_file_s_isuid',
+ 'io_file_s_isgid',
+ 'io_file_s_isvtx',
+ 'io_file_s_ifmt',
+ 'io_file_s_ifchr',
+ 'io_file_s_ifdir',
+ 'io_file_s_ifreg',
+ 'io_file_o_append',
+ 'io_file_o_creat',
+ 'io_file_o_trunc',
+ 'io_file_o_excl',
+ 'io_file_seek_set',
+ 'io_file_seek_cur',
+ 'io_file_seek_end',
+ 'io_file_s_ififo',
+ 'io_file_s_ifblk',
+ 'io_file_s_iflnk',
+ 'io_file_s_ifsock',
+ 'io_net_shut_rd',
+ 'io_net_shut_wr',
+ 'io_net_shut_rdwr',
+ 'io_net_sock_stream',
+ 'io_net_sock_dgram',
+ 'io_net_sock_raw',
+ 'io_net_sock_rdm',
+ 'io_net_sock_seqpacket',
+ 'io_net_so_debug',
+ 'io_net_so_acceptconn',
+ 'io_net_so_reuseaddr',
+ 'io_net_so_keepalive',
+ 'io_net_so_dontroute',
+ 'io_net_so_broadcast',
+ 'io_net_so_useloopback',
+ 'io_net_so_linger',
+ 'io_net_so_oobinline',
+ 'io_net_so_timestamp',
+ 'io_net_so_sndbuf',
+ 'io_net_so_rcvbuf',
+ 'io_net_so_sndlowat',
+ 'io_net_so_rcvlowat',
+ 'io_net_so_sndtimeo',
+ 'io_net_so_rcvtimeo',
+ 'io_net_so_error',
+ 'io_net_so_type',
+ 'io_net_sol_socket',
+ 'io_net_af_unix',
+ 'io_net_af_inet',
+ 'io_net_af_inet6',
+ 'io_net_ipproto_ip',
+ 'io_net_ipproto_udp',
+ 'io_net_msg_peek',
+ 'io_net_msg_oob',
+ 'io_net_msg_waitall',
+ 'io_file_fioclex',
+ 'io_file_fionclex',
+ 'io_file_fionread',
+ 'io_file_fionbio',
+ 'io_file_fioasync',
+ 'io_file_fiosetown',
+ 'io_file_fiogetown',
+ 'io_file_fiodtype',
+ 'io_file_f_dupfd',
+ 'io_file_f_getfd',
+ 'io_file_f_setfd',
+ 'io_file_f_getfl',
+ 'io_file_f_setfl',
+ 'io_file_f_getlk',
+ 'io_file_f_setlk',
+ 'io_file_f_setlkw',
+ 'io_file_fd_cloexec',
+ 'io_file_f_rdlck',
+ 'io_file_f_unlck',
+ 'io_file_f_wrlck',
+ 'io_dir_dt_unknown',
+ 'io_dir_dt_fifo',
+ 'io_dir_dt_chr',
+ 'io_dir_dt_blk',
+ 'io_dir_dt_reg',
+ 'io_dir_dt_sock',
+ 'io_dir_dt_wht',
+ 'io_dir_dt_lnk',
+ 'io_dir_dt_dir',
+ 'io_file_access',
+ 'io_file_chdir',
+ 'io_file_getcwd',
+ 'io_file_chown',
+ 'io_file_lchown',
+ 'io_file_truncate',
+ 'io_file_link',
+ 'io_file_pipe',
+ 'io_file_rmdir',
+ 'io_file_symlink',
+ 'io_file_unlink',
+ 'io_file_remove',
+ 'io_file_rename',
+ 'io_file_tempnam',
+ 'io_file_mkstemp',
+ 'io_file_dirname',
+ 'io_file_realpath',
+ 'io_file_chmod',
+ 'io_file_mkdir',
+ 'io_file_mkfifo',
+ 'io_file_umask',
+ 'io_net_socket',
+ 'io_net_bind',
+ 'io_net_connect',
+ 'io_net_listen',
+ 'io_net_recv',
+ 'io_net_recvfrom',
+ 'io_net_accept',
+ 'io_net_send',
+ 'io_net_sendto',
+ 'io_net_shutdown',
+ 'io_net_getpeername',
+ 'io_net_getsockname',
+ 'io_net_ssl_begin',
+ 'io_net_ssl_end',
+ 'io_net_ssl_shutdown',
+ 'io_net_ssl_setverifylocations',
+ 'io_net_ssl_usecertificatechainfile',
+ 'io_net_ssl_useprivatekeyfile',
+ 'io_net_ssl_connect',
+ 'io_net_ssl_accept',
+ 'io_net_ssl_error',
+ 'io_net_ssl_errorstring',
+ 'io_net_ssl_liberrorstring',
+ 'io_net_ssl_funcerrorstring',
+ 'io_net_ssl_reasonerrorstring',
+ 'io_net_ssl_setconnectstate',
+ 'io_net_ssl_setacceptstate',
+ 'io_net_ssl_read',
+ 'io_net_ssl_write',
+ 'io_file_stat_size',
+ 'io_file_stat_mode',
+ 'io_file_stat_mtime',
+ 'io_file_stat_atime',
+ 'io_file_lstat_size',
+ 'io_file_lstat_mode',
+ 'io_file_lstat_mtime',
+ 'io_file_lstat_atime',
+ 'io_file_readlink',
+ 'io_file_lockf',
+ 'io_file_f_ulock',
+ 'io_file_f_tlock',
+ 'io_file_f_test',
+ 'dirdesc',
+ 'io_file_stdin',
+ 'io_file_stdout',
+ 'io_file_stderr',
+ 'filedesc',
+ 'uchar_alphabetic',
+ 'uchar_ascii_hex_digit',
+ 'uchar_bidi_control',
+ 'uchar_bidi_mirrored',
+ 'uchar_dash',
+ 'uchar_default_ignorable_code_point',
+ 'uchar_deprecated',
+ 'uchar_diacritic',
+ 'uchar_extender',
+ 'uchar_full_composition_exclusion',
+ 'uchar_grapheme_base',
+ 'uchar_grapheme_extend',
+ 'uchar_grapheme_link',
+ 'uchar_hex_digit',
+ 'uchar_hyphen',
+ 'uchar_id_continue',
+ 'uchar_ideographic',
+ 'uchar_ids_binary_operator',
+ 'uchar_ids_trinary_operator',
+ 'uchar_join_control',
+ 'uchar_logical_order_exception',
+ 'uchar_lowercase',
+ 'uchar_math',
+ 'uchar_noncharacter_code_point',
+ 'uchar_quotation_mark',
+ 'uchar_radical',
+ 'uchar_soft_dotted',
+ 'uchar_terminal_punctuation',
+ 'uchar_unified_ideograph',
+ 'uchar_uppercase',
+ 'uchar_white_space',
+ 'uchar_xid_continue',
+ 'uchar_case_sensitive',
+ 'uchar_s_term',
+ 'uchar_variation_selector',
+ 'uchar_nfd_inert',
+ 'uchar_nfkd_inert',
+ 'uchar_nfc_inert',
+ 'uchar_nfkc_inert',
+ 'uchar_segment_starter',
+ 'uchar_pattern_syntax',
+ 'uchar_pattern_white_space',
+ 'uchar_posix_alnum',
+ 'uchar_posix_blank',
+ 'uchar_posix_graph',
+ 'uchar_posix_print',
+ 'uchar_posix_xdigit',
+ 'uchar_bidi_class',
+ 'uchar_block',
+ 'uchar_canonical_combining_class',
+ 'uchar_decomposition_type',
+ 'uchar_east_asian_width',
+ 'uchar_general_category',
+ 'uchar_joining_group',
+ 'uchar_joining_type',
+ 'uchar_line_break',
+ 'uchar_numeric_type',
+ 'uchar_script',
+ 'uchar_hangul_syllable_type',
+ 'uchar_nfd_quick_check',
+ 'uchar_nfkd_quick_check',
+ 'uchar_nfc_quick_check',
+ 'uchar_nfkc_quick_check',
+ 'uchar_lead_canonical_combining_class',
+ 'uchar_trail_canonical_combining_class',
+ 'uchar_grapheme_cluster_break',
+ 'uchar_sentence_break',
+ 'uchar_word_break',
+ 'uchar_general_category_mask',
+ 'uchar_numeric_value',
+ 'uchar_age',
+ 'uchar_bidi_mirroring_glyph',
+ 'uchar_case_folding',
+ 'uchar_iso_comment',
+ 'uchar_lowercase_mapping',
+ 'uchar_name',
+ 'uchar_simple_case_folding',
+ 'uchar_simple_lowercase_mapping',
+ 'uchar_simple_titlecase_mapping',
+ 'uchar_simple_uppercase_mapping',
+ 'uchar_titlecase_mapping',
+ 'uchar_unicode_1_name',
+ 'uchar_uppercase_mapping',
+ 'u_wb_other',
+ 'u_wb_aletter',
+ 'u_wb_format',
+ 'u_wb_katakana',
+ 'u_wb_midletter',
+ 'u_wb_midnum',
+ 'u_wb_numeric',
+ 'u_wb_extendnumlet',
+ 'u_sb_other',
+ 'u_sb_aterm',
+ 'u_sb_close',
+ 'u_sb_format',
+ 'u_sb_lower',
+ 'u_sb_numeric',
+ 'u_sb_oletter',
+ 'u_sb_sep',
+ 'u_sb_sp',
+ 'u_sb_sterm',
+ 'u_sb_upper',
+ 'u_lb_unknown',
+ 'u_lb_ambiguous',
+ 'u_lb_alphabetic',
+ 'u_lb_break_both',
+ 'u_lb_break_after',
+ 'u_lb_break_before',
+ 'u_lb_mandatory_break',
+ 'u_lb_contingent_break',
+ 'u_lb_close_punctuation',
+ 'u_lb_combining_mark',
+ 'u_lb_carriage_return',
+ 'u_lb_exclamation',
+ 'u_lb_glue',
+ 'u_lb_hyphen',
+ 'u_lb_ideographic',
+ 'u_lb_inseparable',
+ 'u_lb_infix_numeric',
+ 'u_lb_line_feed',
+ 'u_lb_nonstarter',
+ 'u_lb_numeric',
+ 'u_lb_open_punctuation',
+ 'u_lb_postfix_numeric',
+ 'u_lb_prefix_numeric',
+ 'u_lb_quotation',
+ 'u_lb_complex_context',
+ 'u_lb_surrogate',
+ 'u_lb_space',
+ 'u_lb_break_symbols',
+ 'u_lb_zwspace',
+ 'u_lb_next_line',
+ 'u_lb_word_joiner',
+ 'u_lb_h2',
+ 'u_lb_h3',
+ 'u_lb_jl',
+ 'u_lb_jt',
+ 'u_lb_jv',
+ 'u_nt_none',
+ 'u_nt_decimal',
+ 'u_nt_digit',
+ 'u_nt_numeric',
+ 'locale',
+ 'locale_english',
+ 'locale_french',
+ 'locale_german',
+ 'locale_italian',
+ 'locale_japanese',
+ 'locale_korean',
+ 'locale_chinese',
+ 'locale_simplifiedchinese',
+ 'locale_traditionalchinese',
+ 'locale_france',
+ 'locale_germany',
+ 'locale_italy',
+ 'locale_japan',
+ 'locale_korea',
+ 'locale_china',
+ 'locale_prc',
+ 'locale_taiwan',
+ 'locale_uk',
+ 'locale_us',
+ 'locale_canada',
+ 'locale_canadafrench',
+ 'locale_default',
+ 'locale_setdefault',
+ 'locale_isocountries',
+ 'locale_isolanguages',
+ 'locale_availablelocales',
+ 'ucal_listtimezones',
+ 'ucal',
+ 'ucal_era',
+ 'ucal_year',
+ 'ucal_month',
+ 'ucal_weekofyear',
+ 'ucal_weekofmonth',
+ 'ucal_dayofmonth',
+ 'ucal_dayofyear',
+ 'ucal_dayofweek',
+ 'ucal_dayofweekinmonth',
+ 'ucal_ampm',
+ 'ucal_hour',
+ 'ucal_hourofday',
+ 'ucal_minute',
+ 'ucal_second',
+ 'ucal_millisecond',
+ 'ucal_zoneoffset',
+ 'ucal_dstoffset',
+ 'ucal_yearwoy',
+ 'ucal_dowlocal',
+ 'ucal_extendedyear',
+ 'ucal_julianday',
+ 'ucal_millisecondsinday',
+ 'ucal_lenient',
+ 'ucal_firstdayofweek',
+ 'ucal_daysinfirstweek',
+ 'xml_domimplementation',
+ 'sys_sigalrm',
+ 'sys_sighup',
+ 'sys_sigkill',
+ 'sys_sigpipe',
+ 'sys_sigquit',
+ 'sys_sigusr1',
+ 'sys_sigusr2',
+ 'sys_sigchld',
+ 'sys_sigcont',
+ 'sys_sigstop',
+ 'sys_sigtstp',
+ 'sys_sigttin',
+ 'sys_sigttou',
+ 'sys_sigbus',
+ 'sys_sigprof',
+ 'sys_sigsys',
+ 'sys_sigtrap',
+ 'sys_sigurg',
+ 'sys_sigvtalrm',
+ 'sys_sigxcpu',
+ 'sys_sigxfsz',
+ 'sys_wcontinued',
+ 'sys_wnohang',
+ 'sys_wuntraced',
+ 'sys_sigabrt',
+ 'sys_sigfpe',
+ 'sys_sigill',
+ 'sys_sigint',
+ 'sys_sigsegv',
+ 'sys_sigterm',
+ 'sys_exit',
+ 'sys_fork',
+ 'sys_kill',
+ 'sys_waitpid',
+ 'sys_getegid',
+ 'sys_geteuid',
+ 'sys_getgid',
+ 'sys_getlogin',
+ 'sys_getpid',
+ 'sys_getppid',
+ 'sys_getuid',
+ 'sys_setuid',
+ 'sys_setgid',
+ 'sys_setsid',
+ 'sys_errno',
+ 'sys_strerror',
+ 'sys_time',
+ 'sys_difftime',
+ 'sys_getpwuid',
+ 'sys_getpwnam',
+ 'sys_getgrnam',
+ 'sys_drand48',
+ 'sys_erand48',
+ 'sys_jrand48',
+ 'sys_lcong48',
+ 'sys_lrand48',
+ 'sys_mrand48',
+ 'sys_nrand48',
+ 'sys_srand48',
+ 'sys_random',
+ 'sys_srandom',
+ 'sys_seed48',
+ 'sys_rand',
+ 'sys_srand',
+ 'sys_environ',
+ 'sys_getenv',
+ 'sys_setenv',
+ 'sys_unsetenv',
+ 'sys_uname',
+ 'uuid_compare',
+ 'uuid_copy',
+ 'uuid_generate',
+ 'uuid_generate_random',
+ 'uuid_generate_time',
+ 'uuid_is_null',
+ 'uuid_parse',
+ 'uuid_unparse',
+ 'uuid_unparse_lower',
+ 'uuid_unparse_upper',
+ 'sys_credits',
+ 'sleep',
+ 'sys_dll_ext',
+ 'sys_listtypes',
+ 'sys_listtraits',
+ 'sys_listunboundmethods',
+ 'sys_getthreadcount',
+ 'sys_growheapby',
+ 'sys_getheapsize',
+ 'sys_getheapfreebytes',
+ 'sys_getbytessincegc',
+ 'sys_garbagecollect',
+ 'sys_clock',
+ 'sys_getstartclock',
+ 'sys_clockspersec',
+ 'sys_pointersize',
+ 'sys_loadlibrary',
+ 'sys_getchar',
+ 'sys_chroot',
+ 'sys_exec',
+ 'sys_kill_exec',
+ 'sys_wait_exec',
+ 'sys_test_exec',
+ 'sys_detach_exec',
+ 'sys_pid_exec',
+ 'wifexited',
+ 'wexitstatus',
+ 'wifsignaled',
+ 'wtermsig',
+ 'wifstopped',
+ 'wstopsig',
+ 'wifcontinued',
+ 'sys_eol',
+ 'sys_iswindows',
+ 'sys_is_windows',
+ 'sys_isfullpath',
+ 'sys_is_full_path',
+ 'lcapi_loadmodule',
+ 'lcapi_listdatasources',
+ 'dsinfo',
+ 'encrypt_blowfish',
+ 'decrypt_blowfish',
+ 'cipher_digest',
+ 'cipher_encrypt',
+ 'cipher_decrypt',
+ 'cipher_list',
+ 'cipher_keylength',
+ 'cipher_hmac',
+ 'cipher_seal',
+ 'cipher_open',
+ 'cipher_sign',
+ 'cipher_verify',
+ 'cipher_decrypt_private',
+ 'cipher_decrypt_public',
+ 'cipher_encrypt_private',
+ 'cipher_encrypt_public',
+ 'cipher_generate_key',
+ 'xmlstream',
+ 'sourcefile',
+ 'tag',
+ 'tag_exists',
+ 'mime_reader',
+ 'curl_easy_init',
+ 'curl_easy_duphandle',
+ 'curl_easy_cleanup',
+ 'curl_easy_getinfo',
+ 'curl_multi_perform',
+ 'curl_multi_result',
+ 'curl_easy_reset',
+ 'curl_easy_setopt',
+ 'curl_easy_strerror',
+ 'curl_getdate',
+ 'curl_version',
+ 'curl_version_info',
+ 'curlinfo_effective_url',
+ 'curlinfo_content_type',
+ 'curlinfo_response_code',
+ 'curlinfo_header_size',
+ 'curlinfo_request_size',
+ 'curlinfo_ssl_verifyresult',
+ 'curlinfo_filetime',
+ 'curlinfo_redirect_count',
+ 'curlinfo_http_connectcode',
+ 'curlinfo_httpauth_avail',
+ 'curlinfo_proxyauth_avail',
+ 'curlinfo_os_errno',
+ 'curlinfo_num_connects',
+ 'curlinfo_total_time',
+ 'curlinfo_namelookup_time',
+ 'curlinfo_connect_time',
+ 'curlinfo_pretransfer_time',
+ 'curlinfo_size_upload',
+ 'curlinfo_size_download',
+ 'curlinfo_speed_download',
+ 'curlinfo_speed_upload',
+ 'curlinfo_content_length_download',
+ 'curlinfo_content_length_upload',
+ 'curlinfo_starttransfer_time',
+ 'curlinfo_redirect_time',
+ 'curlinfo_ssl_engines',
+ 'curlopt_url',
+ 'curlopt_postfields',
+ 'curlopt_cainfo',
+ 'curlopt_capath',
+ 'curlopt_cookie',
+ 'curlopt_cookiefile',
+ 'curlopt_cookiejar',
+ 'curlopt_customrequest',
+ 'curlopt_egdsocket',
+ 'curlopt_encoding',
+ 'curlopt_ftp_account',
+ 'curlopt_ftpport',
+ 'curlopt_interface',
+ 'curlopt_krb4level',
+ 'curlopt_netrc_file',
+ 'curlopt_proxy',
+ 'curlopt_proxyuserpwd',
+ 'curlopt_random_file',
+ 'curlopt_range',
+ 'curlopt_readdata',
+ 'curlopt_referer',
+ 'curlopt_ssl_cipher_list',
+ 'curlopt_sslcert',
+ 'curlopt_sslcerttype',
+ 'curlopt_sslengine',
+ 'curlopt_sslkey',
+ 'curlopt_sslkeypasswd',
+ 'curlopt_sslkeytype',
+ 'curlopt_useragent',
+ 'curlopt_userpwd',
+ 'curlopt_postfieldsize',
+ 'curlopt_autoreferer',
+ 'curlopt_buffersize',
+ 'curlopt_connecttimeout',
+ 'curlopt_cookiesession',
+ 'curlopt_crlf',
+ 'curlopt_dns_use_global_cache',
+ 'curlopt_failonerror',
+ 'curlopt_filetime',
+ 'curlopt_followlocation',
+ 'curlopt_forbid_reuse',
+ 'curlopt_fresh_connect',
+ 'curlopt_ftp_create_missing_dirs',
+ 'curlopt_ftp_response_timeout',
+ 'curlopt_ftp_ssl',
+ 'curlopt_use_ssl',
+ 'curlopt_ftp_use_eprt',
+ 'curlopt_ftp_use_epsv',
+ 'curlopt_ftpappend',
+ 'curlopt_ftplistonly',
+ 'curlopt_ftpsslauth',
+ 'curlopt_header',
+ 'curlopt_http_version',
+ 'curlopt_httpauth',
+ 'curlopt_httpget',
+ 'curlopt_httpproxytunnel',
+ 'curlopt_infilesize',
+ 'curlopt_ipresolve',
+ 'curlopt_low_speed_limit',
+ 'curlopt_low_speed_time',
+ 'curlopt_maxconnects',
+ 'curlopt_maxfilesize',
+ 'curlopt_maxredirs',
+ 'curlopt_netrc',
+ 'curlopt_nobody',
+ 'curlopt_noprogress',
+ 'curlopt_port',
+ 'curlopt_post',
+ 'curlopt_proxyauth',
+ 'curlopt_proxyport',
+ 'curlopt_proxytype',
+ 'curlopt_put',
+ 'curlopt_resume_from',
+ 'curlopt_ssl_verifyhost',
+ 'curlopt_ssl_verifypeer',
+ 'curlopt_sslengine_default',
+ 'curlopt_sslversion',
+ 'curlopt_tcp_nodelay',
+ 'curlopt_timecondition',
+ 'curlopt_timeout',
+ 'curlopt_timevalue',
+ 'curlopt_transfertext',
+ 'curlopt_unrestricted_auth',
+ 'curlopt_upload',
+ 'curlopt_verbose',
+ 'curlopt_infilesize_large',
+ 'curlopt_maxfilesize_large',
+ 'curlopt_postfieldsize_large',
+ 'curlopt_resume_from_large',
+ 'curlopt_http200aliases',
+ 'curlopt_httpheader',
+ 'curlopt_postquote',
+ 'curlopt_prequote',
+ 'curlopt_quote',
+ 'curlopt_httppost',
+ 'curlopt_writedata',
+ 'curl_version_ipv6',
+ 'curl_version_kerberos4',
+ 'curl_version_ssl',
+ 'curl_version_libz',
+ 'curl_version_ntlm',
+ 'curl_version_gssnegotiate',
+ 'curl_version_debug',
+ 'curl_version_asynchdns',
+ 'curl_version_spnego',
+ 'curl_version_largefile',
+ 'curl_version_idn',
+ 'curl_netrc_ignored',
+ 'curl_netrc_optional',
+ 'curl_netrc_required',
+ 'curl_http_version_none',
+ 'curl_http_version_1_0',
+ 'curl_http_version_1_1',
+ 'curl_ipresolve_whatever',
+ 'curl_ipresolve_v4',
+ 'curl_ipresolve_v6',
+ 'curlftpssl_none',
+ 'curlftpssl_try',
+ 'curlftpssl_control',
+ 'curlftpssl_all',
+ 'curlftpssl_last',
+ 'curlftpauth_default',
+ 'curlftpauth_ssl',
+ 'curlftpauth_tls',
+ 'curlauth_none',
+ 'curlauth_basic',
+ 'curlauth_digest',
+ 'curlauth_gssnegotiate',
+ 'curlauth_ntlm',
+ 'curlauth_any',
+ 'curlauth_anysafe',
+ 'curlproxy_http',
+ 'curlproxy_socks4',
+ 'curlproxy_socks5',
+ 'curle_ok',
+ 'curle_unsupported_protocol',
+ 'curle_failed_init',
+ 'curle_url_malformat',
+ 'curle_url_malformat_user',
+ 'curle_couldnt_resolve_proxy',
+ 'curle_couldnt_resolve_host',
+ 'curle_couldnt_connect',
+ 'curle_ftp_weird_server_reply',
+ 'curle_ftp_access_denied',
+ 'curle_ftp_user_password_incorrect',
+ 'curle_ftp_weird_pass_reply',
+ 'curle_ftp_weird_user_reply',
+ 'curle_ftp_weird_pasv_reply',
+ 'curle_ftp_weird_227_format',
+ 'curle_ftp_cant_get_host',
+ 'curle_ftp_cant_reconnect',
+ 'curle_ftp_couldnt_set_binary',
+ 'curle_partial_file',
+ 'curle_ftp_couldnt_retr_file',
+ 'curle_ftp_write_error',
+ 'curle_ftp_quote_error',
+ 'curle_http_returned_error',
+ 'curle_write_error',
+ 'curle_malformat_user',
+ 'curle_read_error',
+ 'curle_out_of_memory',
+ 'curle_operation_timeouted',
+ 'curle_ftp_couldnt_set_ascii',
+ 'curle_ftp_port_failed',
+ 'curle_ftp_couldnt_use_rest',
+ 'curle_ftp_couldnt_get_size',
+ 'curle_http_range_error',
+ 'curle_http_post_error',
+ 'curle_ssl_connect_error',
+ 'curle_bad_download_resume',
+ 'curle_file_couldnt_read_file',
+ 'curle_ldap_cannot_bind',
+ 'curle_ldap_search_failed',
+ 'curle_library_not_found',
+ 'curle_function_not_found',
+ 'curle_aborted_by_callback',
+ 'curle_bad_function_argument',
+ 'curle_bad_calling_order',
+ 'curle_interface_failed',
+ 'curle_bad_password_entered',
+ 'curle_too_many_redirects',
+ 'curle_unknown_telnet_option',
+ 'curle_telnet_option_syntax',
+ 'curle_obsolete',
+ 'curle_ssl_peer_certificate',
+ 'curle_got_nothing',
+ 'curle_ssl_engine_notfound',
+ 'curle_ssl_engine_setfailed',
+ 'curle_send_error',
+ 'curle_recv_error',
+ 'curle_share_in_use',
+ 'curle_ssl_certproblem',
+ 'curle_ssl_cipher',
+ 'curle_ssl_cacert',
+ 'curle_bad_content_encoding',
+ 'curle_ldap_invalid_url',
+ 'curle_filesize_exceeded',
+ 'curle_ftp_ssl_failed',
+ 'curle_send_fail_rewind',
+ 'curle_ssl_engine_initfailed',
+ 'curle_login_denied',
+ 'curlmsg_done',
+ 'regexp',
+ 'array',
+ 'boolean',
+ 'zip_open',
+ 'zip_name_locate',
+ 'zip_fopen',
+ 'zip_fopen_index',
+ 'zip_fread',
+ 'zip_fclose',
+ 'zip_close',
+ 'zip_stat',
+ 'zip_stat_index',
+ 'zip_get_archive_comment',
+ 'zip_get_file_comment',
+ 'zip_get_name',
+ 'zip_get_num_files',
+ 'zip_add',
+ 'zip_replace',
+ 'zip_add_dir',
+ 'zip_set_file_comment',
+ 'zip_rename',
+ 'zip_delete',
+ 'zip_unchange',
+ 'zip_unchange_all',
+ 'zip_unchange_archive',
+ 'zip_set_archive_comment',
+ 'zip_error_to_str',
+ 'zip_file_strerror',
+ 'zip_strerror',
+ 'zip_error_get',
+ 'zip_file_error_get',
+ 'zip_error_get_sys_type',
+ 'zlib_version',
+ 'fastcgi_initiate_request',
+ 'debugging_enabled',
+ 'debugging_stop',
+ 'evdns_resolve_ipv4',
+ 'evdns_resolve_ipv6',
+ 'evdns_resolve_reverse',
+ 'evdns_resolve_reverse_ipv6',
+ 'library_thread_loader',
+ 'stdout',
+ 'stdoutnl',
+ 'fail',
+ 'fail_if',
+ 'fail_ifnot',
+ 'error_code',
+ 'error_msg',
+ 'error_obj',
+ 'error_stack',
+ 'error_push',
+ 'error_pop',
+ 'error_reset',
+ 'error_msg_invalidparameter',
+ 'error_code_invalidparameter',
+ 'error_msg_networkerror',
+ 'error_code_networkerror',
+ 'error_msg_runtimeassertion',
+ 'error_code_runtimeassertion',
+ 'error_msg_methodnotfound',
+ 'error_code_methodnotfound',
+ 'error_msg_resnotfound',
+ 'error_code_resnotfound',
+ 'error_msg_filenotfound',
+ 'error_code_filenotfound',
+ 'error_msg_aborted',
+ 'error_code_aborted',
+ 'error_msg_dividebyzero',
+ 'error_code_dividebyzero',
+ 'error_msg_noerror',
+ 'error_code_noerror',
+ 'abort',
+ 'protect',
+ 'trait_asstring',
+ 'any',
+ 'trait_generator',
+ 'trait_decompose_assignment',
+ 'trait_foreach',
+ 'trait_generatorcentric',
+ 'generateforeach',
+ 'generateforeachunkeyed',
+ 'generateforeachkeyed',
+ 'trait_foreachtextelement',
+ 'trait_finite',
+ 'trait_finiteforeach',
+ 'trait_keyed',
+ 'trait_keyedfinite',
+ 'trait_keyedforeach',
+ 'trait_frontended',
+ 'trait_backended',
+ 'trait_doubleended',
+ 'trait_positionallykeyed',
+ 'trait_expandable',
+ 'trait_frontexpandable',
+ 'trait_backexpandable',
+ 'trait_contractible',
+ 'trait_frontcontractible',
+ 'trait_backcontractible',
+ 'trait_fullymutable',
+ 'trait_keyedmutable',
+ 'trait_endedfullymutable',
+ 'trait_setoperations',
+ 'trait_searchable',
+ 'trait_positionallysearchable',
+ 'trait_pathcomponents',
+ 'trait_readbytes',
+ 'trait_writebytes',
+ 'trait_setencoding',
+ 'trait_readstring',
+ 'trait_writestring',
+ 'trait_hashable',
+ 'eacher',
+ 'trait_each_sub',
+ 'trait_stack',
+ 'trait_list',
+ 'trait_array',
+ 'trait_map',
+ 'trait_close',
+ 'trait_file',
+ 'trait_scalar',
+ 'method_name',
+ 'trait_queriablelambda',
+ 'trait_queriable',
+ 'queriable_asstring',
+ 'queriable_where',
+ 'queriable_do',
+ 'queriable_sum',
+ 'queriable_average',
+ 'queriable_min',
+ 'queriable_max',
+ 'queriable_select',
+ 'queriable_selectmany',
+ 'queriable_groupby',
+ 'queriable_join',
+ 'queriable_groupjoin',
+ 'queriable_orderby',
+ 'queriable_orderbydescending',
+ 'queriable_thenby',
+ 'queriable_thenbydescending',
+ 'queriable_skip',
+ 'queriable_take',
+ 'queriable_grouping',
+ 'queriable_internal_combinebindings',
+ 'queriable_defaultcompare',
+ 'queriable_reversecompare',
+ 'queriable_qsort',
+ 'generateseries',
+ 'timer',
+ 'tie',
+ 'pairup',
+ 'delve',
+ 'repeat',
+ 'thread_var_push',
+ 'thread_var_pop',
+ 'thread_var_get',
+ 'loop_value',
+ 'loop_value_push',
+ 'loop_value_pop',
+ 'loop_key',
+ 'loop_key_push',
+ 'loop_key_pop',
+ 'loop_push',
+ 'loop_pop',
+ 'loop_count',
+ 'loop_continue',
+ 'loop_abort',
+ 'loop',
+ 'sys_while',
+ 'sys_iterate',
+ 'pair_compare',
+ 'serialization_object_identity_compare',
+ 'serialization_element',
+ 'trait_serializable',
+ 'serialization_writer_standin',
+ 'serialization_writer_ref',
+ 'serialization_writer',
+ 'serialization_reader',
+ 'string_validcharset',
+ 'eol',
+ 'encoding_utf8',
+ 'encoding_iso88591',
+ 'trait_treenode',
+ 'tree_nullnode',
+ 'tree_node',
+ 'tree_base',
+ 'map_node',
+ 'map',
+ 'integer_random',
+ 'integer_bitor',
+ 'millis',
+ 'micros',
+ 'max',
+ 'min',
+ 'range',
+ 'median',
+ 'decimal_random',
+ 'pi',
+ 'lcapi_datasourceinit',
+ 'lcapi_datasourceterm',
+ 'lcapi_datasourcenames',
+ 'lcapi_datasourcetablenames',
+ 'lcapi_datasourcesearch',
+ 'lcapi_datasourceadd',
+ 'lcapi_datasourceupdate',
+ 'lcapi_datasourcedelete',
+ 'lcapi_datasourceinfo',
+ 'lcapi_datasourceexecsql',
+ 'lcapi_datasourcerandom',
+ 'lcapi_datasourceschemanames',
+ 'lcapi_datasourcecloseconnection',
+ 'lcapi_datasourcetickle',
+ 'lcapi_datasourceduplicate',
+ 'lcapi_datasourcescripts',
+ 'lcapi_datasourceimage',
+ 'lcapi_datasourcefindall',
+ 'lcapi_datasourcematchesname',
+ 'lcapi_datasourcepreparesql',
+ 'lcapi_datasourceunpreparesql',
+ 'lcapi_datasourcenothing',
+ 'lcapi_fourchartointeger',
+ 'lcapi_datasourcetypestring',
+ 'lcapi_datasourcetypeinteger',
+ 'lcapi_datasourcetypeboolean',
+ 'lcapi_datasourcetypeblob',
+ 'lcapi_datasourcetypedecimal',
+ 'lcapi_datasourcetypedate',
+ 'lcapi_datasourceprotectionnone',
+ 'lcapi_datasourceprotectionreadonly',
+ 'lcapi_datasourceopgt',
+ 'lcapi_datasourceopgteq',
+ 'lcapi_datasourceopeq',
+ 'lcapi_datasourceopneq',
+ 'lcapi_datasourceoplt',
+ 'lcapi_datasourceoplteq',
+ 'lcapi_datasourceopbw',
+ 'lcapi_datasourceopew',
+ 'lcapi_datasourceopct',
+ 'lcapi_datasourceopnct',
+ 'lcapi_datasourceopnbw',
+ 'lcapi_datasourceopnew',
+ 'lcapi_datasourceopand',
+ 'lcapi_datasourceopor',
+ 'lcapi_datasourceopnot',
+ 'lcapi_datasourceopno',
+ 'lcapi_datasourceopany',
+ 'lcapi_datasourceopin',
+ 'lcapi_datasourceopnin',
+ 'lcapi_datasourceopft',
+ 'lcapi_datasourceoprx',
+ 'lcapi_datasourceopnrx',
+ 'lcapi_datasourcesortascending',
+ 'lcapi_datasourcesortdescending',
+ 'lcapi_datasourcesortcustom',
+ 'lcapi_loadmodules',
+ 'lasso_version',
+ 'lasso_uniqueid',
+ 'usage',
+ 'file_defaultencoding',
+ 'file_copybuffersize',
+ 'file_modeline',
+ 'file_modechar',
+ 'file_forceroot',
+ 'file_tempfile',
+ 'file',
+ 'file_stdin',
+ 'file_stdout',
+ 'file_stderr',
+ 'lasso_tagexists',
+ 'lasso_methodexists',
+ 'output',
+ 'if_empty',
+ 'if_null',
+ 'if_true',
+ 'if_false',
+ 'process',
+ 'treemap',
+ 'locale_format',
+ 'compress',
+ 'uncompress',
+ 'decompress',
+ 'tag_name',
+ 'series',
+ 'nslookup',
+ 'all',
+ 'bw',
+ 'cn',
+ 'eq',
+ 'ew',
+ 'ft',
+ 'gt',
+ 'gte',
+ 'lt',
+ 'lte',
+ 'neq',
+ 'nrx',
+ 'rx',
+ 'none',
+ 'minimal',
+ 'full',
+ 'output_none',
+ 'lasso_executiontimelimit',
+ 'namespace_global',
+ 'namespace_using',
+ 'namespace_import',
+ 'site_id',
+ 'site_name',
+ 'sys_homepath',
+ 'sys_masterhomepath',
+ 'sys_supportpath',
+ 'sys_librariespath',
+ 'sys_databasespath',
+ 'sys_usercapimodulepath',
+ 'sys_appspath',
+ 'sys_userstartuppath',
+ 'dir',
+ 'magick_image',
+ 'ldap',
+ 'ldap_scope_base',
+ 'ldap_scope_onelevel',
+ 'ldap_scope_subtree',
+ 'mysqlds',
+ 'os_process',
+ 'odbc',
+ 'sqliteconnector',
+ 'sqlite_createdb',
+ 'sqlite_setsleepmillis',
+ 'sqlite_setsleeptries',
+ 'java_jvm_getenv',
+ 'java_jvm_create',
+ 'java_jdbc_load',
+ 'database_database',
+ 'database_table_datasources',
+ 'database_table_datasource_hosts',
+ 'database_table_datasource_databases',
+ 'database_table_database_tables',
+ 'database_table_table_fields',
+ 'database_qs',
+ 'database_initialize',
+ 'database_util_cleanpath',
+ 'database_adddefaultsqlitehost',
+ 'database_registry',
+ 'sqlite_ok',
+ 'sqlite_error',
+ 'sqlite_internal',
+ 'sqlite_perm',
+ 'sqlite_abort',
+ 'sqlite_busy',
+ 'sqlite_locked',
+ 'sqlite_nomem',
+ 'sqlite_readonly',
+ 'sqlite_interrupt',
+ 'sqlite_ioerr',
+ 'sqlite_corrupt',
+ 'sqlite_notfound',
+ 'sqlite_full',
+ 'sqlite_cantopen',
+ 'sqlite_protocol',
+ 'sqlite_empty',
+ 'sqlite_schema',
+ 'sqlite_toobig',
+ 'sqlite_constraint',
+ 'sqlite_mismatch',
+ 'sqlite_misuse',
+ 'sqlite_nolfs',
+ 'sqlite_auth',
+ 'sqlite_format',
+ 'sqlite_range',
+ 'sqlite_notadb',
+ 'sqlite_row',
+ 'sqlite_done',
+ 'sqlite_integer',
+ 'sqlite_float',
+ 'sqlite_blob',
+ 'sqlite_null',
+ 'sqlite_text',
+ 'sqlite3',
+ 'sqlite_db',
+ 'sqlite_results',
+ 'sqlite_currentrow',
+ 'sqlite_table',
+ 'sqlite_column',
+ 'bom_utf16be',
+ 'bom_utf16le',
+ 'bom_utf32be',
+ 'bom_utf32le',
+ 'bom_utf8',
+ 'curl',
+ 'include_url',
+ 'ftp_getdata',
+ 'ftp_getfile',
+ 'ftp_getlisting',
+ 'ftp_putdata',
+ 'ftp_putfile',
+ 'ftp_deletefile',
+ 'date',
+ 'debugging_step_in',
+ 'debugging_get_stack',
+ 'debugging_get_context',
+ 'debugging_detach',
+ 'debugging_step_over',
+ 'debugging_step_out',
+ 'debugging_run',
+ 'debugging_break',
+ 'debugging_breakpoint_set',
+ 'debugging_breakpoint_get',
+ 'debugging_breakpoint_remove',
+ 'debugging_breakpoint_list',
+ 'debugging_breakpoint_update',
+ 'debugging_terminate',
+ 'debugging_context_locals',
+ 'debugging_context_vars',
+ 'debugging_context_self',
+ 'debugging_stack',
+ 'dbgp_stop_stack_name',
+ 'dbgp_server',
+ 'dbgp_packet',
+ 'duration',
+ 'encrypt_md5',
+ 'inline_columninfo_pos',
+ 'inline_resultrows_pos',
+ 'inline_foundcount_pos',
+ 'inline_colinfo_name_pos',
+ 'inline_colinfo_valuelist_pos',
+ 'inline_scopeget',
+ 'inline_scopepush',
+ 'inline_scopepop',
+ 'inline_namedget',
+ 'inline_namedput',
+ 'inline',
+ 'inline_type',
+ 'resultset_count',
+ 'resultset',
+ 'resultsets',
+ 'rows',
+ 'rows_impl',
+ 'records',
+ 'column',
+ 'field',
+ 'column_names',
+ 'field_names',
+ 'column_name',
+ 'field_name',
+ 'found_count',
+ 'shown_count',
+ 'shown_first',
+ 'shown_last',
+ 'action_statement',
+ 'lasso_currentaction',
+ 'maxrecords_value',
+ 'skiprecords_value',
+ 'action_param',
+ 'action_params',
+ 'admin_authorization',
+ 'admin_currentgroups',
+ 'admin_currentuserid',
+ 'admin_currentusername',
+ 'database_name',
+ 'table_name',
+ 'layout_name',
+ 'schema_name',
+ 'keycolumn_name',
+ 'keyfield_name',
+ 'keycolumn_value',
+ 'keyfield_value',
+ 'inline_colinfo_type_pos',
+ 'column_type',
+ 'rows_array',
+ 'records_array',
+ 'records_map',
+ 'trait_json_serialize',
+ 'json_serialize',
+ 'json_consume_string',
+ 'json_consume_token',
+ 'json_consume_array',
+ 'json_consume_object',
+ 'json_deserialize',
+ 'json_literal',
+ 'json_object',
+ 'json_rpccall',
+ 'list_node',
+ 'list',
+ 'jchar',
+ 'jchararray',
+ 'jbyte',
+ 'jbytearray',
+ 'jfloat',
+ 'jint',
+ 'jshort',
+ 'ljapi_initialize',
+ 'formattingbase',
+ 'currency',
+ 'scientific',
+ 'percent',
+ 'dateandtime',
+ 'timeonly',
+ 'locale_format_style_full',
+ 'locale_format_style_long',
+ 'locale_format_style_medium',
+ 'locale_format_style_short',
+ 'locale_format_style_default',
+ 'locale_format_style_none',
+ 'locale_format_style_date_time',
+ 'net_connectinprogress',
+ 'net_connectok',
+ 'net_typessl',
+ 'net_typessltcp',
+ 'net_typessludp',
+ 'net_typetcp',
+ 'net_typeudp',
+ 'net_waitread',
+ 'net_waittimeout',
+ 'net_waitwrite',
+ 'trait_net',
+ 'net_tcp',
+ 'net_tcpssl',
+ 'net_named_pipe',
+ 'net_udppacket',
+ 'net_udp',
+ 'admin_initialize',
+ 'admin_getpref',
+ 'admin_setpref',
+ 'admin_removepref',
+ 'admin_userexists',
+ 'admin_lassoservicepath',
+ 'pdf_package',
+ 'pdf_rectangle',
+ 'pdf_typebase',
+ 'pdf_doc',
+ 'pdf_color',
+ 'pdf_barcode',
+ 'pdf_font',
+ 'pdf_image',
+ 'pdf_list',
+ 'pdf_read',
+ 'pdf_table',
+ 'pdf_text',
+ 'pdf_hyphenator',
+ 'pdf_chunk',
+ 'pdf_phrase',
+ 'pdf_paragraph',
+ 'pdf_serve',
+ 'queue',
+ 'random_seed',
+ 'set',
+ 'sys_process',
+ 'worker_pool',
+ 'xml',
+ 'trait_xml_elementcompat',
+ 'trait_xml_nodecompat',
+ 'xml_transform',
+ 'zip_create',
+ 'zip_excl',
+ 'zip_checkcons',
+ 'zip_fl_nocase',
+ 'zip_fl_nodir',
+ 'zip_fl_compressed',
+ 'zip_fl_unchanged',
+ 'zip_er_ok',
+ 'zip_er_multidisk',
+ 'zip_er_rename',
+ 'zip_er_close',
+ 'zip_er_seek',
+ 'zip_er_read',
+ 'zip_er_write',
+ 'zip_er_crc',
+ 'zip_er_zipclosed',
+ 'zip_er_noent',
+ 'zip_er_exists',
+ 'zip_er_open',
+ 'zip_er_tmpopen',
+ 'zip_er_zlib',
+ 'zip_er_memory',
+ 'zip_er_changed',
+ 'zip_er_compnotsupp',
+ 'zip_er_eof',
+ 'zip_er_inval',
+ 'zip_er_nozip',
+ 'zip_er_internal',
+ 'zip_er_incons',
+ 'zip_er_remove',
+ 'zip_er_deleted',
+ 'zip_et_none',
+ 'zip_et_sys',
+ 'zip_et_zlib',
+ 'zip_cm_default',
+ 'zip_cm_store',
+ 'zip_cm_shrink',
+ 'zip_cm_reduce_1',
+ 'zip_cm_reduce_2',
+ 'zip_cm_reduce_3',
+ 'zip_cm_reduce_4',
+ 'zip_cm_implode',
+ 'zip_cm_deflate',
+ 'zip_cm_deflate64',
+ 'zip_cm_pkware_implode',
+ 'zip_cm_bzip2',
+ 'zip_em_none',
+ 'zip_em_trad_pkware',
+ 'zip_em_des',
+ 'zip_em_rc2_old',
+ 'zip_em_3des_168',
+ 'zip_em_3des_112',
+ 'zip_em_aes_128',
+ 'zip_em_aes_192',
+ 'zip_em_aes_256',
+ 'zip_em_rc2',
+ 'zip_em_rc4',
+ 'zip_em_unknown',
+ 'zip_file',
+ 'zip',
+ 'cache_server_element',
+ 'cache_server',
+ 'dns_response',
+ 'dns_lookup',
+ 'dns_default',
+ 'string_charfromname',
+ 'string_concatenate',
+ 'string_endswith',
+ 'string_extract',
+ 'string_findposition',
+ 'string_findregexp',
+ '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_remove',
+ 'string_removeleading',
+ 'string_removetrailing',
+ 'string_replace',
+ 'string_replaceregexp',
+ 'string_todecimal',
+ 'string_tointeger',
+ 'string_uppercase',
+ 'string_lowercase',
+ 'document',
+ 'component_render_state',
+ 'component',
+ 'component_container',
+ 'document_base',
+ 'document_body',
+ 'document_header',
+ 'text_document',
+ 'data_document',
+ 'email_attachment_mime_type',
+ 'email_translatebreakstocrlf',
+ 'email_findemails',
+ 'email_fix_address',
+ 'email_fix_address_list',
+ 'email_compose',
+ 'email_send',
+ 'email_queue',
+ 'email_immediate',
+ 'email_result',
+ 'email_status',
+ 'email_token',
+ 'email_merge',
+ 'email_batch',
+ 'encode_qheader',
+ 'email_pop',
+ 'email_parse',
+ 'email_safeemail',
+ 'email_extract',
+ 'email_pop_priv_substring',
+ 'email_pop_priv_extract',
+ 'email_digestchallenge',
+ 'email_pop_priv_quote',
+ 'email_digestresponse',
+ 'encrypt_hmac',
+ 'encrypt_crammd5',
+ 'email_queue_impl_base',
+ 'email_fs_error_clean',
+ 'email_stage_impl_base',
+ 'email_initialize',
+ 'email_mxlookup',
+ 'lasso_errorreporting',
+ 'fcgi_version_1',
+ 'fcgi_null_request_id',
+ 'fcgi_begin_request',
+ 'fcgi_abort_request',
+ 'fcgi_end_request',
+ 'fcgi_params',
+ 'fcgi_stdin',
+ 'fcgi_stdout',
+ 'fcgi_stderr',
+ 'fcgi_data',
+ 'fcgi_get_values',
+ 'fcgi_get_values_result',
+ 'fcgi_unknown_type',
+ 'fcgi_keep_conn',
+ 'fcgi_responder',
+ 'fcgi_authorize',
+ 'fcgi_filter',
+ 'fcgi_request_complete',
+ 'fcgi_cant_mpx_conn',
+ 'fcgi_overloaded',
+ 'fcgi_unknown_role',
+ 'fcgi_max_conns',
+ 'fcgi_max_reqs',
+ 'fcgi_mpxs_conns',
+ 'fcgi_read_timeout_seconds',
+ 'fcgi_record',
+ 'fcgi_makeendrequestbody',
+ 'fcgi_bodychunksize',
+ 'fcgi_makestdoutbody',
+ 'fcgi_readparam',
+ 'web_connection',
+ 'web_request_impl',
+ 'web_request',
+ 'fcgi_request',
+ 'include_cache_compare',
+ 'include_cache',
+ 'atbegin',
+ 'fastcgi_initialize',
+ 'fastcgi_handlecon',
+ 'fastcgi_handlereq',
+ 'fastcgi_each_fcgi_param',
+ 'fastcgi_createfcgirequest',
+ 'fastcgi_server',
+ 'web_handlefcgirequest',
+ 'filemaker_datasource',
+ 'filemakerds_initialize',
+ 'filemakerds',
+ 'value_listitem',
+ 'valuelistitem',
+ 'selected',
+ 'checked',
+ 'value_list',
+ 'http_document',
+ 'http_document_header',
+ 'http_header_field',
+ 'html_document_head',
+ 'html_document_body',
+ 'raw_document_body',
+ 'bytes_document_body',
+ 'html_element_coreattrs',
+ 'html_element_i18nattrs',
+ 'html_element_eventsattrs',
+ 'html_attributed',
+ 'html_attr',
+ 'html_atomic_element',
+ 'html_container_element',
+ 'http_error',
+ 'html_script',
+ 'html_text',
+ 'html_raw',
+ 'html_binary',
+ 'html_json',
+ 'html_cdata',
+ 'html_eol',
+ 'html_div',
+ 'html_span',
+ 'html_br',
+ 'html_hr',
+ 'html_h1',
+ 'html_h2',
+ 'html_h3',
+ 'html_h4',
+ 'html_h5',
+ 'html_h6',
+ 'html_meta',
+ 'html_link',
+ 'html_object',
+ 'html_style',
+ 'html_base',
+ 'html_table',
+ 'html_tr',
+ 'html_td',
+ 'html_th',
+ 'html_img',
+ 'html_form',
+ 'html_fieldset',
+ 'html_legend',
+ 'html_input',
+ 'html_label',
+ 'html_option',
+ 'html_select',
+ 'http_char_space',
+ 'http_char_htab',
+ 'http_char_cr',
+ 'http_char_lf',
+ 'http_char_question',
+ 'http_char_colon',
+ 'http_read_timeout_secs',
+ 'http_server_web_connection',
+ 'http_server',
+ 'http_server_connection_handler',
+ 'image',
+ 'jdbc_initialize',
+ 'lassoapp_settingsdb',
+ 'lassoapp_resource',
+ 'lassoapp_format_mod_date',
+ 'lassoapp_include_current',
+ 'lassoapp_include',
+ 'lassoapp_find_missing_file',
+ 'lassoapp_source',
+ 'lassoapp_capabilities',
+ 'lassoapp_get_capabilities_name',
+ 'lassoapp_exists',
+ 'lassoapp_path_to_method_name',
+ 'lassoapp_invoke_resource',
+ 'lassoapp_installer',
+ 'lassoapp_initialize_db',
+ 'lassoapp_initialize',
+ 'lassoapp_content_rep_halt',
+ 'lassoapp_issourcefileextension',
+ 'lassoapp_dirsrc_fileresource',
+ 'lassoapp_dirsrc_appsource',
+ 'lassoapp_livesrc_fileresource',
+ 'lassoapp_livesrc_appsource',
+ 'lassoapp_long_expiring_bytes',
+ 'lassoapp_zip_file_server',
+ 'lassoapp_zipsrc_fileresource',
+ 'lassoapp_zipsrc_appsource',
+ 'lassoapp_compiledsrc_fileresource',
+ 'lassoapp_compiledsrc_appsource',
+ 'lassoapp_manualsrc_appsource',
+ 'lassoapp_current_include',
+ 'lassoapp_current_app',
+ 'lassoapp_do_with_include',
+ 'lassoapp_link',
+ 'lassoapp_load_module',
+ 'lassoapp_mime_type_html',
+ 'lassoapp_mime_type_lasso',
+ 'lassoapp_mime_type_xml',
+ 'lassoapp_mime_type_ppt',
+ 'lassoapp_mime_type_js',
+ 'lassoapp_mime_type_txt',
+ 'lassoapp_mime_type_jpg',
+ 'lassoapp_mime_type_png',
+ 'lassoapp_mime_type_gif',
+ 'lassoapp_mime_type_css',
+ 'lassoapp_mime_type_csv',
+ 'lassoapp_mime_type_tif',
+ 'lassoapp_mime_type_ico',
+ 'lassoapp_mime_type_rss',
+ 'lassoapp_mime_type_xhr',
+ 'lassoapp_mime_type_pdf',
+ 'lassoapp_mime_type_docx',
+ 'lassoapp_mime_type_doc',
+ 'lassoapp_mime_type_zip',
+ 'lassoapp_mime_type_svg',
+ 'lassoapp_mime_type_ttf',
+ 'lassoapp_mime_type_woff',
+ 'lassoapp_mime_get',
+ 'log_level_critical',
+ 'log_level_warning',
+ 'log_level_detail',
+ 'log_level_sql',
+ 'log_level_deprecated',
+ 'log_destination_console',
+ 'log_destination_file',
+ 'log_destination_database',
+ 'log',
+ 'log_setdestination',
+ 'log_always',
+ 'log_critical',
+ 'log_warning',
+ 'log_detail',
+ 'log_sql',
+ 'log_deprecated',
+ 'log_max_file_size',
+ 'log_trim_file_size',
+ 'log_impl_base',
+ 'log_initialize',
+ 'portal_impl',
+ 'portal',
+ 'security_database',
+ 'security_table_groups',
+ 'security_table_users',
+ 'security_table_ug_map',
+ 'security_default_realm',
+ 'security_initialize',
+ 'security_registry',
+ 'session_driver',
+ 'session_initialize',
+ 'session_getdefaultdriver',
+ 'session_setdefaultdriver',
+ 'session_start',
+ 'session_addvar',
+ 'session_removevar',
+ 'session_end',
+ 'session_id',
+ 'session_abort',
+ 'session_result',
+ 'session_deleteexpired',
+ 'memory_session_driver_impl_entry',
+ 'memory_session_driver_impl',
+ 'sqlite_session_driver_impl_entry',
+ 'sqlite_session_driver_impl',
+ 'mysql_session_driver_impl',
+ 'odbc_session_driver_mssql',
+ 'odbc_session_driver_impl',
+ 'session_decorate',
+ 'session_delete_expired_thread',
+ 'email_smtp',
+ 'auth_admin',
+ 'auth_check',
+ 'auth_custom',
+ 'auth_group',
+ 'auth_prompt',
+ 'auth_user',
+ 'client_address',
+ 'client_addr',
+ 'client_authorization',
+ 'client_browser',
+ 'client_contentlength',
+ 'client_contenttype',
+ 'client_cookielist',
+ 'client_cookies',
+ 'client_encoding',
+ 'client_formmethod',
+ 'client_getargs',
+ 'client_getparams',
+ 'client_getparam',
+ 'client_headers',
+ 'client_integertoip',
+ 'client_ip',
+ 'client_iptointeger',
+ 'client_password',
+ 'client_postargs',
+ 'client_postparams',
+ 'client_postparam',
+ 'client_type',
+ 'client_username',
+ 'client_url',
+ 'referer_url',
+ 'referrer_url',
+ 'content_type',
+ 'content_encoding',
+ 'cookie',
+ 'cookie_set',
+ 'include',
+ 'include_currentpath',
+ 'include_filepath',
+ 'include_localpath',
+ 'include_once',
+ 'include_path',
+ 'include_raw',
+ 'includes',
+ 'library',
+ 'library_once',
+ 'response_filepath',
+ 'response_localpath',
+ 'response_path',
+ 'response_realm',
+ 'response_root',
+ 'redirect_url',
+ 'server_admin',
+ 'server_name',
+ 'server_ip',
+ 'server_port',
+ 'server_protocol',
+ 'server_signature',
+ 'server_software',
+ 'server_push',
+ 'token_value',
+ 'wap_isenabled',
+ 'wap_maxbuttons',
+ 'wap_maxhorzpixels',
+ 'wap_maxvertpixels',
+ 'wap_maxcolumns',
+ 'wap_maxrows',
+ 'define_atbegin',
+ 'define_atend',
+ 'content_header',
+ 'content_addheader',
+ 'content_replaceheader',
+ 'content_body',
+ 'html_comment',
+ 'web_node_content_json_specialized',
+ 'web_node',
+ 'web_node_container',
+ 'web_node_content_representation',
+ 'web_node_content',
+ 'web_node_content_document',
+ 'web_node_postable',
+ 'web_node_base',
+ 'web_node_forpath',
+ 'web_nodes_requesthandler',
+ 'web_nodes_normalizeextension',
+ 'web_nodes_processcontentnode',
+ 'web_node_root',
+ 'web_nodes_initialize',
+ 'web_node_content_representation_xhr_container',
+ 'web_node_content_representation_xhr',
+ 'web_node_content_html_specialized',
+ 'web_node_content_representation_html_specialized',
+ 'web_node_content_representation_html',
+ 'web_node_content_css_specialized',
+ 'web_node_content_representation_css_specialized',
+ 'web_node_content_representation_css',
+ 'web_node_content_js_specialized',
+ 'web_node_content_representation_js_specialized',
+ 'web_node_content_representation_js',
+ 'web_node_echo',
+ 'web_response_nodesentry',
+ 'web_error_atend',
+ 'web_response_impl',
+ 'web_response',
+ 'web_router_database',
+ 'web_router_initialize',
+ 'web_router',
+ 'asstring',
+ 'isnota',
+ 'isallof',
+ 'isanyof',
+ 'oncompare',
+ 'isa',
+ 'ascopy',
+ 'ascopydeep',
+ 'type',
+ 'invoke',
+ 'atend',
+ 'decomposeassignment',
+ 'asgenerator',
+ 'foreach',
+ 'eachword',
+ 'eachline',
+ 'eachcharacter',
+ 'foreachwordbreak',
+ 'foreachlinebreak',
+ 'foreachcharacter',
+ 'isempty',
+ 'isnotempty',
+ 'ifempty',
+ 'ifnotempty',
+ 'size',
+ 'values',
+ 'asarray',
+ 'aslist',
+ 'asstaticarray',
+ 'join',
+ 'get',
+ 'keys',
+ 'askeyedgenerator',
+ 'eachpair',
+ 'eachkey',
+ 'foreachpair',
+ 'foreachkey',
+ 'front',
+ 'first',
+ 'back',
+ 'last',
+ 'second',
+ 'insert',
+ 'insertfront',
+ 'insertfirst',
+ 'insertback',
+ 'insertfrom',
+ 'insertlast',
+ 'remove',
+ 'removeall',
+ 'removefront',
+ 'removefirst',
+ 'removeback',
+ 'removelast',
+ 'difference',
+ 'intersection',
+ 'union',
+ 'contains',
+ 'find',
+ 'findposition',
+ 'componentdelimiter',
+ 'extensiondelimiter',
+ 'lastcomponent',
+ 'foreachpathcomponent',
+ 'eachcomponent',
+ 'striplastcomponent',
+ 'firstcomponent',
+ 'stripfirstcomponent',
+ 'splitextension',
+ 'hastrailingcomponent',
+ 'isfullpath',
+ 'findlast',
+ 'sub',
+ 'readsomebytes',
+ 'readbytesfully',
+ 'readbytes',
+ 'writebytes',
+ 'encoding',
+ 'readstring',
+ 'writestring',
+ 'hash',
+ 'foreachsub',
+ 'eachsub',
+ 'push',
+ 'pop',
+ 'top',
+ 'dowithclose',
+ 'close',
+ 'fd',
+ 'do',
+ 'sum',
+ 'average',
+ 'where',
+ 'select',
+ 'selectmany',
+ 'groupby',
+ 'groupjoin',
+ 'orderby',
+ 'orderbydescending',
+ 'thenby',
+ 'thenbydescending',
+ 'skip',
+ 'take',
+ 'serialize',
+ 'serializationelements',
+ 'acceptdeserializedelement',
+ 'left',
+ 'right',
+ 'up',
+ 'value',
+ 'bind',
+ 'listen',
+ 'localaddress',
+ 'remoteaddress',
+ 'shutdownrd',
+ 'shutdownwr',
+ 'shutdownrdwr',
+ 'setname',
+ 'contents',
+ 'tagname',
+ 'foreachchild',
+ 'eachchild',
+ 'foreachmatch',
+ 'eachmatch',
+ 'haschildnodes',
+ 'childnodes',
+ 'extract',
+ 'connection',
+ 'requestparams',
+ 'stdin',
+ 'mimes',
+ 'setstatus',
+ 'getstatus',
+ 'writeheaderline',
+ 'writeheaderbytes',
+ 'writebodybytes',
+ 'id',
+ 'class',
+ 'style',
+ 'title',
+ 'gethtmlattr',
+ 'lang',
+ 'onclick',
+ 'ondblclick',
+ 'onmousedown',
+ 'onmouseup',
+ 'onmouseover',
+ 'onmousemove',
+ 'onmouseout',
+ 'onkeypress',
+ 'onkeydown',
+ 'onkeyup',
+ 'sethtmlattr',
+ 'gethtmlattrstring',
+ 'hashtmlattr',
+ 'addcomponent',
+ 'attributes',
+ 'issourcefile',
+ 'resourceinvokable',
+ 'resourcename',
+ 'fullpath',
+ 'appname',
+ 'srcpath',
+ 'resources',
+ 'foo',
+ 'startup',
+ 'validatesessionstable',
+ 'createtable',
+ 'fetchdata',
+ 'savedata',
+ 'init',
+ 'kill',
+ 'expire',
+ 'jsonlabel',
+ 'jsonhtml',
+ 'jsonisleaf',
+ 'delim',
+ 'name',
+ 'path',
+ 'nodelist',
+ 'subnode',
+ 'subnodes',
+ 'representnoderesult',
+ 'mime',
+ 'extensions',
+ 'representnode',
+ 'defaultcontentrepresentation',
+ 'supportscontentrepresentation',
+ 'acceptpost',
+ 'htmlcontent',
+ 'csscontent',
+ 'jscontent',
+ 'escape_member',
+ 'sameas',
+ 'parent',
+ 'settrait',
+ 'oncreate',
+ 'listmethods',
+ 'hasmethod',
+ 'addtrait',
+ 'gettype',
+ 'istype',
+ 'doccomment',
+ 'requires',
+ 'provides',
+ 'subtraits',
+ 'description',
+ 'hosttonet16',
+ 'hosttonet32',
+ 'nettohost16',
+ 'nettohost32',
+ 'nettohost64',
+ 'hosttonet64',
+ 'bitset',
+ 'bittest',
+ 'bitflip',
+ 'bitclear',
+ 'bitor',
+ 'bitand',
+ 'bitxor',
+ 'bitnot',
+ 'bitshiftleft',
+ 'bitshiftright',
+ 'abs',
+ 'div',
+ 'dereferencepointer',
+ 'asdecimal',
+ 'deg2rad',
+ 'asstringhex',
+ 'asstringoct',
+ 'acos',
+ 'asin',
+ 'atan',
+ 'atan2',
+ 'ceil',
+ 'cos',
+ 'cosh',
+ 'exp',
+ 'fabs',
+ 'floor',
+ 'frexp',
+ 'ldexp',
+ 'log10',
+ 'modf',
+ 'pow',
+ 'sin',
+ 'sinh',
+ 'sqrt',
+ 'tan',
+ 'tanh',
+ 'erf',
+ 'erfc',
+ 'gamma',
+ 'hypot',
+ 'j0',
+ 'j1',
+ 'jn',
+ 'lgamma',
+ 'y0',
+ 'y1',
+ 'yn',
+ 'isnan',
+ 'acosh',
+ 'asinh',
+ 'atanh',
+ 'cbrt',
+ 'expm1',
+ 'nextafter',
+ 'scalb',
+ 'ilogb',
+ 'log1p',
+ 'logb',
+ 'remainder',
+ 'rint',
+ 'asinteger',
+ 'self',
+ 'detach',
+ 'restart',
+ 'resume',
+ 'continuation',
+ 'home',
+ 'callsite_file',
+ 'callsite_line',
+ 'callsite_col',
+ 'callstack',
+ 'splitthread',
+ 'threadreaddesc',
+ 'givenblock',
+ 'autocollectbuffer',
+ 'calledname',
+ 'methodname',
+ 'invokeuntil',
+ 'invokewhile',
+ 'invokeautocollect',
+ 'asasync',
+ 'append',
+ 'appendchar',
+ 'private_find',
+ 'private_findlast',
+ 'length',
+ 'chardigitvalue',
+ 'private_compare',
+ 'charname',
+ 'chartype',
+ 'decompose',
+ 'normalize',
+ 'digit',
+ 'foldcase',
+ 'private_merge',
+ 'unescape',
+ 'trim',
+ 'titlecase',
+ 'reverse',
+ 'getisocomment',
+ 'getnumericvalue',
+ 'totitle',
+ 'toupper',
+ 'tolower',
+ 'lowercase',
+ 'uppercase',
+ 'isalnum',
+ 'isalpha',
+ 'isbase',
+ 'iscntrl',
+ 'isdigit',
+ 'isxdigit',
+ 'islower',
+ 'isprint',
+ 'isspace',
+ 'istitle',
+ 'ispunct',
+ 'isgraph',
+ 'isblank',
+ 'isualphabetic',
+ 'isulowercase',
+ 'isupper',
+ 'isuuppercase',
+ 'isuwhitespace',
+ 'iswhitespace',
+ 'encodehtml',
+ 'decodehtml',
+ 'encodexml',
+ 'decodexml',
+ 'encodehtmltoxml',
+ 'getpropertyvalue',
+ 'hasbinaryproperty',
+ 'asbytes',
+ 'equals',
+ 'compare',
+ 'comparecodepointorder',
+ 'padleading',
+ 'padtrailing',
+ 'merge',
+ 'split',
+ 'removeleading',
+ 'removetrailing',
+ 'beginswith',
+ 'endswith',
+ 'replace',
+ 'eachwordbreak',
+ 'encodesql92',
+ 'encodesql',
+ 'substring',
+ 'setsize',
+ 'reserve',
+ 'getrange',
+ 'private_setrange',
+ 'importas',
+ 'import8bits',
+ 'import32bits',
+ 'import64bits',
+ 'import16bits',
+ 'importbytes',
+ 'importpointer',
+ 'export8bits',
+ 'export16bits',
+ 'export32bits',
+ 'export64bits',
+ 'exportbytes',
+ 'exportsigned8bits',
+ 'exportsigned16bits',
+ 'exportsigned32bits',
+ 'exportsigned64bits',
+ 'marker',
+ 'swapbytes',
+ 'encodeurl',
+ 'decodeurl',
+ 'encodebase64',
+ 'decodebase64',
+ 'encodeqp',
+ 'decodeqp',
+ 'encodemd5',
+ 'encodehex',
+ 'decodehex',
+ 'detectcharset',
+ 'bestcharset',
+ 'crc',
+ 'importstring',
+ 'setrange',
+ 'exportas',
+ 'exportstring',
+ 'exportpointerbits',
+ 'foreachbyte',
+ 'eachbyte',
+ 'typename',
+ 'returntype',
+ 'restname',
+ 'paramdescs',
+ 'action',
+ 'statement',
+ 'inputcolumns',
+ 'keycolumns',
+ 'returncolumns',
+ 'sortcolumns',
+ 'skiprows',
+ 'maxrows',
+ 'rowsfound',
+ 'statementonly',
+ 'lop',
+ 'databasename',
+ 'tablename',
+ 'schemaname',
+ 'hostid',
+ 'hostdatasource',
+ 'hostname',
+ 'hostport',
+ 'hostusername',
+ 'hostpassword',
+ 'hostschema',
+ 'hosttableencoding',
+ 'hostextra',
+ 'hostisdynamic',
+ 'refobj',
+ 'prepared',
+ 'getset',
+ 'addset',
+ 'numsets',
+ 'addrow',
+ 'addcolumninfo',
+ 'forcedrowid',
+ 'makeinheritedcopy',
+ 'filename',
+ 'expose',
+ 'recover',
+ 'count',
+ 'exchange',
+ 'findindex',
+ 'sort',
+ 'family',
+ 'isvalid',
+ 'isssl',
+ 'open',
+ 'read',
+ 'write',
+ 'ioctl',
+ 'seek',
+ 'mode',
+ 'mtime',
+ 'atime',
+ 'dup',
+ 'dup2',
+ 'fchdir',
+ 'fchown',
+ 'fsync',
+ 'ftruncate',
+ 'fchmod',
+ 'sendfd',
+ 'receivefd',
+ 'readobject',
+ 'tryreadobject',
+ 'writeobject',
+ 'leaveopen',
+ 'rewind',
+ 'tell',
+ 'language',
+ 'script',
+ 'country',
+ 'variant',
+ 'displaylanguage',
+ 'displayscript',
+ 'displaycountry',
+ 'displayvariant',
+ 'displayname',
+ 'basename',
+ 'keywords',
+ 'iso3language',
+ 'iso3country',
+ 'formatas',
+ 'formatnumber',
+ 'parsenumber',
+ 'parseas',
+ 'format',
+ 'parse',
+ 'add',
+ 'roll',
+ 'getattr',
+ 'setattr',
+ 'clear',
+ 'isset',
+ 'settimezone',
+ 'timezone',
+ 'time',
+ 'indaylighttime',
+ 'createdocument',
+ 'parsedocument',
+ 'hasfeature',
+ 'createdocumenttype',
+ 'nodename',
+ 'nodevalue',
+ 'nodetype',
+ 'parentnode',
+ 'firstchild',
+ 'lastchild',
+ 'previoussibling',
+ 'nextsibling',
+ 'ownerdocument',
+ 'namespaceuri',
+ 'prefix',
+ 'localname',
+ 'insertbefore',
+ 'replacechild',
+ 'removechild',
+ 'appendchild',
+ 'clonenode',
+ 'issupported',
+ 'hasattributes',
+ 'extractone',
+ 'transform',
+ 'data',
+ 'substringdata',
+ 'appenddata',
+ 'insertdata',
+ 'deletedata',
+ 'replacedata',
+ 'doctype',
+ 'implementation',
+ 'documentelement',
+ 'createelement',
+ 'createdocumentfragment',
+ 'createtextnode',
+ 'createcomment',
+ 'createcdatasection',
+ 'createprocessinginstruction',
+ 'createattribute',
+ 'createentityreference',
+ 'getelementsbytagname',
+ 'importnode',
+ 'createelementns',
+ 'createattributens',
+ 'getelementsbytagnamens',
+ 'getelementbyid',
+ 'getattribute',
+ 'setattribute',
+ 'removeattribute',
+ 'getattributenode',
+ 'setattributenode',
+ 'removeattributenode',
+ 'getattributens',
+ 'setattributens',
+ 'removeattributens',
+ 'getattributenodens',
+ 'setattributenodens',
+ 'hasattribute',
+ 'hasattributens',
+ 'specified',
+ 'ownerelement',
+ 'splittext',
+ 'notationname',
+ 'publicid',
+ 'systemid',
+ 'target',
+ 'entities',
+ 'notations',
+ 'internalsubset',
+ 'item',
+ 'getnameditem',
+ 'getnameditemns',
+ 'setnameditem',
+ 'setnameditemns',
+ 'removenameditem',
+ 'removenameditemns',
+ 'next',
+ 'readattributevalue',
+ 'attributecount',
+ 'baseuri',
+ 'depth',
+ 'hasvalue',
+ 'isemptyelement',
+ 'xmllang',
+ 'getattributenamespace',
+ 'lookupnamespace',
+ 'movetoattribute',
+ 'movetoattributenamespace',
+ 'movetofirstattribute',
+ 'movetonextattribute',
+ 'movetoelement',
+ 'prepare',
+ 'last_insert_rowid',
+ 'total_changes',
+ 'interrupt',
+ 'errcode',
+ 'errmsg',
+ 'addmathfunctions',
+ 'finalize',
+ 'step',
+ 'bind_blob',
+ 'bind_double',
+ 'bind_int',
+ 'bind_null',
+ 'bind_text',
+ 'bind_parameter_index',
+ 'reset',
+ 'column_count',
+ 'column_decltype',
+ 'column_blob',
+ 'column_double',
+ 'column_int64',
+ 'column_text',
+ 'ismultipart',
+ 'gotfileupload',
+ 'setmaxfilesize',
+ 'getparts',
+ 'trackingid',
+ 'currentfile',
+ 'addtobuffer',
+ 'input',
+ 'replacepattern',
+ 'findpattern',
+ 'ignorecase',
+ 'setinput',
+ 'setreplacepattern',
+ 'setfindpattern',
+ 'setignorecase',
+ 'appendreplacement',
+ 'matches',
+ 'private_replaceall',
+ 'appendtail',
+ 'groupcount',
+ 'matchposition',
+ 'matchesstart',
+ 'private_replacefirst',
+ 'private_split',
+ 'matchstring',
+ 'replaceall',
+ 'replacefirst',
+ 'findall',
+ 'findcount',
+ 'findfirst',
+ 'findsymbols',
+ 'loadlibrary',
+ 'getlibrary',
+ 'f',
+ 'r',
+ 'form',
+ 'gen',
+ 'callfirst',
+ 'key',
+ 'by',
+ 'from',
+ 'to',
+ 'd',
+ 't',
+ 'object',
+ 'inneroncompare',
+ 'members',
+ 'writeid',
+ 'addmember',
+ 'refid',
+ 'index',
+ 'objects',
+ 'tabs',
+ 'trunk',
+ 'trace',
+ 'asxml',
+ 'tabstr',
+ 'toxmlstring',
+ 'idmap',
+ 'readidobjects',
+ 'red',
+ 'root',
+ 'getnode',
+ 'firstnode',
+ 'lastnode',
+ 'nextnode',
+ 'private_rebalanceforremove',
+ 'private_rotateleft',
+ 'private_rotateright',
+ 'private_rebalanceforinsert',
+ 'eachnode',
+ 'foreachnode',
+ 'resolvelinks',
+ 'parentdir',
+ 'aslazystring',
+ 'openread',
+ 'openwrite',
+ 'openwriteonly',
+ 'openappend',
+ 'opentruncate',
+ 'exists',
+ 'modificationtime',
+ 'lastaccesstime',
+ 'modificationdate',
+ 'lastaccessdate',
+ 'delete',
+ 'moveto',
+ 'copyto',
+ 'linkto',
+ 'flush',
+ 'chmod',
+ 'chown',
+ 'isopen',
+ 'position',
+ 'setmarker',
+ 'setposition',
+ 'setmode',
+ 'foreachline',
+ 'lock',
+ 'unlock',
+ 'trylock',
+ 'testlock',
+ 'perms',
+ 'islink',
+ 'isdir',
+ 'realpath',
+ 'openwith',
+ 'create',
+ 'setcwd',
+ 'foreachentry',
+ 'eachpath',
+ 'eachfilepath',
+ 'eachdirpath',
+ 'each',
+ 'eachfile',
+ 'eachdir',
+ 'eachpathrecursive',
+ 'eachfilepathrecursive',
+ 'eachdirpathrecursive',
+ 'eachentry',
+ 'makefullpath',
+ 'annotate',
+ 'blur',
+ 'command',
+ 'composite',
+ 'contrast',
+ 'convert',
+ 'crop',
+ 'execute',
+ 'enhance',
+ 'flipv',
+ 'fliph',
+ 'modulate',
+ 'rotate',
+ 'save',
+ 'scale',
+ 'sharpen',
+ 'addcomment',
+ 'comments',
+ 'describe',
+ 'height',
+ 'pixel',
+ 'resolutionv',
+ 'resolutionh',
+ 'width',
+ 'setcolorspace',
+ 'colorspace',
+ 'debug',
+ 'histogram',
+ 'imgptr',
+ 'appendimagetolist',
+ 'fx',
+ 'applyheatcolors',
+ 'authenticate',
+ 'search',
+ 'searchurl',
+ 'readerror',
+ 'readline',
+ 'setencoding',
+ 'closewrite',
+ 'exitcode',
+ 'getversion',
+ 'findclass',
+ 'throw',
+ 'thrownew',
+ 'exceptionoccurred',
+ 'exceptiondescribe',
+ 'exceptionclear',
+ 'fatalerror',
+ 'newglobalref',
+ 'deleteglobalref',
+ 'deletelocalref',
+ 'issameobject',
+ 'allocobject',
+ 'newobject',
+ 'getobjectclass',
+ 'isinstanceof',
+ 'getmethodid',
+ 'callobjectmethod',
+ 'callbooleanmethod',
+ 'callbytemethod',
+ 'callcharmethod',
+ 'callshortmethod',
+ 'callintmethod',
+ 'calllongmethod',
+ 'callfloatmethod',
+ 'calldoublemethod',
+ 'callvoidmethod',
+ 'callnonvirtualobjectmethod',
+ 'callnonvirtualbooleanmethod',
+ 'callnonvirtualbytemethod',
+ 'callnonvirtualcharmethod',
+ 'callnonvirtualshortmethod',
+ 'callnonvirtualintmethod',
+ 'callnonvirtuallongmethod',
+ 'callnonvirtualfloatmethod',
+ 'callnonvirtualdoublemethod',
+ 'callnonvirtualvoidmethod',
+ 'getfieldid',
+ 'getobjectfield',
+ 'getbooleanfield',
+ 'getbytefield',
+ 'getcharfield',
+ 'getshortfield',
+ 'getintfield',
+ 'getlongfield',
+ 'getfloatfield',
+ 'getdoublefield',
+ 'setobjectfield',
+ 'setbooleanfield',
+ 'setbytefield',
+ 'setcharfield',
+ 'setshortfield',
+ 'setintfield',
+ 'setlongfield',
+ 'setfloatfield',
+ 'setdoublefield',
+ 'getstaticmethodid',
+ 'callstaticobjectmethod',
+ 'callstaticbooleanmethod',
+ 'callstaticbytemethod',
+ 'callstaticcharmethod',
+ 'callstaticshortmethod',
+ 'callstaticintmethod',
+ 'callstaticlongmethod',
+ 'callstaticfloatmethod',
+ 'callstaticdoublemethod',
+ 'callstaticvoidmethod',
+ 'getstaticfieldid',
+ 'getstaticobjectfield',
+ 'getstaticbooleanfield',
+ 'getstaticbytefield',
+ 'getstaticcharfield',
+ 'getstaticshortfield',
+ 'getstaticintfield',
+ 'getstaticlongfield',
+ 'getstaticfloatfield',
+ 'getstaticdoublefield',
+ 'setstaticobjectfield',
+ 'setstaticbooleanfield',
+ 'setstaticbytefield',
+ 'setstaticcharfield',
+ 'setstaticshortfield',
+ 'setstaticintfield',
+ 'setstaticlongfield',
+ 'setstaticfloatfield',
+ 'setstaticdoublefield',
+ 'newstring',
+ 'getstringlength',
+ 'getstringchars',
+ 'getarraylength',
+ 'newobjectarray',
+ 'getobjectarrayelement',
+ 'setobjectarrayelement',
+ 'newbooleanarray',
+ 'newbytearray',
+ 'newchararray',
+ 'newshortarray',
+ 'newintarray',
+ 'newlongarray',
+ 'newfloatarray',
+ 'newdoublearray',
+ 'getbooleanarrayelements',
+ 'getbytearrayelements',
+ 'getchararrayelements',
+ 'getshortarrayelements',
+ 'getintarrayelements',
+ 'getlongarrayelements',
+ 'getfloatarrayelements',
+ 'getdoublearrayelements',
+ 'getbooleanarrayregion',
+ 'getbytearrayregion',
+ 'getchararrayregion',
+ 'getshortarrayregion',
+ 'getintarrayregion',
+ 'getlongarrayregion',
+ 'getfloatarrayregion',
+ 'getdoublearrayregion',
+ 'setbooleanarrayregion',
+ 'setbytearrayregion',
+ 'setchararrayregion',
+ 'setshortarrayregion',
+ 'setintarrayregion',
+ 'setlongarrayregion',
+ 'setfloatarrayregion',
+ 'setdoublearrayregion',
+ 'monitorenter',
+ 'monitorexit',
+ 'fromreflectedmethod',
+ 'fromreflectedfield',
+ 'toreflectedmethod',
+ 'toreflectedfield',
+ 'exceptioncheck',
+ 'dbtablestable',
+ 'dstable',
+ 'dsdbtable',
+ 'dshoststable',
+ 'fieldstable',
+ 'sql',
+ 'adddatasource',
+ 'loaddatasourceinfo',
+ 'loaddatasourcehostinfo',
+ 'getdatasource',
+ 'getdatasourceid',
+ 'getdatasourcename',
+ 'listdatasources',
+ 'listactivedatasources',
+ 'removedatasource',
+ 'listdatasourcehosts',
+ 'listhosts',
+ 'adddatasourcehost',
+ 'getdatasourcehost',
+ 'removedatasourcehost',
+ 'getdatabasehost',
+ 'gethostdatabase',
+ 'listalldatabases',
+ 'listdatasourcedatabases',
+ 'listhostdatabases',
+ 'getdatasourcedatabase',
+ 'getdatasourcedatabasebyid',
+ 'getdatabasebyname',
+ 'getdatabasebyid',
+ 'getdatabasebyalias',
+ 'adddatasourcedatabase',
+ 'removedatasourcedatabase',
+ 'listalltables',
+ 'listdatabasetables',
+ 'getdatabasetable',
+ 'getdatabasetablebyalias',
+ 'getdatabasetablebyid',
+ 'gettablebyid',
+ 'adddatabasetable',
+ 'removedatabasetable',
+ 'removefield',
+ 'maybevalue',
+ 'getuniquealiasname',
+ 'makecolumnlist',
+ 'makecolumnmap',
+ 'datasourcecolumns',
+ 'datasourcemap',
+ 'hostcolumns',
+ 'hostmap',
+ 'hostcolumns2',
+ 'hostmap2',
+ 'databasecolumns',
+ 'databasemap',
+ 'tablecolumns',
+ 'tablemap',
+ 'databasecolumnnames',
+ 'hostcolumnnames',
+ 'hostcolumnnames2',
+ 'datasourcecolumnnames',
+ 'tablecolumnnames',
+ 'bindcount',
+ 'db',
+ 'tables',
+ 'hastable',
+ 'tablehascolumn',
+ 'eachrow',
+ 'bindparam',
+ 'foreachrow',
+ 'executelazy',
+ 'executenow',
+ 'lastinsertid',
+ 'table',
+ 'bindone',
+ 'src',
+ 'stat',
+ 'colmap',
+ 'getcolumn',
+ 'locals',
+ 'getcolumns',
+ 'bodybytes',
+ 'headerbytes',
+ 'ready',
+ 'token',
+ 'url',
+ 'done',
+ 'header',
+ 'result',
+ 'statuscode',
+ 'raw',
+ 'version',
+ 'perform',
+ 'performonce',
+ 'asraw',
+ 'rawdiff',
+ 'getformat',
+ 'setformat',
+ 'subtract',
+ 'gmt',
+ 'dst',
+ 'era',
+ 'year',
+ 'month',
+ 'week',
+ 'weekofyear',
+ 'weekofmonth',
+ 'day',
+ 'dayofmonth',
+ 'dayofyear',
+ 'dayofweek',
+ 'dayofweekinmonth',
+ 'ampm',
+ 'am',
+ 'pm',
+ 'hour',
+ 'hourofday',
+ 'hourofampm',
+ 'minute',
+ 'millisecond',
+ 'zoneoffset',
+ 'dstoffset',
+ 'yearwoy',
+ 'dowlocal',
+ 'extendedyear',
+ 'julianday',
+ 'millisecondsinday',
+ 'firstdayofweek',
+ 'fixformat',
+ 'minutesbetween',
+ 'hoursbetween',
+ 'secondsbetween',
+ 'daysbetween',
+ 'businessdaysbetween',
+ 'pdifference',
+ 'getfield',
+ 's',
+ 'linediffers',
+ 'sourceline',
+ 'sourcecolumn',
+ 'continuationpacket',
+ 'continuationpoint',
+ 'continuationstack',
+ 'features',
+ 'lastpoint',
+ 'net',
+ 'running',
+ 'source',
+ 'run',
+ 'pathtouri',
+ 'sendpacket',
+ 'readpacket',
+ 'handlefeatureset',
+ 'handlefeatureget',
+ 'handlestdin',
+ 'handlestdout',
+ 'handlestderr',
+ 'isfirststep',
+ 'handlecontinuation',
+ 'ensurestopped',
+ 'handlestackget',
+ 'handlecontextnames',
+ 'formatcontextelements',
+ 'formatcontextelement',
+ 'bptypetostr',
+ 'bptoxml',
+ 'handlebreakpointlist',
+ 'handlebreakpointget',
+ 'handlebreakpointremove',
+ 'condtoint',
+ 'inttocond',
+ 'handlebreakpointupdate',
+ 'handlebreakpointset',
+ 'handlecontextget',
+ 'handlesource',
+ 'error',
+ 'stoprunning',
+ 'pollide',
+ 'polldbg',
+ 'runonce',
+ 'arguments',
+ 'argumentvalue',
+ 'end',
+ 'start',
+ 'days',
+ 'foreachday',
+ 'padzero',
+ 'actionparams',
+ 'capi',
+ 'doclose',
+ 'isnothing',
+ 'named',
+ 'workinginputcolumns',
+ 'workingkeycolumns',
+ 'workingreturncolumns',
+ 'workingsortcolumns',
+ 'workingkeyfield_name',
+ 'scanfordatasource',
+ 'configureds',
+ 'configuredskeys',
+ 'scrubkeywords',
+ 'closeprepared',
+ 'filterinputcolumn',
+ 'prev',
+ 'head',
+ 'removenode',
+ 'listnode',
+ 'accept',
+ 'connect',
+ 'foreachaccept',
+ 'writeobjecttcp',
+ 'readobjecttcp',
+ 'begintls',
+ 'endtls',
+ 'loadcerts',
+ 'sslerrfail',
+ 'fromname',
+ 'fromport',
+ 'env',
+ 'getclass',
+ 'jobjectisa',
+ 'new',
+ 'callvoid',
+ 'callint',
+ 'callfloat',
+ 'callboolean',
+ 'callobject',
+ 'callstring',
+ 'callstaticobject',
+ 'callstaticstring',
+ 'callstaticint',
+ 'callstaticboolean',
+ 'chk',
+ 'makecolor',
+ 'realdoc',
+ 'addbarcode',
+ 'addchapter',
+ 'addcheckbox',
+ 'addcombobox',
+ 'addhiddenfield',
+ 'addimage',
+ 'addlist',
+ 'addpage',
+ 'addparagraph',
+ 'addpasswordfield',
+ 'addphrase',
+ 'addradiobutton',
+ 'addradiogroup',
+ 'addresetbutton',
+ 'addsection',
+ 'addselectlist',
+ 'addsubmitbutton',
+ 'addtable',
+ 'addtextarea',
+ 'addtextfield',
+ 'addtext',
+ 'arc',
+ 'circle',
+ 'closepath',
+ 'curveto',
+ 'drawtext',
+ 'getcolor',
+ 'getheader',
+ 'getheaders',
+ 'getmargins',
+ 'getpagenumber',
+ 'getsize',
+ 'insertpage',
+ 'line',
+ 'rect',
+ 'setcolor',
+ 'setfont',
+ 'setlinewidth',
+ 'setpagenumber',
+ 'conventionaltop',
+ 'lowagiefont',
+ 'jcolor',
+ 'jbarcode',
+ 'generatechecksum',
+ 'getbarheight',
+ 'getbarmultiplier',
+ 'getbarwidth',
+ 'getbaseline',
+ 'getcode',
+ 'getfont',
+ 'gettextalignment',
+ 'gettextsize',
+ 'setbarheight',
+ 'setbarmultiplier',
+ 'setbarwidth',
+ 'setbaseline',
+ 'setcode',
+ 'setgeneratechecksum',
+ 'setshowchecksum',
+ 'settextalignment',
+ 'settextsize',
+ 'showchecksum',
+ 'showcode39startstop',
+ 'showeanguardbars',
+ 'jfont',
+ 'getencoding',
+ 'getface',
+ 'getfullfontname',
+ 'getpsfontname',
+ 'getsupportedencodings',
+ 'istruetype',
+ 'getstyle',
+ 'getbold',
+ 'getitalic',
+ 'getunderline',
+ 'setface',
+ 'setunderline',
+ 'setbold',
+ 'setitalic',
+ 'textwidth',
+ 'jimage',
+ 'ontop',
+ 'jlist',
+ 'jread',
+ 'addjavascript',
+ 'exportfdf',
+ 'extractimage',
+ 'fieldnames',
+ 'fieldposition',
+ 'fieldtype',
+ 'fieldvalue',
+ 'gettext',
+ 'importfdf',
+ 'javascript',
+ 'pagecount',
+ 'pagerotation',
+ 'pagesize',
+ 'setfieldvalue',
+ 'setpagerange',
+ 'jtable',
+ 'getabswidth',
+ 'getalignment',
+ 'getbordercolor',
+ 'getborderwidth',
+ 'getcolumncount',
+ 'getpadding',
+ 'getrowcount',
+ 'getspacing',
+ 'setalignment',
+ 'setbordercolor',
+ 'setborderwidth',
+ 'setpadding',
+ 'setspacing',
+ 'jtext',
+ 'element',
+ 'foreachspool',
+ 'unspool',
+ 'err',
+ 'in',
+ 'out',
+ 'pid',
+ 'wait',
+ 'testexitcode',
+ 'maxworkers',
+ 'tasks',
+ 'workers',
+ 'startone',
+ 'addtask',
+ 'waitforcompletion',
+ 'scanworkers',
+ 'scantasks',
+ 'z',
+ 'addfile',
+ 'adddir',
+ 'adddirpath',
+ 'foreachfile',
+ 'foreachfilename',
+ 'eachfilename',
+ 'filenames',
+ 'getfile',
+ 'meta',
+ 'criteria',
+ 'valid',
+ 'lazyvalue',
+ 'qdcount',
+ 'qdarray',
+ 'answer',
+ 'bitformat',
+ 'consume_rdata',
+ 'consume_string',
+ 'consume_label',
+ 'consume_domain',
+ 'consume_message',
+ 'errors',
+ 'warnings',
+ 'addwarning',
+ 'adderror',
+ 'renderbytes',
+ 'renderstring',
+ 'components',
+ 'addcomponents',
+ 'body',
+ 'renderdocumentbytes',
+ 'contenttype',
+ 'mime_boundary',
+ 'mime_contenttype',
+ 'mime_hdrs',
+ 'addtextpart',
+ 'addhtmlpart',
+ 'addattachment',
+ 'addpart',
+ 'recipients',
+ 'pop_capa',
+ 'pop_debug',
+ 'pop_err',
+ 'pop_get',
+ 'pop_ids',
+ 'pop_index',
+ 'pop_log',
+ 'pop_mode',
+ 'pop_net',
+ 'pop_res',
+ 'pop_server',
+ 'pop_timeout',
+ 'pop_token',
+ 'pop_cmd',
+ 'user',
+ 'pass',
+ 'apop',
+ 'auth',
+ 'quit',
+ 'rset',
+ 'uidl',
+ 'retr',
+ 'dele',
+ 'noop',
+ 'capa',
+ 'stls',
+ 'authorize',
+ 'retrieve',
+ 'headers',
+ 'uniqueid',
+ 'capabilities',
+ 'cancel',
+ 'results',
+ 'lasterror',
+ 'parse_body',
+ 'parse_boundary',
+ 'parse_charset',
+ 'parse_content_disposition',
+ 'parse_content_transfer_encoding',
+ 'parse_content_type',
+ 'parse_hdrs',
+ 'parse_mode',
+ 'parse_msg',
+ 'parse_parts',
+ 'parse_rawhdrs',
+ 'rawheaders',
+ 'content_transfer_encoding',
+ 'content_disposition',
+ 'boundary',
+ 'charset',
+ 'cc',
+ 'subject',
+ 'bcc',
+ 'pause',
+ 'continue',
+ 'touch',
+ 'refresh',
+ 'status',
+ 'queue_status',
+ 'active_tick',
+ 'getprefs',
+ 'initialize',
+ 'queue_maintenance',
+ 'queue_messages',
+ 'content',
+ 'rectype',
+ 'requestid',
+ 'cachedappprefix',
+ 'cachedroot',
+ 'cookiesary',
+ 'fcgireq',
+ 'fileuploadsary',
+ 'headersmap',
+ 'httpauthorization',
+ 'postparamsary',
+ 'queryparamsary',
+ 'documentroot',
+ 'appprefix',
+ 'httpconnection',
+ 'httpcookie',
+ 'httphost',
+ 'httpuseragent',
+ 'httpcachecontrol',
+ 'httpreferer',
+ 'httpreferrer',
+ 'contentlength',
+ 'pathtranslated',
+ 'remoteaddr',
+ 'remoteport',
+ 'requestmethod',
+ 'requesturi',
+ 'scriptfilename',
+ 'scriptname',
+ 'scripturi',
+ 'scripturl',
+ 'serveraddr',
+ 'serveradmin',
+ 'servername',
+ 'serverport',
+ 'serverprotocol',
+ 'serversignature',
+ 'serversoftware',
+ 'pathinfo',
+ 'gatewayinterface',
+ 'httpaccept',
+ 'httpacceptencoding',
+ 'httpacceptlanguage',
+ 'ishttps',
+ 'cookies',
+ 'rawheader',
+ 'queryparam',
+ 'postparam',
+ 'param',
+ 'queryparams',
+ 'querystring',
+ 'postparams',
+ 'poststring',
+ 'params',
+ 'fileuploads',
+ 'isxhr',
+ 'reqid',
+ 'statusmsg',
+ 'cap',
+ 'n',
+ 'proxying',
+ 'stop',
+ 'printsimplemsg',
+ 'handleevalexpired',
+ 'handlenormalconnection',
+ 'handledevconnection',
+ 'splittoprivatedev',
+ 'getmode',
+ 'novaluelists',
+ 'makeurl',
+ 'choosecolumntype',
+ 'getdatabasetablepart',
+ 'getlcapitype',
+ 'buildquery',
+ 'getsortfieldspart',
+ 'endjs',
+ 'addjs',
+ 'addjstext',
+ 'addendjs',
+ 'addendjstext',
+ 'addcss',
+ 'addfavicon',
+ 'attrs',
+ 'dtdid',
+ 'xhtml',
+ 'code',
+ 'msg',
+ 'scripttype',
+ 'defer',
+ 'httpequiv',
+ 'scheme',
+ 'href',
+ 'hreflang',
+ 'linktype',
+ 'rel',
+ 'rev',
+ 'media',
+ 'declare',
+ 'classid',
+ 'codebase',
+ 'objecttype',
+ 'codetype',
+ 'archive',
+ 'standby',
+ 'usemap',
+ 'tabindex',
+ 'styletype',
+ 'method',
+ 'enctype',
+ 'accept_charset',
+ 'onsubmit',
+ 'onreset',
+ 'accesskey',
+ 'inputtype',
+ 'maxlength',
+ 'for',
+ 'label',
+ 'multiple',
+ 'buff',
+ 'wroteheaders',
+ 'pullrequest',
+ 'pullrawpost',
+ 'shouldclose',
+ 'pullurlpost',
+ 'pullmimepost',
+ 'pullhttpheader',
+ 'pulloneheaderline',
+ 'parseoneheaderline',
+ 'addoneheaderline',
+ 'safeexport8bits',
+ 'writeheader',
+ 'connhandler',
+ 'port',
+ 'connectionhandler',
+ 'acceptconnections',
+ 'gotconnection',
+ 'failnoconnectionhandler',
+ 'splitconnection',
+ 'scriptextensions',
+ 'sendfile',
+ 'probemimetype',
+ 'inits',
+ 'installs',
+ 'rootmap',
+ 'install',
+ 'getappsource',
+ 'preflight',
+ 'splituppath',
+ 'handleresource',
+ 'handledefinitionhead',
+ 'handledefinitionbody',
+ 'handledefinitionresource',
+ 'execinstalls',
+ 'execinits',
+ 'payload',
+ 'eligiblepath',
+ 'eligiblepaths',
+ 'expiresminutes',
+ 'moddatestr',
+ 'zips',
+ 'addzip',
+ 'getzipfilebytes',
+ 'resourcedata',
+ 'zipfile',
+ 'zipname',
+ 'zipfilename',
+ 'rawinvokable',
+ 'route',
+ 'setdestination',
+ 'encodepassword',
+ 'checkuser',
+ 'needinitialization',
+ 'adduser',
+ 'getuserid',
+ 'getuser',
+ 'getuserbykey',
+ 'removeuser',
+ 'listusers',
+ 'listusersbygroup',
+ 'countusersbygroup',
+ 'addgroup',
+ 'updategroup',
+ 'getgroupid',
+ 'getgroup',
+ 'removegroup',
+ 'listgroups',
+ 'listgroupsbyuser',
+ 'addusertogroup',
+ 'removeuserfromgroup',
+ 'removeuserfromallgroups',
+ 'md5hex',
+ 'usercolumns',
+ 'groupcolumns',
+ 'expireminutes',
+ 'lasttouched',
+ 'hasexpired',
+ 'idealinmemory',
+ 'maxinmemory',
+ 'nextprune',
+ 'nextprunedelta',
+ 'sessionsdump',
+ 'prune',
+ 'entry',
+ 'host',
+ 'tb',
+ 'setdefaultstorage',
+ 'getdefaultstorage',
+ 'onconvert',
+ 'send',
+ 'addsubnode',
+ 'removesubnode',
+ 'nodeforpath',
+ 'jsonfornode',
+ 'appmessage',
+ 'appstatus',
+ 'atends',
+ 'chunked',
+ 'cookiesarray',
+ 'didinclude',
+ 'errstack',
+ 'headersarray',
+ 'includestack',
+ 'outputencoding',
+ 'sessionsmap',
+ 'htmlizestacktrace',
+ 'respond',
+ 'sendresponse',
+ 'sendchunk',
+ 'makecookieyumyum',
+ 'includeonce',
+ 'includelibrary',
+ 'includelibraryonce',
+ 'includebytes',
+ 'addatend',
+ 'setcookie',
+ 'addheader',
+ 'replaceheader',
+ 'setheaders',
+ 'rawcontent',
+ 'redirectto',
+ 'htmlizestacktracelink',
+ 'doatbegins',
+ 'handlelassoappcontent',
+ 'handlelassoappresponse',
+ 'domainbody',
+ 'establisherrorstate',
+ 'tryfinderrorfile',
+ 'doatends',
+ 'dosessions',
+ 'makenonrelative',
+ 'pushinclude',
+ 'popinclude',
+ 'findinclude',
+ 'checkdebugging',
+ 'splitdebuggingthread',
+ 'matchtriggers',
+ 'rules',
+ 'shouldabort',
+ 'gettrigger',
+ 'trigger',
+ 'rule'
+ ],
+ 'Lasso 8 Tags': [
+ '__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',
+ 'abort',
+ 'accept',
+ 'action_addinfo',
+ 'action_addrecord',
+ 'action_param',
+ 'action_params',
+ 'action_setfoundcount',
+ 'action_setrecordid',
+ 'action_settotalcount',
+ 'action_statement',
+ 'add',
+ 'addattachment',
+ 'addattribute',
+ 'addbarcode',
+ 'addchapter',
+ 'addcheckbox',
+ 'addchild',
+ 'addcombobox',
+ 'addcomment',
+ 'addcontent',
+ 'addhiddenfield',
+ 'addhtmlpart',
+ 'addimage',
+ 'addjavascript',
+ 'addlist',
+ 'addnamespace',
+ 'addnextsibling',
+ 'addpage',
+ 'addparagraph',
+ 'addparenttype',
+ 'addpart',
+ 'addpasswordfield',
+ 'addphrase',
+ 'addprevsibling',
+ 'addradiobutton',
+ 'addradiogroup',
+ 'addresetbutton',
+ 'addsection',
+ 'addselectlist',
+ 'addsibling',
+ 'addsubmitbutton',
+ 'addtable',
+ 'addtext',
+ 'addtextarea',
+ 'addtextfield',
+ 'addtextpart',
+ 'admin_allowedfileroots',
+ 'admin_changeuser',
+ 'admin_createuser',
+ 'admin_currentgroups',
+ 'admin_currentuserid',
+ 'admin_currentusername',
+ 'admin_getpref',
+ 'admin_groupassignuser',
+ 'admin_grouplistusers',
+ 'admin_groupremoveuser',
+ 'admin_lassoservicepath',
+ 'admin_listgroups',
+ 'admin_refreshlicensing',
+ 'admin_refreshsecurity',
+ 'admin_reloaddatasource',
+ 'admin_removepref',
+ 'admin_setpref',
+ 'admin_userexists',
+ 'admin_userlistgroups',
+ 'alarms',
+ 'all',
+ 'and',
+ 'annotate',
+ 'answer',
+ 'append',
+ 'appendreplacement',
+ 'appendtail',
+ 'arc',
+ 'array',
+ 'array_iterator',
+ 'asasync',
+ 'astype',
+ 'atbegin',
+ 'atbottom',
+ 'atend',
+ 'atfarleft',
+ 'atfarright',
+ 'attop',
+ 'attributecount',
+ 'attributes',
+ 'auth',
+ 'auth_admin',
+ 'auth_auth',
+ 'auth_custom',
+ 'auth_group',
+ 'auth_prompt',
+ 'auth_user',
+ 'authenticate',
+ 'authorize',
+ 'backward',
+ 'base64',
+ 'baseuri',
+ 'bcc',
+ 'bean',
+ 'beanproperties',
+ 'beginswith',
+ 'bigint',
+ 'bind',
+ 'bitand',
+ 'bitclear',
+ 'bitflip',
+ 'bitformat',
+ 'bitnot',
+ 'bitor',
+ 'bitset',
+ 'bitshiftleft',
+ 'bitshiftright',
+ 'bittest',
+ 'bitxor',
+ 'blur',
+ 'body',
+ 'bom_utf16be',
+ 'bom_utf16le',
+ 'bom_utf32be',
+ 'bom_utf32le',
+ 'bom_utf8',
+ 'boolean',
+ 'boundary',
+ 'bw',
+ 'bytes',
+ 'cache',
+ 'cache_delete',
+ 'cache_empty',
+ 'cache_exists',
+ 'cache_fetch',
+ 'cache_internal',
+ 'cache_maintenance',
+ 'cache_object',
+ 'cache_preferences',
+ 'cache_store',
+ 'call',
+ 'cancel',
+ 'capabilities',
+ 'case',
+ 'cc',
+ 'chardigitvalue',
+ 'charname',
+ 'charset',
+ 'chartfx',
+ 'chartfx_records',
+ 'chartfx_serve',
+ 'chartype',
+ 'checked',
+ 'children',
+ 'choice_list',
+ 'choice_listitem',
+ 'choicelistitem',
+ 'cipher_decrypt',
+ 'cipher_digest',
+ 'cipher_encrypt',
+ 'cipher_hmac',
+ 'cipher_keylength',
+ 'cipher_list',
+ 'circle',
+ 'click_text',
+ 'client_addr',
+ 'client_address',
+ 'client_authorization',
+ 'client_browser',
+ 'client_contentlength',
+ 'client_contenttype',
+ 'client_cookielist',
+ 'client_cookies',
+ 'client_encoding',
+ 'client_formmethod',
+ 'client_getargs',
+ 'client_getparams',
+ 'client_headers',
+ 'client_ip',
+ 'client_ipfrominteger',
+ 'client_iptointeger',
+ 'client_password',
+ 'client_postargs',
+ 'client_postparams',
+ 'client_type',
+ 'client_url',
+ 'client_username',
+ 'close',
+ 'closepath',
+ 'closewrite',
+ 'cn',
+ 'code',
+ 'colorspace',
+ 'column',
+ 'column_name',
+ 'column_names',
+ 'command',
+ 'comments',
+ 'compare',
+ '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',
+ 'comparecodepointorder',
+ 'compile',
+ 'compiler_removecacheddoc',
+ 'compiler_setdefaultparserflags',
+ 'composite',
+ 'compress',
+ 'connect',
+ 'contains',
+ 'content_body',
+ 'content_disposition',
+ 'content_encoding',
+ 'content_header',
+ 'content_transfer_encoding',
+ 'content_type',
+ 'contents',
+ 'contrast',
+ 'convert',
+ 'cookie',
+ 'cookie_set',
+ 'crop',
+ 'curl_ftp_getfile',
+ 'curl_ftp_getlisting',
+ 'curl_ftp_putfile',
+ 'curl_include_url',
+ 'currency',
+ 'curveto',
+ 'data',
+ 'database_changecolumn',
+ 'database_changefield',
+ 'database_createcolumn',
+ 'database_createfield',
+ 'database_createtable',
+ 'database_fmcontainer',
+ 'database_hostinfo',
+ 'database_inline',
+ 'database_name',
+ 'database_nameitem',
+ 'database_names',
+ 'database_realname',
+ 'database_removecolumn',
+ 'database_removefield',
+ 'database_removetable',
+ 'database_repeating',
+ 'database_repeating_valueitem',
+ 'database_repeatingvalueitem',
+ 'database_schemanameitem',
+ 'database_schemanames',
+ 'database_tablecolumn',
+ 'database_tablenameitem',
+ 'database_tablenames',
+ 'datasource_name',
+ 'datasource_register',
+ 'date',
+ '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',
+ 'day',
+ 'daylights',
+ 'dayofweek',
+ 'dayofyear',
+ 'db_layoutnameitem',
+ 'db_layoutnames',
+ 'db_nameitem',
+ 'db_names',
+ 'db_tablenameitem',
+ 'db_tablenames',
+ 'dbi_column_names',
+ 'dbi_field_names',
+ 'decimal',
+ 'decimal_setglobaldefaultprecision',
+ 'decode_base64',
+ 'decode_bheader',
+ 'decode_hex',
+ 'decode_html',
+ 'decode_json',
+ 'decode_qheader',
+ 'decode_quotedprintable',
+ 'decode_quotedprintablebytes',
+ 'decode_url',
+ 'decode_xml',
+ 'decompress',
+ 'decrement',
+ 'decrypt_blowfish',
+ 'decrypt_blowfish2',
+ 'default',
+ 'define_atbegin',
+ 'define_atend',
+ 'define_constant',
+ 'define_prototype',
+ 'define_tag',
+ 'define_tagp',
+ 'define_type',
+ 'define_typep',
+ 'delete',
+ 'depth',
+ 'describe',
+ 'description',
+ 'deserialize',
+ 'detach',
+ 'detachreference',
+ 'difference',
+ 'digit',
+ 'directory_directorynameitem',
+ 'directory_lister',
+ 'directory_nameitem',
+ 'directorynameitem',
+ 'dns_default',
+ 'dns_lookup',
+ 'dns_response',
+ 'document',
+ 'down',
+ 'drawtext',
+ 'dst',
+ 'dump',
+ 'duration',
+ 'else',
+ 'email_batch',
+ 'email_compose',
+ 'email_digestchallenge',
+ 'email_digestresponse',
+ 'email_extract',
+ 'email_findemails',
+ 'email_immediate',
+ 'email_merge',
+ 'email_mxerror',
+ 'email_mxlookup',
+ 'email_parse',
+ 'email_pop',
+ 'email_queue',
+ 'email_result',
+ 'email_safeemail',
+ 'email_send',
+ 'email_smtp',
+ 'email_status',
+ 'email_token',
+ 'email_translatebreakstocrlf',
+ 'encode_base64',
+ 'encode_bheader',
+ 'encode_break',
+ 'encode_breaks',
+ 'encode_crc32',
+ 'encode_hex',
+ 'encode_html',
+ 'encode_htmltoxml',
+ 'encode_json',
+ 'encode_qheader',
+ 'encode_quotedprintable',
+ 'encode_quotedprintablebytes',
+ 'encode_set',
+ 'encode_smart',
+ 'encode_sql',
+ 'encode_sql92',
+ 'encode_stricturl',
+ 'encode_url',
+ 'encode_xml',
+ 'encrypt_blowfish',
+ 'encrypt_blowfish2',
+ 'encrypt_crammd5',
+ 'encrypt_hmac',
+ 'encrypt_md5',
+ 'endswith',
+ 'enhance',
+ 'eq',
+ 'equals',
+ 'error_adderror',
+ 'error_code',
+ 'error_code_aborted',
+ 'error_code_assert',
+ 'error_code_bof',
+ 'error_code_connectioninvalid',
+ 'error_code_couldnotclosefile',
+ 'error_code_couldnotcreateoropenfile',
+ 'error_code_couldnotdeletefile',
+ 'error_code_couldnotdisposememory',
+ 'error_code_couldnotlockmemory',
+ 'error_code_couldnotreadfromfile',
+ 'error_code_couldnotunlockmemory',
+ 'error_code_couldnotwritetofile',
+ 'error_code_criterianotmet',
+ 'error_code_datasourceerror',
+ 'error_code_directoryfull',
+ 'error_code_diskfull',
+ 'error_code_dividebyzero',
+ 'error_code_eof',
+ 'error_code_failure',
+ 'error_code_fieldrestriction',
+ 'error_code_file',
+ 'error_code_filealreadyexists',
+ 'error_code_filecorrupt',
+ 'error_code_fileinvalid',
+ 'error_code_fileinvalidaccessmode',
+ 'error_code_fileisclosed',
+ 'error_code_fileisopen',
+ 'error_code_filelocked',
+ 'error_code_filenotfound',
+ 'error_code_fileunlocked',
+ 'error_code_httpfilenotfound',
+ 'error_code_illegalinstruction',
+ 'error_code_illegaluseoffrozeninstance',
+ 'error_code_invaliddatabase',
+ 'error_code_invalidfilename',
+ 'error_code_invalidmemoryobject',
+ 'error_code_invalidparameter',
+ 'error_code_invalidpassword',
+ 'error_code_invalidpathname',
+ 'error_code_invalidusername',
+ 'error_code_ioerror',
+ 'error_code_loopaborted',
+ 'error_code_memory',
+ 'error_code_network',
+ 'error_code_nilpointer',
+ 'error_code_noerr',
+ 'error_code_nopermission',
+ 'error_code_outofmemory',
+ 'error_code_outofstackspace',
+ 'error_code_overflow',
+ 'error_code_postconditionfailed',
+ 'error_code_preconditionfailed',
+ 'error_code_resnotfound',
+ 'error_code_resource',
+ 'error_code_streamreaderror',
+ 'error_code_streamwriteerror',
+ 'error_code_syntaxerror',
+ 'error_code_tagnotfound',
+ 'error_code_unknownerror',
+ 'error_code_varnotfound',
+ 'error_code_volumedoesnotexist',
+ 'error_code_webactionnotsupported',
+ 'error_code_webadderror',
+ 'error_code_webdeleteerror',
+ 'error_code_webmodulenotfound',
+ 'error_code_webnosuchobject',
+ 'error_code_webrepeatingrelatedfield',
+ 'error_code_webrequiredfieldmissing',
+ 'error_code_webtimeout',
+ 'error_code_webupdateerror',
+ 'error_columnrestriction',
+ 'error_currenterror',
+ 'error_databaseconnectionunavailable',
+ 'error_databasetimeout',
+ 'error_deleteerror',
+ 'error_fieldrestriction',
+ 'error_filenotfound',
+ 'error_invaliddatabase',
+ 'error_invalidpassword',
+ 'error_invalidusername',
+ 'error_modulenotfound',
+ 'error_msg',
+ 'error_msg_aborted',
+ 'error_msg_assert',
+ 'error_msg_bof',
+ 'error_msg_connectioninvalid',
+ 'error_msg_couldnotclosefile',
+ 'error_msg_couldnotcreateoropenfile',
+ 'error_msg_couldnotdeletefile',
+ 'error_msg_couldnotdisposememory',
+ 'error_msg_couldnotlockmemory',
+ 'error_msg_couldnotreadfromfile',
+ 'error_msg_couldnotunlockmemory',
+ 'error_msg_couldnotwritetofile',
+ 'error_msg_criterianotmet',
+ 'error_msg_datasourceerror',
+ 'error_msg_directoryfull',
+ 'error_msg_diskfull',
+ 'error_msg_dividebyzero',
+ 'error_msg_eof',
+ 'error_msg_failure',
+ 'error_msg_fieldrestriction',
+ 'error_msg_file',
+ 'error_msg_filealreadyexists',
+ 'error_msg_filecorrupt',
+ 'error_msg_fileinvalid',
+ 'error_msg_fileinvalidaccessmode',
+ 'error_msg_fileisclosed',
+ 'error_msg_fileisopen',
+ 'error_msg_filelocked',
+ 'error_msg_filenotfound',
+ 'error_msg_fileunlocked',
+ 'error_msg_httpfilenotfound',
+ 'error_msg_illegalinstruction',
+ 'error_msg_illegaluseoffrozeninstance',
+ 'error_msg_invaliddatabase',
+ 'error_msg_invalidfilename',
+ 'error_msg_invalidmemoryobject',
+ 'error_msg_invalidparameter',
+ 'error_msg_invalidpassword',
+ 'error_msg_invalidpathname',
+ 'error_msg_invalidusername',
+ 'error_msg_ioerror',
+ 'error_msg_loopaborted',
+ 'error_msg_memory',
+ 'error_msg_network',
+ 'error_msg_nilpointer',
+ 'error_msg_noerr',
+ 'error_msg_nopermission',
+ 'error_msg_outofmemory',
+ 'error_msg_outofstackspace',
+ 'error_msg_overflow',
+ 'error_msg_postconditionfailed',
+ 'error_msg_preconditionfailed',
+ 'error_msg_resnotfound',
+ 'error_msg_resource',
+ 'error_msg_streamreaderror',
+ 'error_msg_streamwriteerror',
+ 'error_msg_syntaxerror',
+ 'error_msg_tagnotfound',
+ 'error_msg_unknownerror',
+ 'error_msg_varnotfound',
+ 'error_msg_volumedoesnotexist',
+ 'error_msg_webactionnotsupported',
+ 'error_msg_webadderror',
+ 'error_msg_webdeleteerror',
+ 'error_msg_webmodulenotfound',
+ 'error_msg_webnosuchobject',
+ 'error_msg_webrepeatingrelatedfield',
+ 'error_msg_webrequiredfieldmissing',
+ 'error_msg_webtimeout',
+ 'error_msg_webupdateerror',
+ 'error_noerror',
+ 'error_nopermission',
+ 'error_norecordsfound',
+ 'error_outofmemory',
+ 'error_pop',
+ 'error_push',
+ 'error_reqcolumnmissing',
+ 'error_reqfieldmissing',
+ 'error_requiredcolumnmissing',
+ 'error_requiredfieldmissing',
+ 'error_reset',
+ 'error_seterrorcode',
+ 'error_seterrormessage',
+ 'error_updateerror',
+ 'errors',
+ 'euro',
+ 'eval',
+ 'event_schedule',
+ 'events',
+ 'ew',
+ 'execute',
+ 'export16bits',
+ 'export32bits',
+ 'export64bits',
+ 'export8bits',
+ 'exportfdf',
+ 'exportstring',
+ 'extract',
+ 'extractone',
+ 'fail',
+ 'fail_if',
+ 'false',
+ 'field',
+ 'field_name',
+ 'field_names',
+ 'fieldnames',
+ 'fieldtype',
+ 'fieldvalue',
+ 'file',
+ '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_modechar',
+ 'file_modeline',
+ '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',
+ 'find_soap_ops',
+ 'findindex',
+ 'findnamespace',
+ 'findnamespacebyhref',
+ 'findpattern',
+ 'findposition',
+ 'first',
+ 'firstchild',
+ 'fliph',
+ 'flipv',
+ 'flush',
+ 'foldcase',
+ 'foreach',
+ 'form_param',
+ 'format',
+ 'forward',
+ 'found_count',
+ 'freebusies',
+ 'freezetype',
+ 'freezevalue',
+ 'from',
+ 'ft',
+ 'ftp_getfile',
+ 'ftp_getlisting',
+ 'ftp_putfile',
+ 'full',
+ 'fulltype',
+ 'generatechecksum',
+ 'get',
+ 'getabswidth',
+ 'getalignment',
+ 'getattribute',
+ 'getattributenamespace',
+ 'getbarheight',
+ 'getbarmultiplier',
+ 'getbarwidth',
+ 'getbaseline',
+ 'getbordercolor',
+ 'getborderwidth',
+ 'getcode',
+ 'getcolor',
+ 'getcolumncount',
+ 'getencoding',
+ 'getface',
+ 'getfont',
+ 'getformat',
+ 'getfullfontname',
+ 'getheaders',
+ 'getmargins',
+ 'getmethod',
+ 'getnumericvalue',
+ 'getpadding',
+ 'getpagenumber',
+ 'getparams',
+ 'getproperty',
+ 'getpsfontname',
+ 'getrange',
+ 'getrowcount',
+ 'getsize',
+ 'getspacing',
+ 'getsupportedencodings',
+ 'gettextalignment',
+ 'gettextsize',
+ 'gettype',
+ 'global',
+ 'global_defined',
+ 'global_remove',
+ 'global_reset',
+ 'globals',
+ 'gmt',
+ 'groupcount',
+ 'gt',
+ 'gte',
+ 'handle',
+ 'handle_error',
+ 'hasattribute',
+ 'haschildren',
+ 'hasvalue',
+ 'header',
+ 'headers',
+ 'height',
+ 'histogram',
+ 'hosttonet16',
+ 'hosttonet32',
+ 'hour',
+ 'html_comment',
+ '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',
+ 'id',
+ 'if',
+ 'if_empty',
+ 'if_false',
+ 'if_null',
+ 'if_true',
+ 'ignorecase',
+ 'image',
+ 'image_url',
+ 'img',
+ 'import16bits',
+ 'import32bits',
+ 'import64bits',
+ 'import8bits',
+ 'importfdf',
+ 'importstring',
+ 'include',
+ 'include_cgi',
+ 'include_currentpath',
+ 'include_once',
+ 'include_raw',
+ 'include_url',
+ 'increment',
+ 'inline',
+ 'input',
+ 'insert',
+ 'insertatcurrent',
+ 'insertfirst',
+ 'insertfrom',
+ 'insertlast',
+ 'insertpage',
+ 'integer',
+ 'intersection',
+ 'invoke',
+ 'isa',
+ 'isalnum',
+ 'isalpha',
+ 'isbase',
+ 'iscntrl',
+ 'isdigit',
+ 'isemptyelement',
+ 'islower',
+ 'isopen',
+ 'isprint',
+ 'isspace',
+ 'istitle',
+ 'istruetype',
+ 'isualphabetic',
+ 'isulowercase',
+ 'isupper',
+ 'isuuppercase',
+ 'isuwhitespace',
+ 'iswhitespace',
+ 'iterate',
+ 'iterator',
+ 'java',
+ 'java_bean',
+ 'javascript',
+ 'join',
+ 'journals',
+ 'json_records',
+ 'json_rpccall',
+ 'key',
+ 'keycolumn_name',
+ 'keycolumn_value',
+ 'keyfield_name',
+ 'keyfield_value',
+ 'keys',
+ 'lasso_comment',
+ 'lasso_currentaction',
+ '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_errorreporting',
+ 'lasso_executiontimelimit',
+ 'lasso_parser',
+ 'lasso_process',
+ 'lasso_sessionid',
+ 'lasso_siteid',
+ 'lasso_siteisrunning',
+ 'lasso_sitename',
+ 'lasso_siterestart',
+ 'lasso_sitestart',
+ 'lasso_sitestop',
+ 'lasso_tagexists',
+ 'lasso_tagmodulename',
+ 'lasso_uniqueid',
+ 'lasso_updatecheck',
+ 'lasso_uptime',
+ 'lasso_version',
+ 'lassoapp_create',
+ 'lassoapp_dump',
+ 'lassoapp_flattendir',
+ 'lassoapp_getappdata',
+ 'lassoapp_link',
+ 'lassoapp_list',
+ 'lassoapp_process',
+ 'lassoapp_unitize',
+ 'last',
+ 'lastchild',
+ 'lasterror',
+ 'layout_name',
+ 'ldap',
+ 'ldap_scope_base',
+ 'ldap_scope_onelevel',
+ 'ldap_scope_subtree',
+ 'ldml',
+ 'ldml_ldml',
+ 'left',
+ 'length',
+ 'library',
+ 'library_once',
+ 'line',
+ 'link',
+ 'link_currentaction',
+ 'link_currentactionparams',
+ 'link_currentactionurl',
+ 'link_currentgroup',
+ 'link_currentgroupparams',
+ 'link_currentgroupurl',
+ 'link_currentrecord',
+ 'link_currentrecordparams',
+ 'link_currentrecordurl',
+ 'link_currentsearch',
+ 'link_currentsearchparams',
+ 'link_currentsearchurl',
+ 'link_detail',
+ 'link_detailparams',
+ 'link_detailurl',
+ 'link_firstgroup',
+ 'link_firstgroupparams',
+ 'link_firstgroupurl',
+ 'link_firstrecord',
+ 'link_firstrecordparams',
+ 'link_firstrecordurl',
+ 'link_lastgroup',
+ 'link_lastgroupparams',
+ 'link_lastgroupurl',
+ 'link_lastrecord',
+ 'link_lastrecordparams',
+ 'link_lastrecordurl',
+ 'link_nextgroup',
+ 'link_nextgroupparams',
+ 'link_nextgroupurl',
+ 'link_nextrecord',
+ 'link_nextrecordparams',
+ 'link_nextrecordurl',
+ 'link_params',
+ 'link_prevgroup',
+ 'link_prevgroupparams',
+ 'link_prevgroupurl',
+ 'link_prevrecord',
+ 'link_prevrecordparams',
+ 'link_prevrecordurl',
+ 'link_setformat',
+ 'link_url',
+ 'list',
+ 'list_additem',
+ 'list_fromlist',
+ 'list_fromstring',
+ 'list_getitem',
+ 'list_itemcount',
+ 'list_iterator',
+ 'list_removeitem',
+ 'list_replaceitem',
+ 'list_reverseiterator',
+ 'list_tostring',
+ 'listen',
+ 'literal',
+ 'ljax_end',
+ 'ljax_hastarget',
+ 'ljax_include',
+ 'ljax_start',
+ 'ljax_target',
+ 'local',
+ 'local_defined',
+ 'local_remove',
+ 'local_reset',
+ 'localaddress',
+ 'locale_format',
+ 'localname',
+ 'locals',
+ 'lock',
+ 'log',
+ 'log_always',
+ 'log_critical',
+ 'log_deprecated',
+ 'log_destination_console',
+ 'log_destination_database',
+ 'log_destination_file',
+ 'log_detail',
+ 'log_level_critical',
+ 'log_level_deprecated',
+ 'log_level_detail',
+ 'log_level_sql',
+ 'log_level_warning',
+ 'log_setdestination',
+ 'log_sql',
+ 'log_warning',
+ 'logicalop_value',
+ 'logicaloperator_value',
+ 'lookupnamespace',
+ 'loop',
+ 'loop_abort',
+ 'loop_continue',
+ 'loop_count',
+ 'lowercase',
+ 'lt',
+ 'lte',
+ 'magick_image',
+ 'map',
+ 'map_iterator',
+ 'marker',
+ 'match_comparator',
+ 'match_notrange',
+ 'match_notregexp',
+ 'match_range',
+ 'match_regexp',
+ 'matches',
+ 'matchesstart',
+ 'matchposition',
+ 'matchstring',
+ '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',
+ 'maxrecords_value',
+ 'memory_session_driver',
+ 'merge',
+ 'millisecond',
+ 'mime_type',
+ 'minimal',
+ 'minute',
+ 'misc__srand',
+ 'misc_randomnumber',
+ 'misc_roman',
+ 'misc_valid_creditcard',
+ 'mode',
+ 'modulate',
+ 'month',
+ 'moveto',
+ 'movetoattributenamespace',
+ 'movetoelement',
+ 'movetofirstattribute',
+ 'movetonextattribute',
+ 'mysql_session_driver',
+ 'name',
+ 'named_param',
+ 'namespace_current',
+ 'namespace_delimiter',
+ 'namespace_exists',
+ 'namespace_file_fullpathexists',
+ 'namespace_global',
+ 'namespace_import',
+ 'namespace_load',
+ 'namespace_page',
+ 'namespace_unload',
+ 'namespace_using',
+ 'namespaces',
+ 'namespaceuri',
+ 'neq',
+ 'net',
+ 'net_connectinprogress',
+ 'net_connectok',
+ 'net_typessl',
+ 'net_typessltcp',
+ 'net_typessludp',
+ 'net_typetcp',
+ 'net_typeudp',
+ 'net_waitread',
+ 'net_waittimeout',
+ 'net_waitwrite',
+ 'nettohost16',
+ 'nettohost32',
+ 'newchild',
+ 'next',
+ 'nextsibling',
+ 'no_default_output',
+ 'nodetype',
+ 'none',
+ 'noprocess',
+ 'not',
+ 'nrx',
+ 'nslookup',
+ 'null',
+ 'object',
+ 'once',
+ 'oneoff',
+ 'op_logicalvalue',
+ 'open',
+ 'operator_logicalvalue',
+ 'option',
+ 'or',
+ 'os_process',
+ 'output',
+ 'output_none',
+ 'padleading',
+ 'padtrailing',
+ 'pagecount',
+ 'pagesize',
+ 'pair',
+ 'paraminfo',
+ 'params',
+ 'params_up',
+ 'parent',
+ 'path',
+ 'pdf_barcode',
+ 'pdf_color',
+ 'pdf_doc',
+ 'pdf_font',
+ 'pdf_image',
+ 'pdf_list',
+ 'pdf_read',
+ 'pdf_serve',
+ 'pdf_table',
+ 'pdf_text',
+ 'percent',
+ 'pixel',
+ 'portal',
+ 'position',
+ 'postcondition',
+ 'precondition',
+ 'prefix',
+ 'prettyprintingnsmap',
+ 'prettyprintingtypemap',
+ 'previoussibling',
+ 'priorityqueue',
+ 'private',
+ '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',
+ 'process',
+ 'properties',
+ 'protect',
+ 'queue',
+ 'rand',
+ 'randomnumber',
+ 'raw',
+ 'rawheaders',
+ 'read',
+ 'readattributevalue',
+ 'readerror',
+ 'readfrom',
+ 'readline',
+ 'readlock',
+ 'readstring',
+ 'readunlock',
+ 'recid_value',
+ 'recipients',
+ 'record_count',
+ 'recordcount',
+ 'recordid_value',
+ 'records',
+ 'records_array',
+ 'records_map',
+ 'rect',
+ 'redirect_url',
+ 'refcount',
+ 'reference',
+ 'referer',
+ 'referer_url',
+ 'referrals',
+ 'referrer',
+ 'referrer_url',
+ 'regexp',
+ 'remoteaddress',
+ 'remove',
+ 'removeall',
+ 'removeattribute',
+ 'removechild',
+ 'removecurrent',
+ 'removefirst',
+ 'removelast',
+ 'removeleading',
+ 'removenamespace',
+ 'removetrailing',
+ 'render',
+ 'repeating',
+ 'repeating_valueitem',
+ 'repeatingvalueitem',
+ 'repetition',
+ 'replace',
+ 'replaceall',
+ 'replacefirst',
+ 'replacepattern',
+ 'replacewith',
+ 'req_column',
+ 'req_field',
+ 'required_column',
+ 'required_field',
+ 'reserve',
+ 'reset',
+ 'resolutionh',
+ 'resolutionv',
+ 'response',
+ 'response_fileexists',
+ 'response_filepath',
+ 'response_localpath',
+ 'response_path',
+ 'response_realm',
+ 'results',
+ 'resultset',
+ 'resultset_count',
+ 'retrieve',
+ 'return',
+ 'return_value',
+ 'returntype',
+ 'reverse',
+ 'reverseiterator',
+ 'right',
+ 'roman',
+ 'rotate',
+ 'row_count',
+ 'rows',
+ 'rows_array',
+ 'run',
+ 'run_children',
+ 'rx',
+ 'save',
+ 'scale',
+ 'schema_name',
+ 'scientific',
+ 'search',
+ 'search_args',
+ 'search_arguments',
+ 'search_columnitem',
+ 'search_fielditem',
+ 'search_operatoritem',
+ 'search_opitem',
+ 'search_valueitem',
+ 'searchfielditem',
+ 'searchoperatoritem',
+ 'searchopitem',
+ 'searchvalueitem',
+ 'second',
+ 'select',
+ 'selected',
+ 'self',
+ 'send',
+ 'serialize',
+ 'series',
+ 'server_date',
+ 'server_day',
+ 'server_ip',
+ 'server_name',
+ 'server_port',
+ 'server_push',
+ 'server_siteisrunning',
+ 'server_sitestart',
+ 'server_sitestop',
+ 'server_time',
+ 'session_abort',
+ 'session_addoutputfilter',
+ 'session_addvar',
+ 'session_addvariable',
+ 'session_deleteexpired',
+ 'session_driver',
+ 'session_end',
+ 'session_id',
+ 'session_removevar',
+ 'session_removevariable',
+ 'session_result',
+ 'session_setdriver',
+ 'session_start',
+ 'set',
+ 'set_iterator',
+ 'set_reverseiterator',
+ 'setalignment',
+ 'setbarheight',
+ 'setbarmultiplier',
+ 'setbarwidth',
+ 'setbaseline',
+ 'setblocking',
+ 'setbordercolor',
+ 'setborderwidth',
+ 'setbytes',
+ 'setcode',
+ 'setcolor',
+ 'setcolorspace',
+ 'setdatatype',
+ 'setencoding',
+ 'setface',
+ 'setfieldvalue',
+ 'setfont',
+ 'setformat',
+ 'setgeneratechecksum',
+ 'setheight',
+ 'setlassodata',
+ 'setlinewidth',
+ 'setmarker',
+ 'setmode',
+ 'setname',
+ 'setpadding',
+ 'setpagenumber',
+ 'setpagerange',
+ 'setposition',
+ 'setproperty',
+ 'setrange',
+ 'setshowchecksum',
+ 'setsize',
+ 'setspacing',
+ 'settemplate',
+ 'settemplatestr',
+ 'settextalignment',
+ 'settextdata',
+ 'settextsize',
+ 'settype',
+ 'setunderline',
+ 'setwidth',
+ 'setxmldata',
+ 'sharpen',
+ 'showchecksum',
+ 'showcode39startstop',
+ 'showeanguardbars',
+ 'shown_count',
+ 'shown_first',
+ 'shown_last',
+ 'signal',
+ 'signalall',
+ 'site_atbegin',
+ 'site_id',
+ 'site_name',
+ 'site_restart',
+ 'size',
+ 'skiprecords_value',
+ 'sleep',
+ 'smooth',
+ 'soap_convertpartstopairs',
+ 'soap_definetag',
+ 'soap_info',
+ 'soap_lastrequest',
+ 'soap_lastresponse',
+ 'soap_stub',
+ 'sort',
+ 'sort_args',
+ 'sort_arguments',
+ 'sort_columnitem',
+ 'sort_fielditem',
+ 'sort_orderitem',
+ 'sortcolumnitem',
+ 'sortfielditem',
+ 'sortorderitem',
+ 'sortwith',
+ 'split',
+ 'sqlite_createdb',
+ 'sqlite_session_driver',
+ 'sqlite_setsleepmillis',
+ 'sqlite_setsleeptries',
+ 'srand',
+ 'stack',
+ 'standards',
+ 'steal',
+ 'stock_quote',
+ 'string',
+ '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',
+ 'string_validcharset',
+ 'subject',
+ 'substring',
+ 'subtract',
+ 'swapbytes',
+ 'table_name',
+ 'table_realname',
+ 'tag',
+ 'tag_name',
+ 'tags',
+ 'tags_find',
+ 'tags_list',
+ 'tcp_close',
+ 'tcp_open',
+ 'tcp_send',
+ 'tcp_tcp_close',
+ 'tcp_tcp_open',
+ 'tcp_tcp_send',
+ 'textwidth',
+ 'thread_abort',
+ 'thread_atomic',
+ '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',
+ 'time',
+ 'timezones',
+ 'titlecase',
+ 'to',
+ 'todos',
+ 'token_value',
+ 'tolower',
+ 'total_records',
+ 'totitle',
+ 'toupper',
+ 'transform',
+ 'treemap',
+ 'treemap_iterator',
+ 'trim',
+ 'true',
+ 'type',
+ 'unescape',
+ 'union',
+ 'uniqueid',
+ 'unlock',
+ 'unserialize',
+ 'up',
+ 'uppercase',
+ 'url_rewrite',
+ 'valid_creditcard',
+ 'valid_date',
+ 'valid_email',
+ 'valid_url',
+ 'value',
+ 'value_list',
+ 'value_listitem',
+ 'valuelistitem',
+ 'values',
+ 'valuetype',
+ 'var',
+ 'var_defined',
+ 'var_remove',
+ 'var_reset',
+ 'var_set',
+ 'variable',
+ 'variable_defined',
+ 'variable_set',
+ 'variables',
+ 'variant_count',
+ 'vars',
+ 'wait',
+ 'wap_isenabled',
+ 'wap_maxbuttons',
+ 'wap_maxcolumns',
+ 'wap_maxhorzpixels',
+ 'wap_maxrows',
+ 'wap_maxvertpixels',
+ 'waskeyword',
+ 'week',
+ 'while',
+ 'width',
+ 'write',
+ 'writelock',
+ 'writeto',
+ 'writeunlock',
+ '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',
+ 'xml_extract',
+ 'xml_rpc',
+ 'xml_rpccall',
+ 'xml_rw',
+ 'xml_serve',
+ 'xml_transform',
+ 'xml_xml',
+ 'xml_xmlstream',
+ 'xmllang',
+ 'xmlschematype',
+ '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',
+ 'year'
+ ]
+}
diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py
index 9cf31b20..ce85350e 100644
--- a/pygments/lexers/_mapping.py
+++ b/pygments/lexers/_mapping.py
@@ -42,11 +42,13 @@ LEXERS = {
'BooLexer': ('pygments.lexers.dotnet', 'Boo', ('boo',), ('*.boo',), ('text/x-boo',)),
'BrainfuckLexer': ('pygments.lexers.other', 'Brainfuck', ('brainfuck', 'bf'), ('*.bf', '*.b'), ('application/x-brainfuck',)),
'BroLexer': ('pygments.lexers.other', 'Bro', ('bro',), ('*.bro',), ()),
+ 'BugsLexer': ('pygments.lexers.math', 'BUGS', ('bugs', 'winbugs', 'openbugs'), ('*.bugs',), ()),
'CLexer': ('pygments.lexers.compiled', 'C', ('c',), ('*.c', '*.h', '*.idc'), ('text/x-chdr', 'text/x-csrc')),
'CMakeLexer': ('pygments.lexers.text', 'CMake', ('cmake',), ('*.cmake', 'CMakeLists.txt'), ('text/x-cmake',)),
'CObjdumpLexer': ('pygments.lexers.asm', 'c-objdump', ('c-objdump',), ('*.c-objdump',), ('text/x-c-objdump',)),
'CSharpAspxLexer': ('pygments.lexers.dotnet', 'aspx-cs', ('aspx-cs',), ('*.aspx', '*.asax', '*.ascx', '*.ashx', '*.asmx', '*.axd'), ()),
'CSharpLexer': ('pygments.lexers.dotnet', 'C#', ('csharp', 'c#'), ('*.cs',), ('text/x-csharp',)),
+ 'CUDALexer': ('pygments.lexers.compiled', 'CUDA', ('cuda', 'cu'), ('*.cu', '*.cuh'), ('text/x-cuda',)),
'Cfengine3Lexer': ('pygments.lexers.other', 'CFEngine3', ('cfengine3', 'cf3'), ('*.cf',), ()),
'CheetahHtmlLexer': ('pygments.lexers.templates', 'HTML+Cheetah', ('html+cheetah', 'html+spitfire'), (), ('text/html+cheetah', 'text/html+spitfire')),
'CheetahJavascriptLexer': ('pygments.lexers.templates', 'JavaScript+Cheetah', ('js+cheetah', 'javascript+cheetah', 'js+spitfire', 'javascript+spitfire'), (), ('application/x-javascript+cheetah', 'text/x-javascript+cheetah', 'text/javascript+cheetah', 'application/x-javascript+spitfire', 'text/x-javascript+spitfire', 'text/javascript+spitfire')),
@@ -60,6 +62,7 @@ LEXERS = {
'CoqLexer': ('pygments.lexers.functional', 'Coq', ('coq',), ('*.v',), ('text/x-coq',)),
'CppLexer': ('pygments.lexers.compiled', 'C++', ('cpp', 'c++'), ('*.cpp', '*.hpp', '*.c++', '*.h++', '*.cc', '*.hh', '*.cxx', '*.hxx'), ('text/x-c++hdr', 'text/x-c++src')),
'CppObjdumpLexer': ('pygments.lexers.asm', 'cpp-objdump', ('cpp-objdump', 'c++-objdumb', 'cxx-objdump'), ('*.cpp-objdump', '*.c++-objdump', '*.cxx-objdump'), ('text/x-cpp-objdump',)),
+ 'CrocLexer': ('pygments.lexers.agile', 'Croc', ('croc',), ('*.croc',), ('text/x-crocsrc',)),
'CssDjangoLexer': ('pygments.lexers.templates', 'CSS+Django/Jinja', ('css+django', 'css+jinja'), (), ('text/css+django', 'text/css+jinja')),
'CssErbLexer': ('pygments.lexers.templates', 'CSS+Ruby', ('css+erb', 'css+ruby'), (), ('text/css+ruby',)),
'CssGenshiLexer': ('pygments.lexers.templates', 'CSS+Genshi Text', ('css+genshitext', 'css+genshi'), (), ('text/css+genshi',)),
@@ -123,6 +126,7 @@ LEXERS = {
'IrcLogsLexer': ('pygments.lexers.text', 'IRC logs', ('irc',), ('*.weechatlog',), ('text/x-irclog',)),
'JSONLexer': ('pygments.lexers.web', 'JSON', ('json',), ('*.json',), ('application/json',)),
'JadeLexer': ('pygments.lexers.web', 'Jade', ('jade', 'JADE'), ('*.jade',), ('text/x-jade',)),
+ 'JagsLexer': ('pygments.lexers.math', 'JAGS', ('jags',), ('*.jags',), ()),
'JavaLexer': ('pygments.lexers.jvm', 'Java', ('java',), ('*.java',), ('text/x-java',)),
'JavascriptDjangoLexer': ('pygments.lexers.templates', 'JavaScript+Django/Jinja', ('js+django', 'javascript+django', 'js+jinja', 'javascript+jinja'), (), ('application/x-javascript+django', 'application/x-javascript+jinja', 'text/x-javascript+django', 'text/x-javascript+jinja', 'text/javascript+django', 'text/javascript+jinja')),
'JavascriptErbLexer': ('pygments.lexers.templates', 'JavaScript+Ruby', ('js+erb', 'javascript+erb', 'js+ruby', 'javascript+ruby'), (), ('application/x-javascript+ruby', 'text/x-javascript+ruby', 'text/javascript+ruby')),
@@ -134,8 +138,14 @@ LEXERS = {
'JuliaConsoleLexer': ('pygments.lexers.math', 'Julia console', ('jlcon',), (), ()),
'JuliaLexer': ('pygments.lexers.math', 'Julia', ('julia', 'jl'), ('*.jl',), ('text/x-julia', 'application/x-julia')),
'KotlinLexer': ('pygments.lexers.jvm', 'Kotlin', ('kotlin',), ('*.kt',), ('text/x-kotlin',)),
+ 'LassoCssLexer': ('pygments.lexers.templates', 'CSS+Lasso', ('css+lasso',), (), ('text/css+lasso',)),
+ 'LassoHtmlLexer': ('pygments.lexers.templates', 'HTML+Lasso', ('html+lasso',), (), ('text/html+lasso', 'application/x-httpd-lasso', 'application/x-httpd-lasso[89]')),
+ 'LassoJavascriptLexer': ('pygments.lexers.templates', 'JavaScript+Lasso', ('js+lasso', 'javascript+lasso'), (), ('application/x-javascript+lasso', 'text/x-javascript+lasso', 'text/javascript+lasso')),
+ 'LassoLexer': ('pygments.lexers.web', 'Lasso', ('lasso', 'lassoscript'), ('*.lasso', '*.lasso[89]'), ('text/x-lasso',)),
+ 'LassoXmlLexer': ('pygments.lexers.templates', 'XML+Lasso', ('xml+lasso',), (), ('application/xml+lasso',)),
'LighttpdConfLexer': ('pygments.lexers.text', 'Lighttpd configuration file', ('lighty', 'lighttpd'), (), ('text/x-lighttpd-conf',)),
'LiterateHaskellLexer': ('pygments.lexers.functional', 'Literate Haskell', ('lhs', 'literate-haskell'), ('*.lhs',), ('text/x-literate-haskell',)),
+ 'LiveScriptLexer': ('pygments.lexers.web', 'LiveScript', ('live-script', 'livescript'), ('*.ls',), ('text/livescript',)),
'LlvmLexer': ('pygments.lexers.asm', 'LLVM', ('llvm',), ('*.ll',), ('text/x-llvm',)),
'LogtalkLexer': ('pygments.lexers.other', 'Logtalk', ('logtalk',), ('*.lgt',), ('text/x-logtalk',)),
'LuaLexer': ('pygments.lexers.agile', 'Lua', ('lua',), ('*.lua', '*.wlua'), ('text/x-lua', 'application/x-lua')),
@@ -212,6 +222,7 @@ LEXERS = {
'RstLexer': ('pygments.lexers.text', 'reStructuredText', ('rst', 'rest', 'restructuredtext'), ('*.rst', '*.rest'), ('text/x-rst', 'text/prs.fallenstein.rst')),
'RubyConsoleLexer': ('pygments.lexers.agile', 'Ruby irb session', ('rbcon', 'irb'), (), ('text/x-ruby-shellsession',)),
'RubyLexer': ('pygments.lexers.agile', 'Ruby', ('rb', 'ruby', 'duby'), ('*.rb', '*.rbw', 'Rakefile', '*.rake', '*.gemspec', '*.rbx', '*.duby'), ('text/x-ruby', 'application/x-ruby')),
+ 'RustLexer': ('pygments.lexers.compiled', 'Rust', ('rust',), ('*.rs', '*.rc'), ('text/x-rustsrc',)),
'SLexer': ('pygments.lexers.math', 'S', ('splus', 's', 'r'), ('*.S', '*.R'), ('text/S-plus', 'text/S', 'text/R')),
'SMLLexer': ('pygments.lexers.functional', 'Standard ML', ('sml',), ('*.sml', '*.sig', '*.fun'), ('text/x-standardml', 'application/x-standardml')),
'SassLexer': ('pygments.lexers.web', 'Sass', ('sass', 'SASS'), ('*.sass',), ('text/x-sass',)),
@@ -228,6 +239,7 @@ LEXERS = {
'SqliteConsoleLexer': ('pygments.lexers.sql', 'sqlite3con', ('sqlite3',), ('*.sqlite3-console',), ('text/x-sqlite3-console',)),
'SquidConfLexer': ('pygments.lexers.text', 'SquidConf', ('squidconf', 'squid.conf', 'squid'), ('squid.conf',), ('text/x-squidconf',)),
'SspLexer': ('pygments.lexers.templates', 'Scalate Server Page', ('ssp',), ('*.ssp',), ('application/x-ssp',)),
+ 'StanLexer': ('pygments.lexers.math', 'Stan', ('stan',), ('*.stan',), ()),
'SystemVerilogLexer': ('pygments.lexers.hdl', 'systemverilog', ('sv',), ('*.sv', '*.svh'), ('text/x-systemverilog',)),
'TclLexer': ('pygments.lexers.agile', 'Tcl', ('tcl',), ('*.tcl',), ('text/x-tcl', 'text/x-script.tcl', 'application/x-tcl')),
'TcshLexer': ('pygments.lexers.shell', 'Tcsh', ('tcsh', 'csh'), ('*.tcsh', '*.csh'), ('application/x-csh',)),
@@ -251,6 +263,7 @@ LEXERS = {
'XmlPhpLexer': ('pygments.lexers.templates', 'XML+PHP', ('xml+php',), (), ('application/xml+php',)),
'XmlSmartyLexer': ('pygments.lexers.templates', 'XML+Smarty', ('xml+smarty',), (), ('application/xml+smarty',)),
'XsltLexer': ('pygments.lexers.web', 'XSLT', ('xslt',), ('*.xsl', '*.xslt'), ('application/xsl+xml', 'application/xslt+xml')),
+ 'XtendLexer': ('pygments.lexers.jvm', 'Xtend', ('xtend',), ('*.xtend',), ('text/x-xtend',)),
'YamlLexer': ('pygments.lexers.text', 'YAML', ('yaml',), ('*.yaml', '*.yml'), ('text/x-yaml',)),
}
diff --git a/pygments/lexers/agile.py b/pygments/lexers/agile.py
index 024ab8d5..61b05f93 100644
--- a/pygments/lexers/agile.py
+++ b/pygments/lexers/agile.py
@@ -22,7 +22,7 @@ from pygments import unistring as uni
__all__ = ['PythonLexer', 'PythonConsoleLexer', 'PythonTracebackLexer',
'Python3Lexer', 'Python3TracebackLexer', 'RubyLexer',
'RubyConsoleLexer', 'PerlLexer', 'LuaLexer', 'MoonScriptLexer',
- 'MiniDLexer', 'IoLexer', 'TclLexer', 'FactorLexer', 'FancyLexer']
+ 'CrocLexer', 'MiniDLexer', 'IoLexer', 'TclLexer', 'FactorLexer', 'FancyLexer']
# b/w compatibility
from pygments.lexers.functional import SchemeLexer
@@ -1189,16 +1189,14 @@ class MoonScriptLexer(LuaLexer):
yield index, token, value
-
-class MiniDLexer(RegexLexer):
+class CrocLexer(RegexLexer):
"""
- For `MiniD <http://www.dsource.org/projects/minid>`_ (a D-like scripting
- language) source.
+ For `Croc <http://jfbillingsley.com/croc>`_ source.
"""
- name = 'MiniD'
- filenames = ['*.md']
- aliases = ['minid']
- mimetypes = ['text/x-minidsrc']
+ name = 'Croc'
+ filenames = ['*.croc']
+ aliases = ['croc']
+ mimetypes = ['text/x-crocsrc']
tokens = {
'root': [
@@ -1206,35 +1204,32 @@ class MiniDLexer(RegexLexer):
(r'\s+', Text),
# Comments
(r'//(.*?)\n', Comment.Single),
- (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
- (r'/\+', Comment.Multiline, 'nestedcomment'),
+ (r'/\*', Comment.Multiline, 'nestedcomment'),
# Keywords
- (r'(as|assert|break|case|catch|class|continue|coroutine|default'
+ (r'(as|assert|break|case|catch|class|continue|default'
r'|do|else|finally|for|foreach|function|global|namespace'
- r'|if|import|in|is|local|module|return|super|switch'
+ r'|if|import|in|is|local|module|return|scope|super|switch'
r'|this|throw|try|vararg|while|with|yield)\b', Keyword),
(r'(false|true|null)\b', Keyword.Constant),
# FloatLiteral
- (r'([0-9][0-9_]*)?\.[0-9_]+([eE][+\-]?[0-9_]+)?', Number.Float),
+ (r'([0-9][0-9_]*)(?=[.eE])(\.[0-9][0-9_]*)?([eE][+\-]?[0-9_]+)?', Number.Float),
# IntegerLiteral
# -- Binary
- (r'0[Bb][01_]+', Number),
- # -- Octal
- (r'0[Cc][0-7_]+', Number.Oct),
+ (r'0[bB][01][01_]*', Number),
# -- Hexadecimal
- (r'0[xX][0-9a-fA-F_]+', Number.Hex),
+ (r'0[xX][0-9a-fA-F][0-9a-fA-F_]*', Number.Hex),
# -- Decimal
- (r'(0|[1-9][0-9_]*)', Number.Integer),
+ (r'([0-9][0-9_]*)(?![.eE])', Number.Integer),
# CharacterLiteral
- (r"""'(\\['"?\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-9]{1,3}"""
+ (r"""'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-9]{1,3}"""
r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|.)'""",
String.Char
),
# StringLiteral
# -- WysiwygString
(r'@"(""|[^"])*"', String),
- # -- AlternateWysiwygString
- (r'`(``|.)*`', String),
+ (r'@`(``|[^`])*`', String),
+ (r"@'(''|[^'])*'", String),
# -- DoubleQuotedString
(r'"(\\\\|\\"|[^"])*"', String),
# Tokens
@@ -1247,14 +1242,24 @@ class MiniDLexer(RegexLexer):
(r'[a-zA-Z_]\w*', Name),
],
'nestedcomment': [
- (r'[^+/]+', Comment.Multiline),
- (r'/\+', Comment.Multiline, '#push'),
- (r'\+/', Comment.Multiline, '#pop'),
- (r'[+/]', Comment.Multiline),
+ (r'[^*/]+', Comment.Multiline),
+ (r'/\*', Comment.Multiline, '#push'),
+ (r'\*/', Comment.Multiline, '#pop'),
+ (r'[*/]', Comment.Multiline),
],
}
+class MiniDLexer(CrocLexer):
+ """
+ For MiniD source. MiniD is now known as Croc.
+ """
+ name = 'MiniD'
+ filenames = ['*.md']
+ aliases = ['minid']
+ mimetypes = ['text/x-minidsrc']
+
+
class IoLexer(RegexLexer):
"""
For `Io <http://iolanguage.com/>`_ (a small, prototype-based
diff --git a/pygments/lexers/compiled.py b/pygments/lexers/compiled.py
index 04077ec6..5dd91991 100644
--- a/pygments/lexers/compiled.py
+++ b/pygments/lexers/compiled.py
@@ -27,7 +27,7 @@ __all__ = ['CLexer', 'CppLexer', 'DLexer', 'DelphiLexer', 'ECLexer',
'DylanLexer', 'ObjectiveCLexer', 'FortranLexer', 'GLShaderLexer',
'PrologLexer', 'CythonLexer', 'ValaLexer', 'OocLexer', 'GoLexer',
'FelixLexer', 'AdaLexer', 'Modula2Lexer', 'BlitzMaxLexer',
- 'NimrodLexer', 'FantomLexer']
+ 'NimrodLexer', 'FantomLexer', 'RustLexer', 'CUDALexer']
class CLexer(RegexLexer):
@@ -2889,3 +2889,138 @@ class FantomLexer(RegexLexer):
(r'.', Text)
],
}
+
+
+class RustLexer(RegexLexer):
+ """
+ Lexer for Mozilla's Rust programming language.
+
+ *New in Pygments 1.6.*
+ """
+ name = 'Rust'
+ filenames = ['*.rs', '*.rc']
+ aliases = ['rust']
+ mimetypes = ['text/x-rustsrc']
+
+ tokens = {
+ 'root': [
+ # Whitespace and Comments
+ (r'\n', Text),
+ (r'\s+', Text),
+ (r'//(.*?)\n', Comment.Single),
+ (r'/[*](.|\n)*?[*]/', Comment.Multiline),
+
+ # Keywords
+ (r'(alt|as|assert|be|break|check|claim|class|const'
+ r'|cont|copy|crust|do|else|enum|export|fail'
+ r'|false|fn|for|if|iface|impl|import|let|log'
+ r'|loop|mod|mut|native|pure|resource|ret|true'
+ r'|type|unsafe|use|white|note|bind|prove|unchecked'
+ r'|with|syntax|u8|u16|u32|u64|i8|i16|i32|i64|uint'
+ r'|int|f32|f64)\b', Keyword),
+
+ # Character Literal
+ (r"""'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}"""
+ r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|.)'""",
+ String.Char),
+ # Binary Literal
+ (r'0[Bb][01_]+', Number, 'number_lit'),
+ # Octal Literal
+ (r'0[0-7_]+', Number.Oct, 'number_lit'),
+ # Hexadecimal Literal
+ (r'0[xX][0-9a-fA-F_]+', Number.Hex, 'number_lit'),
+ # Decimal Literal
+ (r'[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?'
+ r'[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)?', Number, 'number_lit'),
+ # String Literal
+ (r'"', String, 'string'),
+
+ # Operators and Punctuation
+ (r'[{}()\[\],.;]', Punctuation),
+ (r'[+\-*/%&|<>^!~@=:?]', Operator),
+
+ # Identifier
+ (r'[a-zA-Z_$][a-zA-Z0-9_]*', Name),
+
+ # Attributes
+ (r'#\[', Comment.Preproc, 'attribute['),
+ (r'#\(', Comment.Preproc, 'attribute('),
+ # Macros
+ (r'#[A-Za-z_][A-Za-z0-9_]*\[', Comment.Preproc, 'attribute['),
+ (r'#[A-Za-z_][A-Za-z0-9_]*\(', Comment.Preproc, 'attribute(')
+ ],
+ 'number_lit': {
+ (r'(([ui](8|16|32|64)?)|(f(32|64)?))?', Keyword, '#pop')
+ },
+ 'string': {
+ (r'"', String, '#pop'),
+ (r"""\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}"""
+ r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}""", String.Escape),
+ (r'[^\\"]+', String),
+ (r'\\', String)
+ },
+ 'attribute_common': {
+ (r'"', String, 'string'),
+ (r'\[', Comment.Preproc, 'attribute['),
+ (r'\(', Comment.Preproc, 'attribute('),
+ },
+ 'attribute[': {
+ include('attribute_common'),
+ (r'\];?', Comment.Preproc, '#pop'),
+ (r'[^"\]]+', Comment.Preproc)
+ },
+ 'attribute(': {
+ include('attribute_common'),
+ (r'\);?', Comment.Preproc, '#pop'),
+ (r'[^"\)]+', Comment.Preproc)
+ }
+ }
+
+
+class CUDALexer(CLexer):
+ """
+ For NVIDIA `CUDAâ„¢ <http://developer.nvidia.com/category/zone/cuda-zone>`_
+ source.
+
+ *New in Pygments 1.6.*
+ """
+ name = 'CUDA'
+ filenames = ['*.cu', '*.cuh']
+ aliases = ['cuda', 'cu']
+ mimetypes = ['text/x-cuda']
+
+ function_qualifiers = ['__device__', '__global__', '__host__',
+ '__noinline__', '__forceinline__']
+ variable_qualifiers = ['__device__', '__constant__', '__shared__',
+ '__restrict__']
+ vector_types = ['char1', 'uchar1', 'char2', 'uchar2', 'char3', 'uchar3',
+ 'char4', 'uchar4', 'short1', 'ushort1', 'short2', 'ushort2',
+ 'short3', 'ushort3', 'short4', 'ushort4', 'int1', 'uint1',
+ 'int2', 'uint2', 'int3', 'uint3', 'int4', 'uint4', 'long1',
+ 'ulong1', 'long2', 'ulong2', 'long3', 'ulong3', 'long4',
+ 'ulong4', 'longlong1', 'ulonglong1', 'longlong2',
+ 'ulonglong2', 'float1', 'float2', 'float3', 'float4',
+ 'double1', 'double2', 'dim3']
+ variables = ['gridDim', 'blockIdx', 'blockDim', 'threadIdx', 'warpSize']
+ functions = ['__threadfence_block', '__threadfence', '__threadfence_system',
+ '__syncthreads', '__syncthreads_count', '__syncthreads_and',
+ '__syncthreads_or']
+ execution_confs = ['<<<', '>>>']
+
+ def get_tokens_unprocessed(self, text):
+ for index, token, value in \
+ CLexer.get_tokens_unprocessed(self, text):
+ if token is Name:
+ if value in self.variable_qualifiers:
+ token = Keyword.Type
+ elif value in self.vector_types:
+ token = Keyword.Type
+ elif value in self.variables:
+ token = Name.Builtin
+ elif value in self.execution_confs:
+ token = Keyword.Pseudo
+ elif value in self.function_qualifiers:
+ token = Keyword.Reserved
+ elif value in self.functions:
+ token = Name.Function
+ yield index, token, value
diff --git a/pygments/lexers/jvm.py b/pygments/lexers/jvm.py
index b56d4582..50f3f4f7 100644
--- a/pygments/lexers/jvm.py
+++ b/pygments/lexers/jvm.py
@@ -20,7 +20,8 @@ from pygments import unistring as uni
__all__ = ['JavaLexer', 'ScalaLexer', 'GosuLexer', 'GosuTemplateLexer',
- 'GroovyLexer', 'IokeLexer', 'ClojureLexer', 'KotlinLexer']
+ 'GroovyLexer', 'IokeLexer', 'ClojureLexer', 'KotlinLexer',
+ 'XtendLexer']
class JavaLexer(RegexLexer):
@@ -35,9 +36,6 @@ class JavaLexer(RegexLexer):
flags = re.MULTILINE | re.DOTALL
- #: optional Comment or Whitespace
- _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+'
-
tokens = {
'root': [
# method names
@@ -93,9 +91,6 @@ class ScalaLexer(RegexLexer):
flags = re.MULTILINE | re.DOTALL
- #: optional Comment or Whitespace
- _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+'
-
# don't use raw unicode strings!
op = u'[-~\\^\\*!%&\\\\<>\\|+=:/?@\u00a6-\u00a7\u00a9\u00ac\u00ae\u00b0-\u00b1\u00b6\u00d7\u00f7\u03f6\u0482\u0606-\u0608\u060e-\u060f\u06e9\u06fd-\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0c7f\u0cf1-\u0cf2\u0d79\u0f01-\u0f03\u0f13-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcf\u109e-\u109f\u1360\u1390-\u1399\u1940\u19e0-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2044\u2052\u207a-\u207c\u208a-\u208c\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114\u2116-\u2118\u211e-\u2123\u2125\u2127\u2129\u212e\u213a-\u213b\u2140-\u2144\u214a-\u214d\u214f\u2190-\u2328\u232b-\u244a\u249c-\u24e9\u2500-\u2767\u2794-\u27c4\u27c7-\u27e5\u27f0-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2b54\u2ce5-\u2cea\u2e80-\u2ffb\u3004\u3012-\u3013\u3020\u3036-\u3037\u303e-\u303f\u3190-\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ufb29\ufdfd\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe4\uffe8-\uffee\ufffc-\ufffd]+'
@@ -197,9 +192,6 @@ class GosuLexer(RegexLexer):
flags = re.MULTILINE | re.DOTALL
- #: optional Comment or Whitespace
- _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+'
-
tokens = {
'root': [
# method names
@@ -298,9 +290,6 @@ class GroovyLexer(RegexLexer):
flags = re.MULTILINE | re.DOTALL
- #: optional Comment or Whitespace
- _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+'
-
tokens = {
'root': [
# method names
@@ -644,7 +633,7 @@ class ClojureLexer(RegexLexer):
(r"\\(.|[a-z]+)", String.Char),
# keywords
- (r':' + valid_name, String.Symbol),
+ (r'::?' + valid_name, String.Symbol),
# special operators
(r'~@|[`\'#^~&]', Operator),
@@ -690,9 +679,6 @@ class TeaLangLexer(RegexLexer):
flags = re.MULTILINE | re.DOTALL
- #: optional Comment or Whitespace
- _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+'
-
tokens = {
'root': [
# method names
@@ -845,3 +831,68 @@ class KotlinLexer(RegexLexer):
self._tokens = self._all_tokens[level]
RegexLexer.__init__(self, **options)
+
+
+class XtendLexer(RegexLexer):
+ """
+ For `Xtend <http://xtend-lang.org/>`_ source code.
+
+ *New in Pygments 1.6.*
+ """
+
+ name = 'Xtend'
+ aliases = ['xtend']
+ filenames = ['*.xtend']
+ mimetypes = ['text/x-xtend']
+
+ flags = re.MULTILINE | re.DOTALL
+
+ tokens = {
+ 'root': [
+ # method names
+ (r'^(\s*(?:[a-zA-Z_][a-zA-Z0-9_\.\[\]]*\s+)+?)' # return arguments
+ r'([a-zA-Z_$][a-zA-Z0-9_$]*)' # method name
+ r'(\s*)(\()', # signature start
+ bygroups(using(this), Name.Function, Text, Operator)),
+ (r'[^\S\n]+', Text),
+ (r'//.*?\n', Comment.Single),
+ (r'/\*.*?\*/', Comment.Multiline),
+ (r'@[a-zA-Z_][a-zA-Z0-9_\.]*', Name.Decorator),
+ (r'(assert|break|case|catch|continue|default|do|else|finally|for|'
+ r'if|goto|instanceof|new|return|switch|this|throw|try|while|IF|'
+ r'ELSE|ELSEIF|ENDIF|FOR|ENDFOR|SEPARATOR|BEFORE|AFTER)\b',
+ Keyword),
+ (r'(def|abstract|const|enum|extends|final|implements|native|private|'
+ r'protected|public|static|strictfp|super|synchronized|throws|'
+ r'transient|volatile)\b', Keyword.Declaration),
+ (r'(boolean|byte|char|double|float|int|long|short|void)\b',
+ Keyword.Type),
+ (r'(package)(\s+)', bygroups(Keyword.Namespace, Text)),
+ (r'(true|false|null)\b', Keyword.Constant),
+ (r'(class|interface)(\s+)', bygroups(Keyword.Declaration, Text),
+ 'class'),
+ (r'(import)(\s+)', bygroups(Keyword.Namespace, Text), 'import'),
+ (r"(''')", String, 'template'),
+ (ur"(\u00BB)", String, 'template'),
+ (r'"(\\\\|\\"|[^"])*"', String),
+ (r"'(\\\\|\\'|[^'])*'", String),
+ (r'[a-zA-Z_][a-zA-Z0-9_]*:', Name.Label),
+ (r'[a-zA-Z_\$][a-zA-Z0-9_]*', Name),
+ (r'[~\^\*!%&\[\]\(\)\{\}<>\|+=:;,./?-]', Operator),
+ (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
+ (r'0x[0-9a-f]+', Number.Hex),
+ (r'[0-9]+L?', Number.Integer),
+ (r'\n', Text)
+ ],
+ 'class': [
+ (r'[a-zA-Z_][a-zA-Z0-9_]*', Name.Class, '#pop')
+ ],
+ 'import': [
+ (r'[a-zA-Z0-9_.]+\*?', Name.Namespace, '#pop')
+ ],
+ 'template': [
+ (r"'''", String, '#pop'),
+ (ur"\u00AB", String, '#pop'),
+ (r'.', String)
+ ],
+ }
diff --git a/pygments/lexers/math.py b/pygments/lexers/math.py
index db51cd62..877bb40f 100644
--- a/pygments/lexers/math.py
+++ b/pygments/lexers/math.py
@@ -21,8 +21,7 @@ from pygments.lexers import _scilab_builtins
__all__ = ['JuliaLexer', 'JuliaConsoleLexer', 'MuPADLexer', 'MatlabLexer',
'MatlabSessionLexer', 'OctaveLexer', 'ScilabLexer', 'NumPyLexer',
- 'RConsoleLexer', 'SLexer']
-
+ 'RConsoleLexer', 'SLexer', 'JagsLexer', 'BugsLexer', 'StanLexer']
class JuliaLexer(RegexLexer):
name = 'Julia'
@@ -1011,34 +1010,40 @@ class SLexer(RegexLexer):
],
'valid_name': [
(r'[a-zA-Z][0-9a-zA-Z\._]+', Text),
- (r'`.+`', String.Backtick),
+ # can begin with ., but not if that is followed by a digit
+ (r'\.[a-zA-Z_][0-9a-zA-Z\._]+', Text),
],
'punctuation': [
- (r'\[|\]|\[\[|\]\]|\$|\(|\)|@|:::?|;|,', Punctuation),
+ (r'\[{1,2}|\]{1,2}|\(|\)|;|,', Punctuation),
],
'keywords': [
- (r'for(?=\s*\()|while(?=\s*\()|if(?=\s*\()|(?<=\s)else|'
- r'(?<=\s)break(?=;|$)|return(?=\s*\()|function(?=\s*\()',
+ (r'(if|else|for|while|repeat|in|next|break|return|switch|function)'
+ r'(?![0-9a-zA-Z\._])',
Keyword.Reserved)
],
'operators': [
- (r'<-|-|==|<=|>=|<|>|&&|&|!=|\|\|?', Operator),
- (r'\*|\+|\^|/|%%|%/%|=', Operator),
- (r'%in%|%*%', Operator)
+ (r'<<?-|->>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\?', Operator),
+ (r'\*|\+|\^|/|!|%[^%]*%|=|~|\$|@|:{1,3}', Operator)
],
'builtin_symbols': [
- (r'(NULL|NA|TRUE|FALSE|NaN)\b', Keyword.Constant),
+ (r'(NULL|NA(_(integer|real|complex|character)_)?|'
+ r'Inf|TRUE|FALSE|NaN|\.\.(\.|[0-9]+))'
+ r'(?![0-9a-zA-Z\._])',
+ Keyword.Constant),
(r'(T|F)\b', Keyword.Variable),
],
'numbers': [
- (r'(?<![0-9a-zA-Z\)\}\]`\"])(?=\s*)[-\+]?[0-9]+'
- r'(\.[0-9]*)?(E[0-9][-\+]?(\.[0-9]*)?)?', Number),
- (r'\.[0-9]*(E[0-9][-\+]?(\.[0-9]*)?)?', Number),
+ # hex number
+ (r'0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?', Number.Hex),
+ # decimal number
+ (r'[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?[Li]?',
+ Number),
],
'statements': [
include('comments'),
# whitespaces
(r'\s+', Text),
+ (r'`.*?`', String.Backtick),
(r'\'', String, 'string_squote'),
(r'\"', String, 'string_dquote'),
include('builtin_symbols'),
@@ -1061,12 +1066,314 @@ class SLexer(RegexLexer):
# ('\}', Punctuation, '#pop')
#],
'string_squote': [
- (r'[^\']*\'', String, '#pop'),
+ (r'([^\'\\]|\\.)*\'', String, '#pop'),
],
'string_dquote': [
- (r'[^\"]*\"', String, '#pop'),
+ (r'([^"\\]|\\.)*"', String, '#pop'),
],
}
def analyse_text(text):
return '<-' in text
+
+
+class BugsLexer(RegexLexer):
+ """
+ Pygments Lexer for Stan models.
+
+ *New in Pygments 1.6.*
+ """
+
+ name = 'BUGS'
+ aliases = ['bugs', 'winbugs', 'openbugs']
+ filenames = ['*.bugs']
+
+ _FUNCTIONS = [
+ # Scalar functions
+ 'abs', 'arccos', 'arccosh', 'arcsin', 'arcsinh', 'arctan', 'arctanh',
+ 'cloglog', 'cos', 'cosh', 'cumulative', 'cut', 'density', 'deviance',
+ 'equals', 'expr', 'gammap', 'ilogit', 'icloglog', 'integral', 'log',
+ 'logfact', 'loggam', 'logit', 'max', 'min', 'phi', 'post.p.value',
+ 'pow', 'prior.p.value', 'probit', 'replicate.post', 'replicate.prior',
+ 'round', 'sin', 'sinh', 'solution', 'sqrt', 'step', 'tan', 'tanh',
+ 'trunc',
+ # Vector functions
+ 'inprod', 'interp.lin', 'inverse', 'logdet', 'mean', 'eigen.vals',
+ 'ode', 'prod', 'p.valueM', 'rank', 'ranked', 'replicate.postM',
+ 'sd', 'sort', 'sum',
+ ## Special
+ 'D', 'I', 'F', 'T', 'C']
+ """ OpenBUGS built-in functions
+
+ From http://www.openbugs.info/Manuals/ModelSpecification.html#ContentsAII
+
+ This also includes
+
+ - T, C, I : Truncation and censoring. ``T`` and ``C`` are in OpenBUGS. ``I`` in WinBUGS.
+ - D : ODE
+ - F : Functional http://www.openbugs.info/Examples/Functionals.html
+
+ """
+
+ _DISTRIBUTIONS = ['dbern', 'dbin', 'dcat', 'dnegbin', 'dpois',
+ 'dhyper', 'dbeta', 'dchisqr', 'ddexp', 'dexp',
+ 'dflat', 'dgamma', 'dgev', 'df', 'dggamma', 'dgpar',
+ 'dloglik', 'dlnorm', 'dlogis', 'dnorm', 'dpar',
+ 'dt', 'dunif', 'dweib', 'dmulti', 'ddirch', 'dmnorm',
+ 'dmt', 'dwish']
+ """ OpenBUGS built-in distributions
+
+ Functions From http://www.openbugs.info/Manuals/ModelSpecification.html#ContentsAI
+ """
+
+
+ tokens = {
+ 'whitespace' : [
+ (r"\s+", Text),
+ ],
+ 'comments' : [
+ # Comments
+ (r'#.*$', Comment.Single),
+ ],
+ 'root': [
+ # Comments
+ include('comments'),
+ include('whitespace'),
+ # Block start
+ (r'(?s)(model)(\s|\n)+({)',
+ bygroups(Keyword.Namespace, Text, Punctuation), 'block')
+ ],
+ 'block' : [
+ include('comments'),
+ include('whitespace'),
+ # Reserved Words
+ (r'(for|in)\b', Keyword.Reserved),
+ # Built-in Functions
+ (r'(%s)(?=\s*\()'
+ % r'|'.join(_FUNCTIONS + _DISTRIBUTIONS),
+ Name.Builtin),
+ # Regular variable names
+ (r'[A-Za-z][A-Za-z0-9_.]*', Name),
+ # Number Literals
+ (r'[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?', Number),
+ # Punctuation
+ (r'(\[|\]|\(|\)|:|,)', Punctuation),
+ # Assignment operators
+ # SLexer makes these tokens Operators.
+ (r'(<-|~)', Operator),
+ # Infix and prefix operators
+ (r'(\+|-|\*|/)', Operator),
+ # Block
+ (r'{', Punctuation, '#push'),
+ (r'}', Punctuation, '#pop'),
+ # Other
+ (r';', Punctuation),
+ ]
+ }
+
+
+class JagsLexer(RegexLexer):
+ """
+ Pygments Lexer for JAGS.
+
+ *New in Pygments 1.6.*
+ """
+
+ name = 'JAGS'
+ aliases = ['jags']
+ filenames = ['*.jags']
+
+ ## JAGS
+ _FUNCTIONS = [
+ 'abs', 'arccos', 'arccosh', 'arcsin', 'arcsinh', 'arctan', 'arctanh',
+ 'cos', 'cosh', 'cloglog',
+ 'equals', 'exp', 'icloglog', 'ifelse', 'ilogit', 'log', 'logfact',
+ 'loggam', 'logit', 'phi', 'pow', 'probit', 'round', 'sin', 'sinh',
+ 'sqrt', 'step', 'tan', 'tanh', 'trunc', 'inprod', 'interp.lin',
+ 'logdet', 'max', 'mean', 'min', 'prod', 'sum', 'sd', 'inverse', 'rank', 'sort', 't',
+ 'acos', 'acosh', 'asin', 'asinh', 'atan',
+ # Truncation/Censoring (should I include)
+ 'T', 'I']
+ # Distributions with density, probability and quartile functions
+ _DISTRIBUTIONS = ['[dpq]%s' % x for x in
+ ['bern', 'beta', 'dchiqsqr', 'ddexp', 'dexp',
+ 'df', 'gamma', 'gen.gamma', 'logis', 'lnorm',
+ 'negbin', 'nchisqr', 'norm', 'par', 'pois', 'weib']]
+ # Other distributions without density and probability
+ _OTHER_DISTRIBUTIONS = [
+ 'dt', 'dunif', 'dbetabin', 'dbern', 'dbin', 'dcat', 'dhyper',
+ 'ddirch', 'dmnorm', 'dwish', 'dmt', 'dmulti', 'dbinom', 'dchisq',
+ 'dnbinom', 'dweibull', 'ddirich']
+
+ tokens = {
+ 'whitespace' : [
+ (r"\s+", Text),
+ ],
+ 'names' : [
+ # Regular variable names
+ (r'\b[A-Za-z][A-Za-z0-9_.]*\b', Name),
+ ],
+ 'comments' : [
+ # do not use stateful comments
+ (r'(?s)/\*.*?\*/', Comment.Multiline),
+ # Comments
+ (r'#.*$', Comment.Single),
+ ],
+ 'root': [
+ # Comments
+ include('comments'),
+ include('whitespace'),
+ # Block start
+ (r'(?s)(model|data)(\s|\n)+({)',
+ bygroups(Keyword.Namespace, Text, Punctuation), 'block'),
+ # Variable declaration (TODO: improve)
+ (r'var\b', Keyword.Declaration, 'var')
+ ],
+ 'statements': [
+ include('comments'),
+ include('whitespace'),
+ # Reserved Words
+ (r'(for|in)\b', Keyword.Reserved),
+ # Builtins
+ # Need to use lookahead because . is a valid char
+ (r'(%s)(?=\s*\()' % r'|'.join(_FUNCTIONS
+ + _DISTRIBUTIONS
+ + _OTHER_DISTRIBUTIONS),
+ Name.Builtin),
+ # Names
+ include('names'),
+ # Number Literals
+ (r'[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?', Number),
+ (r'(\[|\]|\(|\)|:|,)', Punctuation),
+ # Assignment operators
+ (r'(<-|~)', Operator),
+ # # JAGS includes many more than OpenBUGS
+ # |/|\|\||\&\&|>=?|<=?|[=!]?=|!|%.*?%|^)'
+ (r'(\+|-|\*|\/|\|\|[&]{2}|[<>=]=?|\^|%.*?%)', Operator),
+ ],
+ 'block' : [
+ include('statements'),
+ (r';', Punctuation),
+ (r'{', Punctuation, '#push'),
+ (r'}', Punctuation, '#pop'),
+ ],
+ 'var' : [
+ include('statements'),
+ (r';', Punctuation, '#pop'),
+ ]
+ }
+
+
+class StanLexer(RegexLexer):
+ """
+ Pygments Lexer for Stan models.
+
+ *New in Pygments 1.6.*
+ """
+
+ name = 'Stan'
+ aliases = ['stan']
+ filenames = ['*.stan']
+
+ _RESERVED = ('for', 'in', 'while', 'repeat', 'until', 'if',
+ 'then', 'else', 'true', 'false', 'T')
+
+ _TYPES = ('int', 'real', 'vector', 'simplex', 'ordered', 'row_vector',
+ 'matrix', 'corr_matrix', 'cov_matrix')
+
+ # STAN 1.0 Manual, Chapter 20
+ _CONSTANTS = ['pi', 'e', 'sqrt2', 'log2', 'log10', 'nan', 'infinity',
+ 'epsilon', 'negative_epsilon']
+ _FUNCTIONS = ['abs', 'int_step', 'min', 'max',
+ 'if_else', 'step',
+ 'fabs', 'fdim',
+ 'fmin', 'fmax',
+ 'fmod',
+ 'floor', 'ceil', 'round', 'trunc',
+ 'sqrt', 'cbrt', 'square', 'exp', 'exp2', 'expm1',
+ 'log', 'log2', 'log10', 'pow', 'logit', 'inv_logit',
+ 'inv_cloglog', 'hypot', 'cos', 'sin', 'tan', 'acos',
+ 'asin', 'atan', 'atan2', 'cosh', 'sinh', 'tanh',
+ 'acosh', 'asinh', 'atanh', 'erf', 'erfc', 'Phi',
+ 'log_loss', 'tgamma', 'lgamma', 'lmgamma', 'lbeta',
+ 'binomial_coefficient_log',
+ 'fma', 'multiply_log', 'log1p', 'log1m', 'log1p_exp',
+ 'log_sum_exp',
+ 'rows', 'cols',
+ 'dot_product', 'prod', 'mean', 'variance', 'sd',
+ 'diagonal', 'diag_matrix', 'col', 'row',
+ 'softmax', 'trace', 'determinant', 'inverse', 'eigenvalue',
+ 'eigenvalues_sym', 'cholesky', 'singular_values',
+ '(log)?normal_p', 'exponential_p', 'gamma_p', 'weibull_p']
+ _DISTRIBUTIONS = ['bernoulli', 'bernoulli_logit', 'binomial',
+ 'beta_binomial', 'hypergeometric', 'categorical',
+ 'ordered_logistic', 'negative_binomial', 'poisson',
+ 'multinomial', 'normal', 'student_t',
+ 'cauchy', 'double_exponential', 'logistic',
+ 'lognormal', 'chi_square', 'inv_chi_square',
+ 'scaled_inv_chi_square', 'exponential',
+ 'gamma', 'inv_gamma', 'weibull', 'pareto',
+ 'beta', 'uniform', 'dirichlet', 'multi_normal',
+ 'multi_normal_cholesky', 'multi_student_t',
+ 'wishart', 'inv_wishart', 'lkj_cov',
+ 'lkj_corr_cholesky']
+
+ tokens = {
+ 'whitespace' : [
+ (r"\s+", Text),
+ ],
+ 'comments' : [
+ # do not use stateful comments
+ (r'(?s)/\*.*?\*/', Comment.Multiline),
+ # Comments
+ (r'(//|#).*$', Comment.Single),
+ ],
+ 'root': [
+ # Comments
+ include('comments'),
+ # block start
+ include('whitespace'),
+ # Block start
+ (r'(?s)(%s)(\s*)({)' %
+ r'|'.join(('data', r'transformed\s+?data',
+ 'parameters', r'transformed\s+parameters',
+ 'model', r'generated\s+quantities')),
+ bygroups(Keyword.Namespace, Text, Punctuation), 'block')
+ ],
+ 'block' : [
+ include('comments'),
+ include('whitespace'),
+ # Reserved Words
+ (r'(%s)\b' % r'|'.join(_RESERVED), Keyword.Reserved),
+ # Data types
+ (r'(%s)\b' % r'|'.join(_TYPES), Keyword.Type),
+ # Punctuation
+ (r"[;:,\[\]()]", Punctuation),
+ # Builtin
+ (r'(%s)(?=\s*\()'
+ % r'|'.join(_FUNCTIONS
+ + _DISTRIBUTIONS
+ + ['%s_log' % x for x in _DISTRIBUTIONS]),
+ Name.Builtin),
+ (r'(%s)(?=\s*\()'
+ % r'|'.join(_CONSTANTS),
+ Keyword.Constant),
+ # Special names ending in __, like lp__
+ (r'\b[A-Za-z][A-Za-z0-9_]*__\b', Name.Builtin.Pseudo),
+ # Regular variable names
+ (r'\b[A-Za-z][A-Za-z0-9_]*\b', Name),
+ # Real Literals
+ (r'-?[0-9]+(\.[0-9]+)?[eE]-?[0-9]+', Number.Float),
+ (r'-?[0-9]*\.[0-9]*', Number.Float),
+ # Integer Literals
+ (r'-?[0-9]+', Number.Integer),
+ # Assignment operators
+ # SLexer makes these tokens Operators.
+ (r'(<-|~)', Operator),
+ # Infix and prefix operators
+ (r"(\+|-|\.?\*|\.?/|\\|')", Operator),
+ # Block
+ (r'{', Punctuation, '#push'),
+ (r'}', Punctuation, '#pop'),
+ ]
+ }
diff --git a/pygments/lexers/other.py b/pygments/lexers/other.py
index 689672e6..c7899f10 100644
--- a/pygments/lexers/other.py
+++ b/pygments/lexers/other.py
@@ -1371,6 +1371,11 @@ class RebolLexer(RegexLexer):
tokens = {
'root': [
+ (r'REBOL', Generic.Strong, 'script'),
+ (r'R', Comment),
+ (r'[^R]+', Comment),
+ ],
+ 'script': [
(r'\s+', Text),
(r'#"', String.Char, 'char'),
(r'#{[0-9a-fA-F]*}', Number.Hex),
diff --git a/pygments/lexers/templates.py b/pygments/lexers/templates.py
index c154eb0f..6c55edbf 100644
--- a/pygments/lexers/templates.py
+++ b/pygments/lexers/templates.py
@@ -12,7 +12,7 @@
import re
from pygments.lexers.web import \
- PhpLexer, HtmlLexer, XmlLexer, JavascriptLexer, CssLexer
+ PhpLexer, HtmlLexer, XmlLexer, JavascriptLexer, CssLexer, LassoLexer
from pygments.lexers.agile import PythonLexer, PerlLexer
from pygments.lexers.compiled import JavaLexer
from pygments.lexers.jvm import TeaLangLexer
@@ -37,7 +37,8 @@ __all__ = ['HtmlPhpLexer', 'XmlPhpLexer', 'CssPhpLexer',
'CheetahXmlLexer', 'CheetahJavascriptLexer', 'EvoqueLexer',
'EvoqueHtmlLexer', 'EvoqueXmlLexer', 'ColdfusionLexer',
'ColdfusionHtmlLexer', 'VelocityLexer', 'VelocityHtmlLexer',
- 'VelocityXmlLexer', 'SspLexer', 'TeaTemplateLexer']
+ 'VelocityXmlLexer', 'SspLexer', 'TeaTemplateLexer', 'LassoHtmlLexer',
+ 'LassoXmlLexer', 'LassoCssLexer', 'LassoJavascriptLexer']
class ErbLexer(Lexer):
@@ -1629,3 +1630,104 @@ class TeaTemplateLexer(DelegatingLexer):
if '<%' in text and '%>' in text:
rv += 0.1
return rv
+
+
+class LassoHtmlLexer(DelegatingLexer):
+ """
+ Subclass of the `LassoLexer` which highlights unhandled data with the
+ `HtmlLexer`.
+
+ Nested JavaScript and CSS is also highlighted.
+ """
+
+ name = 'HTML+Lasso'
+ aliases = ['html+lasso']
+ alias_filenames = ['*.html', '*.htm', '*.xhtml', '*.lasso', '*.lasso[89]',
+ '*.incl', '*.inc', '*.las']
+ mimetypes = ['text/html+lasso',
+ 'application/x-httpd-lasso',
+ 'application/x-httpd-lasso[89]']
+
+ def __init__(self, **options):
+ options['requiredelimiters'] = True
+ super(LassoHtmlLexer, self).__init__(HtmlLexer, LassoLexer, **options)
+
+ def analyse_text(text):
+ rv = LassoLexer.analyse_text(text)
+ if re.search(r'<\w+>', text, re.I):
+ rv += 0.2
+ if html_doctype_matches(text):
+ rv += 0.5
+ return rv
+
+
+class LassoXmlLexer(DelegatingLexer):
+ """
+ Subclass of the `LassoLexer` which highlights unhandled data with the
+ `XmlLexer`.
+ """
+
+ name = 'XML+Lasso'
+ aliases = ['xml+lasso']
+ alias_filenames = ['*.xml', '*.lasso', '*.lasso[89]',
+ '*.incl', '*.inc', '*.las']
+ mimetypes = ['application/xml+lasso']
+
+ def __init__(self, **options):
+ options['requiredelimiters'] = True
+ super(LassoXmlLexer, self).__init__(XmlLexer, LassoLexer, **options)
+
+ def analyse_text(text):
+ rv = LassoLexer.analyse_text(text)
+ if looks_like_xml(text):
+ rv += 0.5
+ return rv
+
+
+class LassoCssLexer(DelegatingLexer):
+ """
+ Subclass of the `LassoLexer` which highlights unhandled data with the
+ `CssLexer`.
+ """
+
+ name = 'CSS+Lasso'
+ aliases = ['css+lasso']
+ alias_filenames = ['*.css']
+ mimetypes = ['text/css+lasso']
+
+ def __init__(self, **options):
+ options['requiredelimiters'] = True
+ super(LassoCssLexer, self).__init__(CssLexer, LassoLexer, **options)
+
+ def analyse_text(text):
+ rv = LassoLexer.analyse_text(text)
+ if re.search(r'\w+:.+;', text):
+ rv += 0.1
+ if 'padding:' in text:
+ rv += 0.1
+ return rv
+
+
+class LassoJavascriptLexer(DelegatingLexer):
+ """
+ Subclass of the `LassoLexer` which highlights unhandled data with the
+ `JavascriptLexer`.
+ """
+
+ name = 'JavaScript+Lasso'
+ aliases = ['js+lasso', 'javascript+lasso']
+ alias_filenames = ['*.js']
+ mimetypes = ['application/x-javascript+lasso',
+ 'text/x-javascript+lasso',
+ 'text/javascript+lasso']
+
+ def __init__(self, **options):
+ options['requiredelimiters'] = True
+ super(LassoJavascriptLexer, self).__init__(JavascriptLexer, LassoLexer,
+ **options)
+
+ def analyse_text(text):
+ rv = LassoLexer.analyse_text(text)
+ if 'function' in text:
+ rv += 0.2
+ return rv
diff --git a/pygments/lexers/text.py b/pygments/lexers/text.py
index 130ddba9..ec69337c 100644
--- a/pygments/lexers/text.py
+++ b/pygments/lexers/text.py
@@ -1643,6 +1643,11 @@ class HttpLexer(RegexLexer):
yield match.start(5), Literal, match.group(5)
yield match.start(6), Text, match.group(6)
+ def continuous_header_callback(self, match):
+ yield match.start(1), Text, match.group(1)
+ yield match.start(2), Literal, match.group(2)
+ yield match.start(3), Text, match.group(3)
+
def content_callback(self, match):
content_type = getattr(self, 'content_type', None)
content = match.group()
@@ -1673,6 +1678,7 @@ class HttpLexer(RegexLexer):
],
'headers': [
(r'([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|$)', header_callback),
+ (r'([\t ]+)([^\r\n]+)(\r?\n|$)', continuous_header_callback),
(r'\r?\n', Text, 'content')
],
'content': [
diff --git a/pygments/lexers/web.py b/pygments/lexers/web.py
index 5ac56c19..6fb286c0 100644
--- a/pygments/lexers/web.py
+++ b/pygments/lexers/web.py
@@ -25,8 +25,9 @@ from pygments.lexers.compiled import ScalaLexer
__all__ = ['HtmlLexer', 'XmlLexer', 'JavascriptLexer', 'JSONLexer', 'CssLexer',
'PhpLexer', 'ActionScriptLexer', 'XsltLexer', 'ActionScript3Lexer',
'MxmlLexer', 'HaxeLexer', 'HamlLexer', 'SassLexer', 'ScssLexer',
- 'ObjectiveJLexer', 'CoffeeScriptLexer', 'DuelLexer', 'ScamlLexer',
- 'JadeLexer', 'XQueryLexer', 'DtdLexer', 'DartLexer']
+ 'ObjectiveJLexer', 'CoffeeScriptLexer', 'LiveScriptLexer',
+ 'DuelLexer', 'ScamlLexer', 'JadeLexer', 'XQueryLexer',
+ 'DtdLexer', 'DartLexer', 'LassoLexer']
class JavascriptLexer(RegexLexer):
@@ -103,10 +104,10 @@ class JSONLexer(RegexLexer):
# integer part of a number
int_part = r'-?(0|[1-9]\d*)'
-
+
# fractional part of a number
frac_part = r'\.\d+'
-
+
# exponential part of a number
exp_part = r'[eE](\+|-)?\d+'
@@ -1797,8 +1798,8 @@ class CoffeeScriptLexer(RegexLexer):
tokens = {
'commentsandwhitespace': [
(r'\s+', Text),
- (r'###.*?###', Comment.Multiline),
- (r'#.*?\n', Comment.Single),
+ (r'###[^#].*?###', Comment.Multiline),
+ (r'#(?!##[^#]).*?\n', Comment.Single),
],
'multilineregex': [
include('commentsandwhitespace'),
@@ -1817,28 +1818,32 @@ class CoffeeScriptLexer(RegexLexer):
# this next expr leads to infinite loops root -> slashstartsregex
#(r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
include('commentsandwhitespace'),
- (r'\+\+|--|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|=|'
- r'\|\||\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*`%&\|\^/])=?',
+ (r'\+\+|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|'
+ r'\|\||\\(?=\n)|(<<|>>>?|==?|!=?|'
+ r'=(?!>)|-(?!>)|[<>+*`%&\|\^/])=?',
Operator, 'slashstartsregex'),
- (r'\([^()]*\)\s*->', Name.Function),
+ (r'(?:\([^()]+\))?\s*[=-]>', Name.Function),
(r'[{(\[;,]', Punctuation, 'slashstartsregex'),
(r'[})\].]', Punctuation),
- (r'(for|in|of|while|break|return|continue|switch|when|then|if|else|'
+ (r'(?<![\.\$])(for|own|in|of|while|until|'
+ r'loop|break|return|continue|'
+ r'switch|when|then|if|unless|else|'
r'throw|try|catch|finally|new|delete|typeof|instanceof|super|'
r'extends|this|class|by)\b', Keyword, 'slashstartsregex'),
- (r'(true|false|yes|no|on|off|null|NaN|Infinity|undefined)\b',
+ (r'(?<![\.\$])(true|false|yes|no|on|off|null|'
+ r'NaN|Infinity|undefined)\b',
Keyword.Constant),
(r'(Array|Boolean|Date|Error|Function|Math|netscape|'
r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
r'decodeURIComponent|encodeURI|encodeURIComponent|'
r'eval|isFinite|isNaN|parseFloat|parseInt|document|window)\b',
Name.Builtin),
- (r'[$a-zA-Z_][a-zA-Z0-9_\.:]*\s*[:=]\s', Name.Variable,
+ (r'[$a-zA-Z_][a-zA-Z0-9_\.:\$]*\s*[:=]\s', Name.Variable,
'slashstartsregex'),
- (r'@[$a-zA-Z_][a-zA-Z0-9_\.:]*\s*[:=]\s', Name.Variable.Instance,
+ (r'@[$a-zA-Z_][a-zA-Z0-9_\.:\$]*\s*[:=]\s', Name.Variable.Instance,
'slashstartsregex'),
(r'@', Name.Other, 'slashstartsregex'),
- (r'@?[$a-zA-Z_][a-zA-Z0-9_]*', Name.Other, 'slashstartsregex'),
+ (r'@?[$a-zA-Z_][a-zA-Z0-9_\$]*', Name.Other, 'slashstartsregex'),
(r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
(r'0x[0-9a-fA-F]+', Number.Hex),
(r'[0-9]+', Number.Integer),
@@ -1880,6 +1885,118 @@ class CoffeeScriptLexer(RegexLexer):
],
}
+
+class LiveScriptLexer(RegexLexer):
+ """
+ For `LiveScript`_ source code.
+
+ .. _LiveScript: http://gkz.github.com/LiveScript/
+
+ New in Pygments 1.6.
+ """
+
+ name = 'LiveScript'
+ aliases = ['live-script', 'livescript']
+ filenames = ['*.ls']
+ mimetypes = ['text/livescript']
+
+ flags = re.DOTALL
+ tokens = {
+ 'commentsandwhitespace': [
+ (r'\s+', Text),
+ (r'/\*.*?\*/', Comment.Multiline),
+ (r'#.*?\n', Comment.Single),
+ ],
+ 'multilineregex': [
+ include('commentsandwhitespace'),
+ (r'//([gim]+\b|\B)', String.Regex, '#pop'),
+ (r'/', String.Regex),
+ (r'[^/#]+', String.Regex)
+ ],
+ 'slashstartsregex': [
+ include('commentsandwhitespace'),
+ (r'//', String.Regex, ('#pop', 'multilineregex')),
+ (r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
+ r'([gim]+\b|\B)', String.Regex, '#pop'),
+ (r'', Text, '#pop'),
+ ],
+ 'root': [
+ # this next expr leads to infinite loops root -> slashstartsregex
+ #(r'^(?=\s|/|<!--)', Text, 'slashstartsregex'),
+ include('commentsandwhitespace'),
+ (r'(?:\([^()]+\))?[ ]*[~-]{1,2}>|'
+ r'(?:\(?[^()\n]+\)?)?[ ]*<[~-]{1,2}', Name.Function),
+ (r'\+\+|&&|(?<![\.\$])\b(?:and|x?or|is|isnt|not)\b|\?|:|=|'
+ r'\|\||\\(?=\n)|(<<|>>>?|==?|!=?|'
+ r'~(?!\~?>)|-(?!\-?>)|<(?!\[)|(?<!\])>|'
+ r'[+*`%&\|\^/])=?',
+ Operator, 'slashstartsregex'),
+ (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
+ (r'[})\].]', Punctuation),
+ (r'(?<![\.\$])(for|own|in|of|while|until|loop|break|'
+ r'return|continue|switch|when|then|if|unless|else|'
+ r'throw|try|catch|finally|new|delete|typeof|instanceof|super|'
+ r'extends|this|class|by|const|var|to|til)\b', Keyword,
+ 'slashstartsregex'),
+ (r'(?<![\.\$])(true|false|yes|no|on|off|'
+ r'null|NaN|Infinity|undefined|void)\b',
+ Keyword.Constant),
+ (r'(Array|Boolean|Date|Error|Function|Math|netscape|'
+ r'Number|Object|Packages|RegExp|String|sun|decodeURI|'
+ r'decodeURIComponent|encodeURI|encodeURIComponent|'
+ r'eval|isFinite|isNaN|parseFloat|parseInt|document|window)\b',
+ Name.Builtin),
+ (r'[$a-zA-Z_][a-zA-Z0-9_\.\-:\$]*\s*[:=]\s', Name.Variable,
+ 'slashstartsregex'),
+ (r'@[$a-zA-Z_][a-zA-Z0-9_\.\-:\$]*\s*[:=]\s', Name.Variable.Instance,
+ 'slashstartsregex'),
+ (r'@', Name.Other, 'slashstartsregex'),
+ (r'@?[$a-zA-Z_][a-zA-Z0-9_\-]*', Name.Other, 'slashstartsregex'),
+ (r'[0-9]+\.[0-9]+([eE][0-9]+)?[fd]?(?:[a-zA-Z_]+)?', Number.Float),
+ (r'[0-9]+(~[0-9a-z]+)?(?:[a-zA-Z_]+)?', Number.Integer),
+ ('"""', String, 'tdqs'),
+ ("'''", String, 'tsqs'),
+ ('"', String, 'dqs'),
+ ("'", String, 'sqs'),
+ (r'\\[\w$-]+', String),
+ (r'<\[.*\]>', String),
+ ],
+ 'strings': [
+ (r'[^#\\\'"]+', String),
+ # note that all coffee script strings are multi-line.
+ # hashmarks, quotes and backslashes must be parsed one at a time
+ ],
+ 'interpoling_string' : [
+ (r'}', String.Interpol, "#pop"),
+ include('root')
+ ],
+ 'dqs': [
+ (r'"', String, '#pop'),
+ (r'\\.|\'', String), # double-quoted string don't need ' escapes
+ (r'#{', String.Interpol, "interpoling_string"),
+ (r'#', String),
+ include('strings')
+ ],
+ 'sqs': [
+ (r"'", String, '#pop'),
+ (r'#|\\.|"', String), # single quoted strings don't need " escapses
+ include('strings')
+ ],
+ 'tdqs': [
+ (r'"""', String, '#pop'),
+ (r'\\.|\'|"', String), # no need to escape quotes in triple-string
+ (r'#{', String.Interpol, "interpoling_string"),
+ (r'#', String),
+ include('strings'),
+ ],
+ 'tsqs': [
+ (r"'''", String, '#pop'),
+ (r'#|\\.|\'|"', String), # no need to escape quotes in triple-strings
+ include('strings')
+ ],
+ }
+
+
class DuelLexer(RegexLexer):
"""
Lexer for Duel Views Engine (formerly JBST) markup with JavaScript code blocks.
@@ -2862,3 +2979,199 @@ class DartLexer(RegexLexer):
(r'\$+', String.Single)
]
}
+
+
+class LassoLexer(RegexLexer):
+ """
+ For `Lasso <http://www.lassosoft.com/>`_ source code, covering both
+ Lasso 9 syntax and LassoScript for Lasso 8.6 and earlier. For Lasso
+ embedded in HTML, use the `LassoHtmlLexer`.
+
+ Additional options accepted:
+
+ `builtinshighlighting`
+ If given and ``True``, highlight builtin tags, types, traits, and
+ methods (default: ``True``).
+ `requiredelimiters`
+ If given and ``True``, only highlight code between delimiters as Lasso
+ (default: ``False``).
+
+ *New in Pygments 1.6.*
+ """
+
+ name = 'Lasso'
+ aliases = ['lasso', 'lassoscript']
+ filenames = ['*.lasso', '*.lasso[89]']
+ alias_filenames = ['*.incl', '*.inc', '*.las']
+ mimetypes = ['text/x-lasso']
+ flags = re.IGNORECASE | re.DOTALL | re.MULTILINE
+
+ tokens = {
+ 'root': [
+ (r'^#!.+lasso9\b', Comment.Preproc, 'lasso'),
+ (r'\s+', Other),
+ (r'\[noprocess\]', Comment.Preproc, ('delimiters', 'noprocess')),
+ (r'\[', Comment.Preproc, ('delimiters', 'squarebrackets')),
+ (r'<\?(LassoScript|lasso|=)', Comment.Preproc,
+ ('delimiters', 'anglebrackets')),
+ (r'<', Other, 'delimiters'),
+ include('lasso'),
+ ],
+ 'delimiters': [
+ (r'\[noprocess\]', Comment.Preproc, 'noprocess'),
+ (r'\[', Comment.Preproc, 'squarebrackets'),
+ (r'<\?(LassoScript|lasso|=)', Comment.Preproc, 'anglebrackets'),
+ (r'<', Other),
+ (r'[^[<]+', Other),
+ ],
+ 'noprocess': [
+ (r'\[/noprocess\]', Comment.Preproc, '#pop'),
+ (r'\[', Other),
+ (r'[^[]', Other),
+ ],
+ 'squarebrackets': [
+ (r'\]', Comment.Preproc, '#pop'),
+ include('lasso'),
+ ],
+ 'anglebrackets': [
+ (r'\?>', Comment.Preproc, '#pop'),
+ include('lasso'),
+ ],
+ 'lasso': [
+ # whitespace/comments
+ (r'\s+', Text),
+ (r'//.*?\n', Comment.Single),
+ (r'/\*\*!.*?\*/', String.Doc),
+ (r'/\*.*?\*/', Comment.Multiline),
+
+ # names
+ (r'\$[a-z_][\w\.]*', Name.Variable),
+ (r'(#[a-z_][\w\.]*|#\d+)', Name.Variable.Instance),
+ (r"\.'[a-z_][\w\.]*'", Name.Variable.Class),
+ (r"(self)(->)('[a-z_][\w\.]*')",
+ bygroups(Name.Builtin.Pseudo, Operator, Name.Variable.Class)),
+ (r'(self|void)\b', Name.Builtin.Pseudo),
+ (r'-[a-z_][\w\.]*', Name.Attribute),
+ (r'(::)([a-z_][\w\.]*)', bygroups(Punctuation, Name.Label)),
+ (r'(error_(code|msg)_\w+|Error_AddError|Error_ColumnRestriction|'
+ r'Error_DatabaseConnectionUnavailable|Error_DatabaseTimeout|'
+ r'Error_DeleteError|Error_FieldRestriction|Error_FileNotFound|'
+ r'Error_InvalidDatabase|Error_InvalidPassword|'
+ r'Error_InvalidUsername|Error_ModuleNotFound|'
+ r'Error_NoError|Error_NoPermission|Error_OutOfMemory|'
+ r'Error_ReqColumnMissing|Error_ReqFieldMissing|'
+ r'Error_RequiredColumnMissing|Error_RequiredFieldMissing|'
+ r'Error_UpdateError)\b', Name.Exception),
+
+ # definitions
+ (r'(parent)(\s+)([a-z_][\w\.]*)',
+ bygroups(Keyword.Declaration, Text, Name.Class)),
+ (r'(define)(\s+)([a-z_][\w\.]*)(\s*)(=>)(\s*)(type|trait|thread)',
+ bygroups(Keyword.Declaration, Text, Name.Class, Text, Operator,
+ Text, Keyword)),
+ (r'(define)(\s+)([a-z_][\w\.]*)(->)([a-z_][\w\.]*=?)',
+ bygroups(Keyword.Declaration, Text, Name.Class, Operator,
+ Name.Function)),
+ (r'(define)(\s+)([a-z_][\w\.]*=?)',
+ bygroups(Keyword.Declaration, Text, Name.Function)),
+ (r'(public|protected|private)(\s+)([a-z_][\w\.]*)(\s*)(=>)',
+ bygroups(Keyword, Text, Name.Function, Text, Operator)),
+ (r'(public|protected|private|provide)(\s+)([a-z_][\w\.]*=?)(\s*)(\()',
+ bygroups(Keyword, Text, Name.Function, Text, Punctuation)),
+
+ # keywords
+ (r'\.\.\.', Keyword.Pseudo),
+ (r'(true|false|null|[+\-]?infinity|\+?NaN)\b', Keyword.Constant),
+ (r'(local|var|variable|global|data)\b', Keyword.Declaration),
+ (r'(array|date|decimal|duration|integer|map|pair|string|tag|'
+ r'xml)\b', Keyword.Type),
+ (r'(/?)(Cache|Database_Names|Database_SchemaNames|'
+ r'Database_TableNames|Define_Tag|Define_Type|Email_Batch|'
+ r'Encode_Set|HTML_Comment|Handle|Handle_Error|Header|If|Inline|'
+ r'Iterate|LJAX_Target|Link|Link_CurrentAction|Link_CurrentGroup|'
+ r'Link_CurrentRecord|Link_Detail|Link_FirstGroup|'
+ r'Link_FirstRecord|Link_LastGroup|Link_LastRecord|Link_NextGroup|'
+ r'Link_NextRecord|Link_PrevGroup|Link_PrevRecord|Log|Loop|'
+ r'Namespace_Using|NoProcess|Output_None|Portal|Private|Protect|'
+ r'Records|Referer|Referrer|Repeating|ResultSet|Rows|Search_Args|'
+ r'Search_Arguments|Select|Sort_Args|Sort_Arguments|Thread_Atomic|'
+ r'Value_List|While|Abort|Case|Else|If_Empty|If_False|If_Null|'
+ r'If_True|Loop_Abort|Loop_Continue|Loop_Count|Params|Params_Up|'
+ r'Return|Return_Value|Run_Children|SOAP_DefineTag|'
+ r'SOAP_LastRequest|SOAP_LastResponse|Tag_Name)\b',
+ bygroups(Punctuation, Keyword)),
+ (r'(and|ascending|average|by|case|define|descending|do|else|'
+ r'equals|frozen|group|import|in|inherited|into|join|let|match|'
+ r'max|min|not|on|or|order|params|parent|private|protected|'
+ r'provide|public|require|return|select|skip|sum|take|thread|to|'
+ r'trait|type|where|with)\b', Keyword),
+
+ # literals
+ (r'([+\-]?\d*\.\d+(e[+\-]?\d+)?)', Number.Float),
+ (r'0x[\da-f]+', Number.Hex),
+ (r'[+\-]?\d+', Number.Integer),
+ (r"'", String.Single, 'singlestring'),
+ (r'"', String.Double, 'doublestring'),
+ (r'`[^`]*`', String.Backtick),
+
+ # other
+ (r'(=)(bw|ew|cn|lte?|gte?|n?eq|ft|n?rx)\b',
+ bygroups(Operator, Operator.Word)),
+ (r'([=\+\-\*/%<>&|!\?\.\\]+|:=)', Operator),
+ (r'[{}():;,@^]', Punctuation),
+ (r'(/?)([\w\.]+)', bygroups(Punctuation, Name.Other)),
+ ],
+ 'singlestring': [
+ (r"'", String.Single, '#pop'),
+ (r"[^'\\]+", String.Single),
+ include('escape'),
+ (r"\\+", String.Single),
+ ],
+ 'doublestring': [
+ (r'"', String.Double, '#pop'),
+ (r'[^"\\]+', String.Double),
+ include('escape'),
+ (r'\\+', String.Double),
+ ],
+ 'escape': [
+ (r'\\(U[\da-f]{8}|u[\da-f]{4}|x[\da-f]{1,2}|[0-7]{1,3}|:[^:]+:|'
+ r'[abefnrtv\"\'\?\\]|$)', String.Escape),
+ ],
+ }
+
+ def __init__(self, **options):
+ self.builtinshighlighting = get_bool_opt(
+ options, 'builtinshighlighting', True)
+ self.requiredelimiters = get_bool_opt(
+ options, 'requiredelimiters', False)
+
+ self._builtins = set()
+ if self.builtinshighlighting:
+ from pygments.lexers._lassobuiltins import BUILTINS
+ for key, value in BUILTINS.iteritems():
+ self._builtins.update(value)
+ RegexLexer.__init__(self, **options)
+
+ def get_tokens_unprocessed(self, text):
+ stack = ['root']
+ if self.requiredelimiters:
+ stack.append('delimiters')
+ for index, token, value in \
+ RegexLexer.get_tokens_unprocessed(self, text, stack):
+ if token is Name.Other:
+ if value.lower() in self._builtins:
+ yield index, Name.Builtin, value
+ continue
+ yield index, token, value
+
+ def analyse_text(text):
+ rv = 0.0
+ if 'bin/lasso9' in text:
+ rv += 0.8
+ if re.search(r'<\?(=|lasso)', text, re.I):
+ rv += 0.4
+ if re.search(r'local\(', text, re.I):
+ rv += 0.4
+ if re.search(r'(\[\n|\?>)', text):
+ rv += 0.4
+ return rv
diff --git a/tests/examplefiles/example.bugs b/tests/examplefiles/example.bugs
new file mode 100644
index 00000000..b5b2fe7f
--- /dev/null
+++ b/tests/examplefiles/example.bugs
@@ -0,0 +1,55 @@
+# Alligators: multinomial - logistic regression
+# http://www.openbugs.info/Examples/Aligators.html
+model {
+
+ # PRIORS
+ alpha[1] <- 0; # zero contrast for baseline food
+ for (k in 2 : K) {
+ alpha[k] ~ dnorm(0, 0.00001) # vague priors
+ }
+ # Loop around lakes:
+ for (k in 1 : K){
+ beta[1, k] <- 0
+ } # corner-point contrast with first lake
+ for (i in 2 : I) {
+ beta[i, 1] <- 0 ; # zero contrast for baseline food
+ for (k in 2 : K){
+ beta[i, k] ~ dnorm(0, 0.00001) # vague priors
+ }
+ }
+ # Loop around sizes:
+ for (k in 1 : K){
+ gamma[1, k] <- 0 # corner-point contrast with first size
+ }
+ for (j in 2 : J) {
+ gamma[j, 1] <- 0 ; # zero contrast for baseline food
+ for ( k in 2 : K){
+ gamma[j, k] ~ dnorm(0, 0.00001) # vague priors
+ }
+ }
+
+ # LIKELIHOOD
+ for (i in 1 : I) { # loop around lakes
+ for (j in 1 : J) { # loop around sizes
+
+ # Fit standard Poisson regressions relative to baseline
+ lambda[i, j] ~ dflat() # vague priors
+ for (k in 1 : K) { # loop around foods
+ X[i, j, k] ~ dpois(mu[i, j, k])
+ log(mu[i, j, k]) <- lambda[i, j] + alpha[k] + beta[i, k] + gamma[j, k]
+ culmative.X[i, j, k] <- culmative(X[i, j, k], X[i, j, k])
+ }
+ }
+ }
+
+ # TRANSFORM OUTPUT TO ENABLE COMPARISON
+ # WITH AGRESTI'S RESULTS
+ for (k in 1 : K) { # loop around foods
+ for (i in 1 : I) { # loop around lakes
+ b[i, k] <- beta[i, k] - mean(beta[, k]); # sum to zero constraint
+ }
+ for (j in 1 : J) { # loop around sizes
+ g[j, k] <- gamma[j, k] - mean(gamma[, k]); # sum to zero constraint
+ }
+ }
+}
diff --git a/tests/examplefiles/example.jags b/tests/examplefiles/example.jags
new file mode 100644
index 00000000..cae34beb
--- /dev/null
+++ b/tests/examplefiles/example.jags
@@ -0,0 +1,48 @@
+# lsat.jags example from classic-bugs examples in JAGS
+# See http://sourceforge.net/projects/mcmc-jags/files/Examples/2.x/
+var
+ response[R,T], m[R], culm[R], alpha[T], a[T], theta[N], r[N,T],
+ p[N,T], beta, theta.new, p.theta[T], p.item[R,T], P.theta[R];
+data {
+ for (j in 1:culm[1]) {
+ r[j, ] <- response[1, ];
+ }
+ for (i in 2:R) {
+ for (j in (culm[i - 1] + 1):culm[i]) {
+ r[j, ] <- response[i, ];
+ }
+ }
+}
+model {
+ # 2-parameter Rasch model
+ for (j in 1:N) {
+ for (k in 1:T) {
+ probit(p[j,k]) <- delta[k]*theta[j] - eta[k];
+ r[j,k] ~ dbern(p[j,k]);
+ }
+ theta[j] ~ dnorm(0,1);
+ }
+
+ # Priors
+ for (k in 1:T) {
+ eta[k] ~ dnorm(0,0.0001);
+ e[k] <- eta[k] - mean(eta[]); # sum-to-zero constraint
+
+ delta[k] ~ dnorm(0,1) T(0,); # constrain variance to 1, slope +ve
+ d[k] <- delta[k]/pow(prod(delta), 1/T); # PRODUCT_k (d_k) = 1
+
+ g[k] <- e[k]/d[k]; # equivalent to B&A's threshold parameters
+ }
+
+ # Compute probability of response pattern i, for later use in computing G^2
+ theta.new ~ dnorm(0,1); # ability parameter for random student
+ for(k in 1:T) {
+ probit(p.theta[k]) <- delta[k]*theta.new - eta[k];
+ for(i in 1:R) {
+ p.item[i,k] <- p.theta[k]^response[i,k] * (1-p.theta[k])^(1-response[i,k]);
+ }
+ }
+ for(i in 1:R) {
+ P.theta[i] <- prod(p.item[i,])
+ }
+}
diff --git a/tests/examplefiles/example.stan b/tests/examplefiles/example.stan
new file mode 100644
index 00000000..3d88bb5e
--- /dev/null
+++ b/tests/examplefiles/example.stan
@@ -0,0 +1,87 @@
+/*
+A file for testing Stan syntax highlighting.
+
+It is not a real model and will not compile
+*/
+# also a comment
+// also a comment
+data {
+ // valid name
+ int abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_abc;
+ // all types should be highlighed
+ int a3;
+ real foo[2];
+ vector[3] bar;
+ row_vector[3] baz;
+ matrix[3,3] qux;
+ simplex[3] quux;
+ ordered[3] corge;
+ corr_matrix[3] grault;
+ cov_matrix[3] garply;
+
+ // bad names
+ // includes .
+ real foo.;
+ // beings with number
+ //real 0foo;
+ // begins with _
+ //real _foo;
+}
+transformed data {
+ real xyzzy;
+ int thud;
+ row_vector grault2;
+ matrix qux2;
+
+ // all floating point literals should be recognized
+ // all operators should be recognized
+ // paren should be recognized;
+ xyzzy <- 1234.5687 + .123 - (2.7e3 / 2E-5 * 135e-5);
+ // integer literal
+ thud <- -12309865;
+ // ./ and .* should be recognized as operators
+ grault2 <- grault .* garply ./ garply;
+ // ' and \ should be regognized as operators
+ qux2 <- qux' \ bar;
+
+}
+parameters {
+ real fred;
+ real plugh;
+
+}
+transformed parameters {
+}
+model {
+ // ~, <- are operators,
+ // T may be be recognized
+ // normal is a function
+ fred ~ normal(0, 1) T(-0.5, 0.5);
+ // interior block
+ {
+ real tmp;
+ // for, in should be highlighted
+ for (i in 1:10) {
+ tmp <- tmp + 0.1;
+ }
+ }
+ // lp__ should be highlighted
+ // normal_log as a function
+ lp__ <- lp__ + normal_log(plugh, 0, 1);
+
+}
+generated quantities {
+ real foo1;
+ foo1 <- foo + 1;
+}
+
+## Baddness
+//foo <- 2.0;
+//foo ~ normal(0, 1);
+//not_a_block {
+//}
+
+/*
+what happens with this?
+*/
+// */
diff --git a/tests/examplefiles/example.xtend b/tests/examplefiles/example.xtend
new file mode 100644
index 00000000..f6a51f7a
--- /dev/null
+++ b/tests/examplefiles/example.xtend
@@ -0,0 +1,34 @@
+package beer
+
+import static extension beer.BottleSupport.*
+import org.junit.Test
+
+class BottleSong {
+
+ @Test
+ def void singIt() {
+ println(singTheSong(99))
+ }
+
+ def singTheSong(int all) '''
+ «FOR i : all .. 1»
+ «i.Bottles» of beer on the wall, «i.bottles» of beer.
+ Take one down and pass it around, «(i - 1).bottles» of beer on the wall.
+
+ «ENDFOR»
+ No more bottles of beer on the wall, no more bottles of beer.
+ Go to the store and buy some more, «all.bottles» of beer on the wall.
+ '''
+
+ def private java.lang.String bottles(int i) {
+ switch i {
+ case 0 : 'no more bottles'
+ case 1 : 'one bottle'
+ default : '''«i» bottles'''
+ }.toString
+ }
+
+ def String Bottles(int i) {
+ bottles(i).toFirstUpper
+ }
+} \ No newline at end of file
diff --git a/tests/examplefiles/http_request_example b/tests/examplefiles/http_request_example
index 5d2a1d52..675d1691 100644
--- a/tests/examplefiles/http_request_example
+++ b/tests/examplefiles/http_request_example
@@ -3,7 +3,8 @@ Host: pygments.org
Connection: keep-alivk
Cache-Control: max-age=0
Origin: http://pygments.org
-User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2)
+ AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://pygments.org/
diff --git a/tests/examplefiles/http_response_example b/tests/examplefiles/http_response_example
index bf53d61d..51340ca4 100644
--- a/tests/examplefiles/http_response_example
+++ b/tests/examplefiles/http_response_example
@@ -18,8 +18,10 @@ Expires: Tue, 31 Mar 1981 05:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0
X-MID: a55f21733bc52bb11d1fc58f9b51b4974fbb8f83
X-RateLimit-Reset: 1323738416
-Set-Cookie: k=10.34.234.116.1323735104238974; path=/; expires=Tue, 20-Dec-11 00:11:44 GMT; domain=.twitter.com
-Set-Cookie: guest_id=v1%3A13237351042425496; domain=.twitter.com; path=/; expires=Thu, 12-Dec-2013 12:11:44 GMT
+Set-Cookie: k=10.34.234.116.1323735104238974; path=/;
+ expires=Tue, 20-Dec-11 00:11:44 GMT; domain=.twitter.com
+Set-Cookie: guest_id=v1%3A13237351042425496; domain=.twitter.com; path=/;
+ expires=Thu, 12-Dec-2013 12:11:44 GMT
Set-Cookie: _twitter_sess=BAh7CDoPY3JlYXRlZF9hdGwrCPS6wjQ0AToHaWQiJTFiMTlhY2E1ZjczYThk%250ANDUwMWQxNjMwZGU2YTQ1ODBhIgpmbGFzaElDOidBY3Rpb25Db250cm9sbGVy%250AOjpGbGFzaDo6Rmxhc2hIYXNoewAGOgpAdXNlZHsA--6b502f30a083e8a41a64f10930e142ea362b1561; domain=.twitter.com; path=/; HttpOnly
Vary: Accept-Encoding
Server: tfe
diff --git a/tests/examplefiles/json.lasso b/tests/examplefiles/json.lasso
new file mode 100644
index 00000000..72926112
--- /dev/null
+++ b/tests/examplefiles/json.lasso
@@ -0,0 +1,301 @@
+<?LassoScript
+
+ //
+ // JSON Encoding and Decoding
+ //
+ // Copyright 2007-2012 LassoSoft Inc.
+ //
+ // <http://json.org/>
+ // <http://json-rpc.org/>
+ // <http://www.ietf.org/rfc/rfc4627.txt?number=4627>
+ //
+
+If: (Lasso_TagExists: 'Encode_JSON') == False;
+
+ Define_Tag: 'JSON', -Namespace='Encode_', -Required='value', -Optional='options';
+
+ Local: 'escapes' = Map('\\' = '\\', '"' = '"', '\r' = 'r', '\n' = 'n', '\t' = 't', '\f' = 'f', '\b' = 'b');
+ Local: 'output' = '';
+ Local: 'newoptions' = (Array: -Internal);
+ If: !(Local_Defined: 'options') || (#options->(IsA: 'array') == False);
+ Local: 'options' = (Array);
+ /If;
+ If: (#options >> -UseNative) || (Params >> -UseNative);
+ #newoptions->(Insert: -UseNative);
+ /If;
+ If: (#options >> -NoNative) || (Params >> -NoNative);
+ #newoptions->(Insert: -NoNative);
+ /If;
+ If: (#options !>> -UseNative) && ((#value->(IsA: 'set')) || (#value->(IsA: 'list')) || (#value->(IsA: 'queue')) || (#value->(IsA: 'priorityqueue')) || (#value->(IsA: 'stack')));
+ #output += (Encode_JSON: Array->(insertfrom: #value->iterator) &, -Options=#newoptions);
+ Else: (#options !>> -UseNative) && (#value->(IsA: 'pair'));
+ #output += (Encode_JSON: (Array: #value->First, #value->Second));
+ Else: (#options !>> -Internal) && (#value->(Isa: 'array') == False) && (#value->(IsA: 'map') == False);
+ #output += '[' + (Encode_JSON: #value, -Options=#newoptions) + ']';
+ Else: (#value->(IsA: 'literal'));
+ #output += #value;
+ Else: (#value->(IsA: 'string'));
+ #output += '"';
+ Loop: (#value->Length);
+ Local('character' = #value->(Get: Loop_Count));
+ #output->(Append:
+ (Match_RegExp('[\\x{0020}-\\x{21}\\x{23}-\\x{5b}\\x{5d}-\\x{10fff}]') == #character) ? #character |
+ '\\' + (#escapes->(Contains: #character) ? #escapes->(Find: #character) | 'u' + String(Encode_Hex(#character))->PadLeading(4, '0')&)
+ );
+ /Loop;
+ #output += '"';
+ Else: (#value->(IsA: 'integer')) || (#value->(IsA: 'decimal')) || (#value->(IsA: 'boolean'));
+ #output += (String: #value);
+ Else: (#value->(IsA: 'null'));
+ #output += 'null';
+ Else: (#value->(IsA: 'date'));
+ If: #value->gmt;
+ #output += '"' + #value->(format: '%QT%TZ') + '"';
+ Else;
+ #output += '"' + #value->(format: '%QT%T') + '"';
+ /If;
+ Else: (#value->(IsA: 'array'));
+ #output += '[';
+ Iterate: #value, (Local: 'temp');
+ #output += (Encode_JSON: #temp, -Options=#newoptions);
+ If: #value->Size != Loop_Count;
+ #output += ', ';
+ /If;
+ /Iterate;
+ #output += ']';
+ Else: (#value->(IsA: 'object'));
+ #output += '{';
+ Iterate: #value, (Local: 'temp');
+ #output += #temp->First + ': ' + (Encode_JSON: #temp->Second, -Options=#newoptions);
+ If: (#value->Size != Loop_Count);
+ #output += ', ';
+ /If;
+ /Iterate;
+ #output += '}';
+ Else: (#value->(IsA: 'map'));
+ #output += '{';
+ Iterate: #value, (Local: 'temp');
+ #output += (Encode_JSON: #temp->First, -Options=#newoptions) + ': ' + (Encode_JSON: #temp->Second, -Options=#newoptions);
+ If: (#value->Size != Loop_Count);
+ #output += ', ';
+ /If;
+ /Iterate;
+ #output += '}';
+ Else: (#value->(IsA: 'client_ip')) || (#value->(IsA: 'client_address'));
+ #output += (Encode_JSON: (String: #value), -Options=#newoptions);
+ Else: (#options !>> -UseNative) && (#value->(IsA: 'set')) || (#value->(IsA: 'list')) || (#value->(IsA: 'queue')) || (#value->(IsA: 'priorityqueue')) || (#value->(IsA: 'stack'));
+ #output += (Encode_JSON: Array->(insertfrom: #value->iterator) &, -Options=#newoptions);
+ Else: (#options !>> -NoNative);
+ #output += (Encode_JSON: (Map: '__jsonclass__'=(Array:'deserialize',(Array:'<LassoNativeType>' + #value->Serialize + '</LassoNativeType>'))));
+ /If;
+ Return: @#output;
+
+ /Define_Tag;
+
+/If;
+
+If: (Lasso_TagExists: 'Decode_JSON') == False;
+
+ Define_Tag: 'JSON', -Namespace='Decode_', -Required='value';
+
+ (#value == '') ? Return: Null;
+
+ Define_Tag: 'consume_string', -Required='ibytes';
+ Local: 'unescapes' = (map: 34 = '"', 92 = '\\', 98 = '\b', 102 = '\f', 110 = '\n', 114 = '\r', 116 = '\t');
+ Local: 'temp' = 0, 'obytes' = Bytes;
+ While: ((#temp := #ibytes->export8bits) != 34); // '"'
+ If: (#temp === 92); // '\'
+ #temp = #ibytes->export8bits;
+ If: (#temp === 117); // 'u'
+ #obytes->(ImportString: (Decode_Hex: (String: #ibytes->(GetRange: #ibytes->Position + 1, 4)))->(ExportString: 'UTF-16'), 'UTF-8');
+ #ibytes->(SetPosition: #ibytes->Position + 4);
+ Else;
+ If: (#unescapes->(Contains: #temp));
+ #obytes->(ImportString: #unescapes->(Find: #temp), 'UTF-8');
+ Else;
+ #obytes->(Import8Bits: #temp);
+ /If;
+ /If;
+ Else;
+ #obytes->(Import8Bits: #temp);
+ /If;
+ /While;
+ Local('output' = #obytes->(ExportString: 'UTF-8'));
+ If: #output->(BeginsWith: '<LassoNativeType>') && #output->(EndsWith: '</LassoNativeType>');
+ Local: 'temp' = #output - '<LassoNativeType>' - '</LassoNativeType>';
+ Local: 'output' = null;
+ Protect;
+ #output->(Deserialize: #temp);
+ /Protect;
+ Else: (Valid_Date: #output, -Format='%QT%TZ');
+ Local: 'output' = (Date: #output, -Format='%QT%TZ');
+ Else: (Valid_Date: #output, -Format='%QT%T');
+ Local: 'output' = (Date: #output, -Format='%QT%T');
+ /If;
+ Return: @#output;
+ /Define_Tag;
+
+ Define_Tag: 'consume_token', -Required='ibytes', -required='temp';
+ Local: 'obytes' = bytes->(import8bits: #temp) &;
+ local: 'delimit' = (array: 9, 10, 13, 32, 44, 58, 93, 125); // \t\r\n ,:]}
+ While: (#delimit !>> (#temp := #ibytes->export8bits));
+ #obytes->(import8bits: #temp);
+ /While;
+ Local: 'output' = (String: #obytes);
+ If: (#output == 'true') || (#output == 'false');
+ Return: (Boolean: #output);
+ Else: (#output == 'null');
+ Return: Null;
+ Else: (String_IsNumeric: #output);
+ Return: (#output >> '.') ? (Decimal: #output) | (Integer: #output);
+ /If;
+ Return: @#output;
+ /Define_Tag;
+
+ Define_Tag: 'consume_array', -Required='ibytes';
+ Local: 'output' = array;
+ local: 'delimit' = (array: 9, 10, 13, 32, 44); // \t\r\n ,
+ local: 'temp' = 0;
+ While: ((#temp := #ibytes->export8bits) != 93); // ]
+ If: (#delimit >> #temp);
+ // Discard whitespace
+ Else: (#temp == 34); // "
+ #output->(insert: (consume_string: @#ibytes));
+ Else: (#temp == 91); // [
+ #output->(insert: (consume_array: @#ibytes));
+ Else: (#temp == 123); // {
+ #output->(insert: (consume_object: @#ibytes));
+ Else;
+ #output->(insert: (consume_token: @#ibytes, @#temp));
+ (#temp == 93) ? Loop_Abort;
+ /If;
+ /While;
+ Return: @#output;
+ /Define_Tag;
+
+ Define_Tag: 'consume_object', -Required='ibytes';
+ Local: 'output' = map;
+ local: 'delimit' = (array: 9, 10, 13, 32, 44); // \t\r\n ,
+ local: 'temp' = 0;
+ local: 'key' = null;
+ local: 'val' = null;
+ While: ((#temp := #ibytes->export8bits) != 125); // }
+ If: (#delimit >> #temp);
+ // Discard whitespace
+ Else: (#key !== null) && (#temp == 34); // "
+ #output->(insert: #key = (consume_string: @#ibytes));
+ #key = null;
+ Else: (#key !== null) && (#temp == 91); // [
+ #output->(insert: #key = (consume_array: @#ibytes));
+ #key = null;
+ Else: (#key !== null) && (#temp == 123); // {
+ #output->(insert: #key = (consume_object: @#ibytes));
+ #key = null;
+ Else: (#key !== null);
+ #output->(insert: #key = (consume_token: @#ibytes, @#temp));
+ (#temp == 125) ? Loop_abort;
+ #key = null;
+ Else;
+ #key = (consume_string: @#ibytes);
+ while(#delimit >> (#temp := #ibytes->export8bits));
+ /while;
+ #temp != 58 ? Loop_Abort;
+ /If;
+ /While;
+ If: (#output >> '__jsonclass__') && (#output->(Find: '__jsonclass__')->(isa: 'array')) && (#output->(Find: '__jsonclass__')->size >= 2) && (#output->(Find: '__jsonclass__')->First == 'deserialize');
+ Return: #output->(find: '__jsonclass__')->Second->First;
+ Else: (#output >> 'native') && (#output >> 'comment') && (#output->(find: 'comment') == 'http://www.lassosoft.com/json');
+ Return: #output->(find: 'native');
+ /If;
+ Return: @#output;
+ /Define_Tag;
+
+ Local: 'ibytes' = (bytes: #value);
+ Local: 'start' = 1;
+ #ibytes->removeLeading(BOM_UTF8);
+ Local: 'temp' = #ibytes->export8bits;
+ If: (#temp == 91); // [
+ Local: 'output' = (consume_array: @#ibytes);
+ Return: @#output;
+ Else: (#temp == 123); // {
+ Local: 'output' = (consume_object: @#ibytes);
+ Return: @#output;
+ /If;
+
+ /Define_Tag;
+
+/If;
+
+If: (Lasso_TagExists: 'Literal') == False;
+
+ Define_Type: 'Literal', 'String';
+ /Define_Type;
+
+/If;
+
+If: (Lasso_TagExists: 'Object') == False;
+
+ Define_Type: 'Object', 'Map';
+ /Define_Type;
+
+/If;
+
+If: (Lasso_TagExists: 'JSON_RPCCall') == False;
+
+ Define_Tag: 'RPCCall', -Namespace='JSON_',
+ -Required='method',
+ -Optional='params',
+ -Optional='id',
+ -Optional='host';
+
+ !(Local_Defined: 'host') ? Local: 'host' = 'http://localhost/lassoapps.8/rpc/rpc.lasso';
+ !(Local_Defined: 'id') ? Local: 'id' = Lasso_UniqueID;
+ Local: 'request' = (Map: 'method' = #method, 'params' = #params, 'id' = #id);
+ Local: 'request' = (Encode_JSON: #request);
+ Local: 'result' = (Include_URL: #host, -PostParams=#request);
+ Local: 'result' = (Decode_JSON: #result);
+ Return: @#result;
+
+ /Define_Tag;
+
+/If;
+
+If: (Lasso_TagExists: 'JSON_Records') == False;
+
+ Define_Tag: 'JSON_Records',
+ -Optional='KeyField',
+ -Optional='ReturnField',
+ -Optional='ExcludeField',
+ -Optional='Fields';
+
+ Local: '_fields' = (Local_Defined: 'fields') && #fields->(IsA: 'array') ? #fields | Field_Names;
+ Fail_If: #_fields->size == 0, -1, 'No fields found for [JSON_Records]';
+ Local: '_keyfield' = (Local: 'keyfield');
+ If: #_fields !>> #_keyfield;
+ Local: '_keyfield' = (KeyField_Name);
+ If: #_fields !>> #_keyfield;
+ Local: '_keyfield' = 'ID';
+ If: #_fields !>> #_keyfield;
+ Local: '_keyfield' = #_fields->First;
+ /If;
+ /If;
+ /If;
+ Local: '_index' = #_fields->(FindPosition: #_keyfield)->First;
+ Local: '_return' = (Local_Defined: 'returnfield') ? (Params->(Find: -ReturnField)->(ForEach: {Params->First = Params->First->Second; Return: True}) &) | @#_fields;
+ Local: '_exclude' = (Local_Defined: 'excludefield') ? (Params->(Find: -ExcludeField)->(ForEach: {Params->First = Params->First->Second; Return: True}) &) | Array;
+ Local: '_records' = Array;
+ Iterate: Records_Array, (Local: '_record');
+ Local: '_temp' = Map;
+ Iterate: #_fields, (Local: '_field');
+ ((#_return >> #_field) && (#_exclude !>> #_field)) ? #_temp->Insert(#_field = #_record->(Get: Loop_Count));
+ /Iterate;
+ #_records->Insert(#_temp);
+ /Iterate;
+ Local: '_output' = (Encode_JSON: (Object: 'error_msg'=Error_Msg, 'error_code'=Error_Code, 'found_count'=Found_Count, 'keyfield'=#_keyfield, 'rows'=#_records));
+ Return: @#_output;
+
+ /Define_Tag;
+
+/If;
+
+?>
diff --git a/tests/examplefiles/json.lasso9 b/tests/examplefiles/json.lasso9
new file mode 100644
index 00000000..732ab2af
--- /dev/null
+++ b/tests/examplefiles/json.lasso9
@@ -0,0 +1,213 @@
+
+/**
+ trait_json_serialize
+ Objects with this trait will be assumed to convert to json data
+ when its ->asString method is called
+*/
+define trait_json_serialize => trait {
+ require asString()
+}
+
+define json_serialize(e::bytes)::string => ('"' + (string(#e)->Replace(`\`, `\\`) & Replace('\"', '\\"') & Replace('\r', '\\r') & Replace('\n', '\\n') & Replace('\t', '\\t') & Replace('\f', '\\f') & Replace('\b', '\\b') &) + '"')
+define json_serialize(e::string)::string => ('"' + (string(#e)->Replace(`\`, `\\`) & Replace('\"', '\\"') & Replace('\r', '\\r') & Replace('\n', '\\n') & Replace('\t', '\\t') & Replace('\f', '\\f') & Replace('\b', '\\b') &) + '"')
+define json_serialize(e::json_literal)::string => (#e->asstring)
+define json_serialize(e::integer)::string => (#e->asstring)
+define json_serialize(e::decimal)::string => (#e->asstring)
+define json_serialize(e::boolean)::string => (#e->asstring)
+define json_serialize(e::null)::string => ('null')
+define json_serialize(e::date)::string => ('"' + #e->format(#e->gmt ? '%QT%TZ' | '%Q%T') + '"')
+/*
+define json_serialize(e::array)::string => {
+ local(output) = '';
+ local(delimit) = '';
+ #e->foreach => { #output += #delimit + json_serialize(#1); #delimit = ', '; }
+ return('[' + #output + ']');
+}
+define json_serialize(e::staticarray)::string => {
+ local(output) = '';
+ local(delimit) = '';
+ #e->foreach => { #output += #delimit + json_serialize(#1); #delimit = ', '; }
+ return('[' + #output + ']');
+}
+*/
+define json_serialize(e::trait_forEach)::string => {
+ local(output) = '';
+ local(delimit) = '';
+ #e->foreach => { #output += #delimit + json_serialize(#1); #delimit = ', '; }
+ return('[' + #output + ']');
+}
+define json_serialize(e::map)::string => {
+ local(output = with pr in #e->eachPair
+ select json_serialize(#pr->first->asString) + ': ' + json_serialize(#pr->second))
+ return '{' + #output->join(',') + '}'
+}
+define json_serialize(e::json_object)::string => {
+ local(output) = '';
+ local(delimit) = '';
+ #e->foreachpair => { #output += #delimit + #1->first + ': ' + json_serialize(#1->second); #delimit = ', '; }
+ return('{' + #output + '}');
+}
+define json_serialize(e::trait_json_serialize) => #e->asString
+define json_serialize(e::any)::string => json_serialize('<LassoNativeType>' + #e->serialize + '</LassoNativeType>')
+
+// Bil Corry fixes for decoding json
+define json_consume_string(ibytes::bytes) => {
+ local(obytes) = bytes;
+ local(temp) = 0;
+ while((#temp := #ibytes->export8bits) != 34);
+ #obytes->import8bits(#temp);
+ (#temp == 92) ? #obytes->import8bits(#ibytes->export8bits); // Escape \
+ /while;
+ local(output = string(#obytes)->unescape)
+ //Replace('\\"', '\"') & Replace('\\r', '\r') & Replace('\\n', '\n') & Replace('\\t', '\t') & Replace('\\f', '\f') & Replace('\\b', '\b') &;
+ if(#output->BeginsWith('<LassoNativeType>') && #output->EndsWith('</LassoNativeType>'));
+ Protect;
+ return serialization_reader(xml(#output - '<LassoNativeType>' - '</LassoNativeType>'))->read
+ /Protect;
+ else( (#output->size == 16 or #output->size == 15) and regexp(`\d{8}T\d{6}Z?`, '', #output)->matches)
+ return date(#output, -Format=#output->size == 16?`yyyyMMdd'T'HHmmssZ`|`yyyyMMdd'T'HHmmss`)
+ /if
+ return #output
+}
+
+// Bil Corry fix + Ke fix
+define json_consume_token(ibytes::bytes, temp::integer) => {
+
+ local(obytes = bytes->import8bits(#temp) &,
+ delimit = array(9, 10, 13, 32, 44, 58, 93, 125)) // \t\r\n ,:]}
+
+ while(#delimit !>> (#temp := #ibytes->export8bits))
+ #obytes->import8bits(#temp)
+ /while
+
+ #temp == 125? // }
+ #ibytes->marker -= 1
+//============================================================================
+// Is also end of token if end of array[]
+ #temp == 93? // ]
+ #ibytes->marker -= 1
+//............................................................................
+
+ local(output = string(#obytes))
+ #output == 'true'?
+ return true
+ #output == 'false'?
+ return false
+ #output == 'null'?
+ return null
+ string_IsNumeric(#output)?
+ return (#output >> '.')? decimal(#output) | integer(#output)
+
+ return #output
+}
+
+// Bil Corry fix
+define json_consume_array(ibytes::bytes)::array => {
+ Local(output) = array;
+ local(delimit) = array( 9, 10, 13, 32, 44); // \t\r\n ,
+ local(temp) = 0;
+ While((#temp := #ibytes->export8bits) != 93); // ]
+ If(#delimit >> #temp);
+ // Discard whitespace
+ Else(#temp == 34); // "
+ #output->insert(json_consume_string(#ibytes));
+ Else(#temp == 91); // [
+ #output->insert(json_consume_array(#ibytes));
+ Else(#temp == 123); // {
+ #output->insert(json_consume_object(#ibytes));
+ Else;
+ #output->insert(json_consume_token(#ibytes, #temp));
+ (#temp == 93) ? Loop_Abort;
+ /If;
+ /While;
+ Return(#output);
+}
+
+// Bil Corry fix
+define json_consume_object(ibytes::bytes)::map => {
+ Local('output' = map,
+ 'delimit' = array( 9, 10, 13, 32, 44), // \t\r\n ,
+ 'temp' = 0,
+ 'key' = null,
+ 'val' = null);
+ While((#temp := #ibytes->export8bits) != 125); // }
+ If(#delimit >> #temp);
+ // Discard whitespace
+ Else((#key !== null) && (#temp == 34)); // "
+ #output->insert(#key = json_consume_string(#ibytes));
+ #key = null;
+ Else((#key !== null) && (#temp == 91)); // [
+ #output->insert(#key = json_consume_array(#ibytes));
+ #key = null;
+ Else((#key !== null) && (#temp == 123)); // {
+ #output->insert(#key = json_consume_object(#ibytes));
+ #key = null;
+ Else((#key !== null));
+ #output->insert(#key = json_consume_token(#ibytes, #temp));
+ #key = null;
+ Else;
+ #key = json_consume_string(#ibytes);
+ while(#delimit >> (#temp := #ibytes->export8bits));
+ /while;
+ #temp != 58 ? Loop_Abort;
+ /If;
+ /While;
+
+ If((#output >> '__jsonclass__') && (#output->Find('__jsonclass__')->isa('array')) && (#output->Find('__jsonclass__')->size >= 2) && (#output->Find('__jsonclass__')->First == 'deserialize'));
+ Return(#output->find('__jsonclass__')->Second->First);
+ Else((#output >> 'native') && (#output >> 'comment') && (#output->find('comment') == 'http://www.lassosoft.com/json'));
+ Return(#output->find('native'));
+ /If;
+ Return(#output);
+}
+
+// Bil Corry fix + Ke fix
+define json_deserialize(ibytes::bytes)::any => {
+ #ibytes->removeLeading(bom_utf8);
+
+//============================================================================
+// Reset marker on provided bytes
+ #ibytes->marker = 0
+//............................................................................
+
+ Local(temp) = #ibytes->export8bits;
+ If(#temp == 91); // [
+ Return(json_consume_array(#ibytes));
+ Else(#temp == 123); // {
+ Return(json_consume_object(#ibytes));
+ else(#temp == 34) // "
+ return json_consume_string(#ibytes)
+ /If;
+}
+
+define json_deserialize(s::string) => json_deserialize(bytes(#s))
+
+/**! json_literal - This is a subclass of String used for JSON encoding.
+
+ A json_literal works exactly like a string, but will be inserted directly
+ rather than being encoded into JSON. This allows JavaScript elements
+ like functions to be inserted into JSON objects. This is most useful
+ when the JSON object will be used within a JavaScript on the local page.
+ [Map: 'fn'=Literal('function(){ ...})] => {'fn': function(){ ...}}
+**/
+define json_literal => type {
+ parent string
+}
+
+/**! json_object - This is a subclass of Map used for JSON encoding.
+
+ An object works exactly like a map, but when it is encoded into JSON all
+ of the keys will be inserted literally. This makes it easy to create a
+ JavaScript object without extraneous quote marks.
+ Object('name'='value') => {name: "value"}
+**/
+define json_object => type {
+ parent map
+ public onCreate(...) => ..onCreate(:#rest or (:))
+}
+
+define json_rpccall(method::string, params=map, id='', host='') => {
+ #id == '' ? #host = Lasso_UniqueID;
+ #host == '' ? #host = 'http://localhost/lassoapps.8/rpc/rpc.lasso';
+ Return(Decode_JSON(Include_URL(#host, -PostParams=Encode_JSON(Map('method' = #method, 'params' = #params, 'id' = #id)))));
+}
diff --git a/tests/examplefiles/livescript-demo.ls b/tests/examplefiles/livescript-demo.ls
new file mode 100644
index 00000000..2ff68c63
--- /dev/null
+++ b/tests/examplefiles/livescript-demo.ls
@@ -0,0 +1,41 @@
+a = -> [1 to 50]
+const b = --> [2 til 5]
+var c = ~~> 10_000_000km * 500ms - 16~ff / 32~lol
+e = (a) -> (b) ~> (c) --> (d, e) ~~> <[list of words]>
+dashes-identifiers = ->
+ a - a b -- c 1-1 1- -1 a- a a -a
+underscores_i$d = ->
+ /regexp1/
+ //regexp2//g
+ 'strings' and "strings" and \strings
+
+[2 til 10]
+ |> map (* 2)
+ |> filter (> 5)
+ |> fold (+)
+
+obj =
+ prop1: 1
+ prop2: 2
+
+class Class extends Anc-est-or
+ (args) ->
+ <- # Comment
+ <~ /* Comment */
+ void undefined yes no on off
+ a.void b.undefined c.off d.if f.no g.not
+ avoid bundefined coff dif fno gnot
+ "inter #{2 + 2} #variable"
+ '''HELLO 'world' '''
+
+copy = (from, to, callback) -->
+ error, data <- read file
+ return callback error if error?
+ error <~ write file, data
+ return callback error if error?
+ callback()
+
+take(n, [x, ...xs]:list) =
+ | n <= 0 => []
+ | empty list => []
+ | otherwise => [x] +++ take n - 1, xs
diff --git a/tests/examplefiles/rust_example.rs b/tests/examplefiles/rust_example.rs
new file mode 100644
index 00000000..af791fbc
--- /dev/null
+++ b/tests/examplefiles/rust_example.rs
@@ -0,0 +1,743 @@
+
+#[doc = "json serialization"];
+
+import result::{result, ok, err};
+import io;
+import io::{reader_util, writer_util};
+import map;
+import map::hashmap;
+
+export json;
+export error;
+export to_writer;
+export to_str;
+export from_reader;
+export from_str;
+export eq;
+
+export num;
+export string;
+export boolean;
+export list;
+export dict;
+export null;
+
+#[doc = "Represents a json value"]
+enum json {
+ num(float),
+ string(str),
+ boolean(bool),
+ list([json]),
+ dict(map::hashmap<str,json>),
+ null,
+}
+
+type error = {
+ line: uint,
+ col: uint,
+ msg: str,
+};
+
+#[doc = "Serializes a json value into a io::writer"]
+fn to_writer(wr: io::writer, j: json) {
+ alt j {
+ num(n) { wr.write_str(float::to_str(n, 6u)); }
+ string(s) {
+ wr.write_char('"');
+ let mut escaped = "";
+ str::chars_iter(s) { |c|
+ alt c {
+ '"' { escaped += "\\\""; }
+ '\\' { escaped += "\\\\"; }
+ '\x08' { escaped += "\\b"; }
+ '\x0c' { escaped += "\\f"; }
+ '\n' { escaped += "\\n"; }
+ '\r' { escaped += "\\r"; }
+ '\t' { escaped += "\\t"; }
+ _ { escaped += str::from_char(c); }
+ }
+ };
+ wr.write_str(escaped);
+ wr.write_char('"');
+ }
+ boolean(b) {
+ wr.write_str(if b { "true" } else { "false" });
+ }
+ list(v) {
+ wr.write_char('[');
+ let mut first = true;
+ vec::iter(v) { |item|
+ if !first {
+ wr.write_str(", ");
+ }
+ first = false;
+ to_writer(wr, item);
+ };
+ wr.write_char(']');
+ }
+ dict(d) {
+ if d.size() == 0u {
+ wr.write_str("{}");
+ ret;
+ }
+
+ wr.write_str("{ ");
+ let mut first = true;
+ d.items { |key, value|
+ if !first {
+ wr.write_str(", ");
+ }
+ first = false;
+ to_writer(wr, string(key));
+ wr.write_str(": ");
+ to_writer(wr, value);
+ };
+ wr.write_str(" }");
+ }
+ null {
+ wr.write_str("null");
+ }
+ }
+}
+
+#[doc = "Serializes a json value into a string"]
+fn to_str(j: json) -> str {
+ io::with_str_writer { |wr| to_writer(wr, j) }
+}
+
+type parser = {
+ rdr: io::reader,
+ mut ch: char,
+ mut line: uint,
+ mut col: uint,
+};
+
+impl parser for parser {
+ fn eof() -> bool { self.ch == -1 as char }
+
+ fn bump() {
+ self.ch = self.rdr.read_char();
+
+ if self.ch == '\n' {
+ self.line += 1u;
+ self.col = 1u;
+ } else {
+ self.col += 1u;
+ }
+ }
+
+ fn next_char() -> char {
+ self.bump();
+ self.ch
+ }
+
+ fn error<T>(msg: str) -> result<T, error> {
+ err({ line: self.line, col: self.col, msg: msg })
+ }
+
+ fn parse() -> result<json, error> {
+ alt self.parse_value() {
+ ok(value) {
+ // Skip trailing whitespaces.
+ self.parse_whitespace();
+ // Make sure there is no trailing characters.
+ if self.eof() {
+ ok(value)
+ } else {
+ self.error("trailing characters")
+ }
+ }
+ e { e }
+ }
+ }
+
+ fn parse_value() -> result<json, error> {
+ self.parse_whitespace();
+
+ if self.eof() { ret self.error("EOF while parsing value"); }
+
+ alt self.ch {
+ 'n' { self.parse_ident("ull", null) }
+ 't' { self.parse_ident("rue", boolean(true)) }
+ 'f' { self.parse_ident("alse", boolean(false)) }
+ '0' to '9' | '-' { self.parse_number() }
+ '"' {
+ alt self.parse_str() {
+ ok(s) { ok(string(s)) }
+ err(e) { err(e) }
+ }
+ }
+ '[' { self.parse_list() }
+ '{' { self.parse_object() }
+ _ { self.error("invalid syntax") }
+ }
+ }
+
+ fn parse_whitespace() {
+ while char::is_whitespace(self.ch) { self.bump(); }
+ }
+
+ fn parse_ident(ident: str, value: json) -> result<json, error> {
+ if str::all(ident, { |c| c == self.next_char() }) {
+ self.bump();
+ ok(value)
+ } else {
+ self.error("invalid syntax")
+ }
+ }
+
+ fn parse_number() -> result<json, error> {
+ let mut neg = 1f;
+
+ if self.ch == '-' {
+ self.bump();
+ neg = -1f;
+ }
+
+ let mut res = alt self.parse_integer() {
+ ok(res) { res }
+ err(e) { ret err(e); }
+ };
+
+ if self.ch == '.' {
+ alt self.parse_decimal(res) {
+ ok(r) { res = r; }
+ err(e) { ret err(e); }
+ }
+ }
+
+ if self.ch == 'e' || self.ch == 'E' {
+ alt self.parse_exponent(res) {
+ ok(r) { res = r; }
+ err(e) { ret err(e); }
+ }
+ }
+
+ ok(num(neg * res))
+ }
+
+ fn parse_integer() -> result<float, error> {
+ let mut res = 0f;
+
+ alt self.ch {
+ '0' {
+ self.bump();
+
+ // There can be only one leading '0'.
+ alt self.ch {
+ '0' to '9' { ret self.error("invalid number"); }
+ _ {}
+ }
+ }
+ '1' to '9' {
+ while !self.eof() {
+ alt self.ch {
+ '0' to '9' {
+ res *= 10f;
+ res += ((self.ch as int) - ('0' as int)) as float;
+
+ self.bump();
+ }
+ _ { break; }
+ }
+ }
+ }
+ _ { ret self.error("invalid number"); }
+ }
+
+ ok(res)
+ }
+
+ fn parse_decimal(res: float) -> result<float, error> {
+ self.bump();
+
+ // Make sure a digit follows the decimal place.
+ alt self.ch {
+ '0' to '9' {}
+ _ { ret self.error("invalid number"); }
+ }
+
+ let mut res = res;
+ let mut dec = 1f;
+ while !self.eof() {
+ alt self.ch {
+ '0' to '9' {
+ dec /= 10f;
+ res += (((self.ch as int) - ('0' as int)) as float) * dec;
+
+ self.bump();
+ }
+ _ { break; }
+ }
+ }
+
+ ok(res)
+ }
+
+ fn parse_exponent(res: float) -> result<float, error> {
+ self.bump();
+
+ let mut res = res;
+ let mut exp = 0u;
+ let mut neg_exp = false;
+
+ alt self.ch {
+ '+' { self.bump(); }
+ '-' { self.bump(); neg_exp = true; }
+ _ {}
+ }
+
+ // Make sure a digit follows the exponent place.
+ alt self.ch {
+ '0' to '9' {}
+ _ { ret self.error("invalid number"); }
+ }
+
+ while !self.eof() {
+ alt self.ch {
+ '0' to '9' {
+ exp *= 10u;
+ exp += (self.ch as uint) - ('0' as uint);
+
+ self.bump();
+ }
+ _ { break; }
+ }
+ }
+
+ let exp = float::pow_with_uint(10u, exp);
+ if neg_exp {
+ res /= exp;
+ } else {
+ res *= exp;
+ }
+
+ ok(res)
+ }
+
+ fn parse_str() -> result<str, error> {
+ let mut escape = false;
+ let mut res = "";
+
+ while !self.eof() {
+ self.bump();
+
+ if (escape) {
+ alt self.ch {
+ '"' { str::push_char(res, '"'); }
+ '\\' { str::push_char(res, '\\'); }
+ '/' { str::push_char(res, '/'); }
+ 'b' { str::push_char(res, '\x08'); }
+ 'f' { str::push_char(res, '\x0c'); }
+ 'n' { str::push_char(res, '\n'); }
+ 'r' { str::push_char(res, '\r'); }
+ 't' { str::push_char(res, '\t'); }
+ 'u' {
+ // Parse \u1234.
+ let mut i = 0u;
+ let mut n = 0u;
+ while i < 4u {
+ alt self.next_char() {
+ '0' to '9' {
+ n = n * 10u +
+ (self.ch as uint) - ('0' as uint);
+ }
+ _ { ret self.error("invalid \\u escape"); }
+ }
+ i += 1u;
+ }
+
+ // Error out if we didn't parse 4 digits.
+ if i != 4u {
+ ret self.error("invalid \\u escape");
+ }
+
+ str::push_char(res, n as char);
+ }
+ _ { ret self.error("invalid escape"); }
+ }
+ escape = false;
+ } else if self.ch == '\\' {
+ escape = true;
+ } else {
+ if self.ch == '"' {
+ self.bump();
+ ret ok(res);
+ }
+ str::push_char(res, self.ch);
+ }
+ }
+
+ self.error("EOF while parsing string")
+ }
+
+ fn parse_list() -> result<json, error> {
+ self.bump();
+ self.parse_whitespace();
+
+ let mut values = [];
+
+ if self.ch == ']' {
+ self.bump();
+ ret ok(list(values));
+ }
+
+ loop {
+ alt self.parse_value() {
+ ok(v) { vec::push(values, v); }
+ e { ret e; }
+ }
+
+ self.parse_whitespace();
+ if self.eof() {
+ ret self.error("EOF while parsing list");
+ }
+
+ alt self.ch {
+ ',' { self.bump(); }
+ ']' { self.bump(); ret ok(list(values)); }
+ _ { ret self.error("expecting ',' or ']'"); }
+ }
+ };
+ }
+
+ fn parse_object() -> result<json, error> {
+ self.bump();
+ self.parse_whitespace();
+
+ let values = map::str_hash();
+
+ if self.ch == '}' {
+ self.bump();
+ ret ok(dict(values));
+ }
+
+ while !self.eof() {
+ self.parse_whitespace();
+
+ if self.ch != '"' {
+ ret self.error("key must be a string");
+ }
+
+ let key = alt self.parse_str() {
+ ok(key) { key }
+ err(e) { ret err(e); }
+ };
+
+ self.parse_whitespace();
+
+ if self.ch != ':' {
+ if self.eof() { break; }
+ ret self.error("expecting ':'");
+ }
+ self.bump();
+
+ alt self.parse_value() {
+ ok(value) { values.insert(key, value); }
+ e { ret e; }
+ }
+ self.parse_whitespace();
+
+ alt self.ch {
+ ',' { self.bump(); }
+ '}' { self.bump(); ret ok(dict(values)); }
+ _ {
+ if self.eof() { break; }
+ ret self.error("expecting ',' or '}'");
+ }
+ }
+ }
+
+ ret self.error("EOF while parsing object");
+ }
+}
+
+#[doc = "Deserializes a json value from an io::reader"]
+fn from_reader(rdr: io::reader) -> result<json, error> {
+ let parser = {
+ rdr: rdr,
+ mut ch: rdr.read_char(),
+ mut line: 1u,
+ mut col: 1u,
+ };
+
+ parser.parse()
+}
+
+#[doc = "Deserializes a json value from a string"]
+fn from_str(s: str) -> result<json, error> {
+ io::with_str_reader(s, from_reader)
+}
+
+#[doc = "Test if two json values are equal"]
+fn eq(value0: json, value1: json) -> bool {
+ alt (value0, value1) {
+ (num(f0), num(f1)) { f0 == f1 }
+ (string(s0), string(s1)) { s0 == s1 }
+ (boolean(b0), boolean(b1)) { b0 == b1 }
+ (list(l0), list(l1)) { vec::all2(l0, l1, eq) }
+ (dict(d0), dict(d1)) {
+ if d0.size() == d1.size() {
+ let mut equal = true;
+ d0.items { |k, v0|
+ alt d1.find(k) {
+ some(v1) {
+ if !eq(v0, v1) { equal = false; } }
+ none { equal = false; }
+ }
+ };
+ equal
+ } else {
+ false
+ }
+ }
+ (null, null) { true }
+ _ { false }
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ fn mk_dict(items: [(str, json)]) -> json {
+ let d = map::str_hash();
+
+ vec::iter(items) { |item|
+ let (key, value) = item;
+ d.insert(key, value);
+ };
+
+ dict(d)
+ }
+
+ #[test]
+ fn test_write_null() {
+ assert to_str(null) == "null";
+ }
+
+ #[test]
+ fn test_write_num() {
+ assert to_str(num(3f)) == "3";
+ assert to_str(num(3.1f)) == "3.1";
+ assert to_str(num(-1.5f)) == "-1.5";
+ assert to_str(num(0.5f)) == "0.5";
+ }
+
+ #[test]
+ fn test_write_str() {
+ assert to_str(string("")) == "\"\"";
+ assert to_str(string("foo")) == "\"foo\"";
+ }
+
+ #[test]
+ fn test_write_bool() {
+ assert to_str(boolean(true)) == "true";
+ assert to_str(boolean(false)) == "false";
+ }
+
+ #[test]
+ fn test_write_list() {
+ assert to_str(list([])) == "[]";
+ assert to_str(list([boolean(true)])) == "[true]";
+ assert to_str(list([
+ boolean(false),
+ null,
+ list([string("foo\nbar"), num(3.5f)])
+ ])) == "[false, null, [\"foo\\nbar\", 3.5]]";
+ }
+
+ #[test]
+ fn test_write_dict() {
+ assert to_str(mk_dict([])) == "{}";
+ assert to_str(mk_dict([("a", boolean(true))])) == "{ \"a\": true }";
+ assert to_str(mk_dict([
+ ("a", boolean(true)),
+ ("b", list([
+ mk_dict([("c", string("\x0c\r"))]),
+ mk_dict([("d", string(""))])
+ ]))
+ ])) ==
+ "{ " +
+ "\"a\": true, " +
+ "\"b\": [" +
+ "{ \"c\": \"\\f\\r\" }, " +
+ "{ \"d\": \"\" }" +
+ "]" +
+ " }";
+ }
+
+ #[test]
+ fn test_trailing_characters() {
+ assert from_str("nulla") ==
+ err({line: 1u, col: 5u, msg: "trailing characters"});
+ assert from_str("truea") ==
+ err({line: 1u, col: 5u, msg: "trailing characters"});
+ assert from_str("falsea") ==
+ err({line: 1u, col: 6u, msg: "trailing characters"});
+ assert from_str("1a") ==
+ err({line: 1u, col: 2u, msg: "trailing characters"});
+ assert from_str("[]a") ==
+ err({line: 1u, col: 3u, msg: "trailing characters"});
+ assert from_str("{}a") ==
+ err({line: 1u, col: 3u, msg: "trailing characters"});
+ }
+
+ #[test]
+ fn test_read_identifiers() {
+ assert from_str("n") ==
+ err({line: 1u, col: 2u, msg: "invalid syntax"});
+ assert from_str("nul") ==
+ err({line: 1u, col: 4u, msg: "invalid syntax"});
+
+ assert from_str("t") ==
+ err({line: 1u, col: 2u, msg: "invalid syntax"});
+ assert from_str("truz") ==
+ err({line: 1u, col: 4u, msg: "invalid syntax"});
+
+ assert from_str("f") ==
+ err({line: 1u, col: 2u, msg: "invalid syntax"});
+ assert from_str("faz") ==
+ err({line: 1u, col: 3u, msg: "invalid syntax"});
+
+ assert from_str("null") == ok(null);
+ assert from_str("true") == ok(boolean(true));
+ assert from_str("false") == ok(boolean(false));
+ assert from_str(" null ") == ok(null);
+ assert from_str(" true ") == ok(boolean(true));
+ assert from_str(" false ") == ok(boolean(false));
+ }
+
+ #[test]
+ fn test_read_num() {
+ assert from_str("+") ==
+ err({line: 1u, col: 1u, msg: "invalid syntax"});
+ assert from_str(".") ==
+ err({line: 1u, col: 1u, msg: "invalid syntax"});
+
+ assert from_str("-") ==
+ err({line: 1u, col: 2u, msg: "invalid number"});
+ assert from_str("00") ==
+ err({line: 1u, col: 2u, msg: "invalid number"});
+ assert from_str("1.") ==
+ err({line: 1u, col: 3u, msg: "invalid number"});
+ assert from_str("1e") ==
+ err({line: 1u, col: 3u, msg: "invalid number"});
+ assert from_str("1e+") ==
+ err({line: 1u, col: 4u, msg: "invalid number"});
+
+ assert from_str("3") == ok(num(3f));
+ assert from_str("3.1") == ok(num(3.1f));
+ assert from_str("-1.2") == ok(num(-1.2f));
+ assert from_str("0.4") == ok(num(0.4f));
+ assert from_str("0.4e5") == ok(num(0.4e5f));
+ assert from_str("0.4e+15") == ok(num(0.4e15f));
+ assert from_str("0.4e-01") == ok(num(0.4e-01f));
+ assert from_str(" 3 ") == ok(num(3f));
+ }
+
+ #[test]
+ fn test_read_str() {
+ assert from_str("\"") ==
+ err({line: 1u, col: 2u, msg: "EOF while parsing string"});
+ assert from_str("\"lol") ==
+ err({line: 1u, col: 5u, msg: "EOF while parsing string"});
+
+ assert from_str("\"\"") == ok(string(""));
+ assert from_str("\"foo\"") == ok(string("foo"));
+ assert from_str("\"\\\"\"") == ok(string("\""));
+ assert from_str("\"\\b\"") == ok(string("\x08"));
+ assert from_str("\"\\n\"") == ok(string("\n"));
+ assert from_str("\"\\r\"") == ok(string("\r"));
+ assert from_str("\"\\t\"") == ok(string("\t"));
+ assert from_str(" \"foo\" ") == ok(string("foo"));
+ }
+
+ #[test]
+ fn test_read_list() {
+ assert from_str("[") ==
+ err({line: 1u, col: 2u, msg: "EOF while parsing value"});
+ assert from_str("[1") ==
+ err({line: 1u, col: 3u, msg: "EOF while parsing list"});
+ assert from_str("[1,") ==
+ err({line: 1u, col: 4u, msg: "EOF while parsing value"});
+ assert from_str("[1,]") ==
+ err({line: 1u, col: 4u, msg: "invalid syntax"});
+ assert from_str("[6 7]") ==
+ err({line: 1u, col: 4u, msg: "expecting ',' or ']'"});
+
+ assert from_str("[]") == ok(list([]));
+ assert from_str("[ ]") == ok(list([]));
+ assert from_str("[true]") == ok(list([boolean(true)]));
+ assert from_str("[ false ]") == ok(list([boolean(false)]));
+ assert from_str("[null]") == ok(list([null]));
+ assert from_str("[3, 1]") == ok(list([num(3f), num(1f)]));
+ assert from_str("\n[3, 2]\n") == ok(list([num(3f), num(2f)]));
+ assert from_str("[2, [4, 1]]") ==
+ ok(list([num(2f), list([num(4f), num(1f)])]));
+ }
+
+ #[test]
+ fn test_read_dict() {
+ assert from_str("{") ==
+ err({line: 1u, col: 2u, msg: "EOF while parsing object"});
+ assert from_str("{ ") ==
+ err({line: 1u, col: 3u, msg: "EOF while parsing object"});
+ assert from_str("{1") ==
+ err({line: 1u, col: 2u, msg: "key must be a string"});
+ assert from_str("{ \"a\"") ==
+ err({line: 1u, col: 6u, msg: "EOF while parsing object"});
+ assert from_str("{\"a\"") ==
+ err({line: 1u, col: 5u, msg: "EOF while parsing object"});
+ assert from_str("{\"a\" ") ==
+ err({line: 1u, col: 6u, msg: "EOF while parsing object"});
+
+ assert from_str("{\"a\" 1") ==
+ err({line: 1u, col: 6u, msg: "expecting ':'"});
+ assert from_str("{\"a\":") ==
+ err({line: 1u, col: 6u, msg: "EOF while parsing value"});
+ assert from_str("{\"a\":1") ==
+ err({line: 1u, col: 7u, msg: "EOF while parsing object"});
+ assert from_str("{\"a\":1 1") ==
+ err({line: 1u, col: 8u, msg: "expecting ',' or '}'"});
+ assert from_str("{\"a\":1,") ==
+ err({line: 1u, col: 8u, msg: "EOF while parsing object"});
+
+ assert eq(result::get(from_str("{}")), mk_dict([]));
+ assert eq(result::get(from_str("{\"a\": 3}")),
+ mk_dict([("a", num(3.0f))]));
+
+ assert eq(result::get(from_str("{ \"a\": null, \"b\" : true }")),
+ mk_dict([("a", null), ("b", boolean(true))]));
+ assert eq(result::get(from_str("\n{ \"a\": null, \"b\" : true }\n")),
+ mk_dict([("a", null), ("b", boolean(true))]));
+ assert eq(result::get(from_str("{\"a\" : 1.0 ,\"b\": [ true ]}")),
+ mk_dict([
+ ("a", num(1.0)),
+ ("b", list([boolean(true)]))
+ ]));
+ assert eq(result::get(from_str(
+ "{" +
+ "\"a\": 1.0, " +
+ "\"b\": [" +
+ "true," +
+ "\"foo\\nbar\", " +
+ "{ \"c\": {\"d\": null} } " +
+ "]" +
+ "}")),
+ mk_dict([
+ ("a", num(1.0f)),
+ ("b", list([
+ boolean(true),
+ string("foo\nbar"),
+ mk_dict([
+ ("c", mk_dict([("d", null)]))
+ ])
+ ]))
+ ]));
+ }
+
+ #[test]
+ fn test_multiline_errors() {
+ assert from_str("{\n \"foo\":\n \"bar\"") ==
+ err({line: 3u, col: 8u, msg: "EOF while parsing object"});
+ }
+}
diff --git a/tests/examplefiles/test.R b/tests/examplefiles/test.R
index c53edd13..54325339 100644
--- a/tests/examplefiles/test.R
+++ b/tests/examplefiles/test.R
@@ -1,119 +1,153 @@
-###################################
-####### emplikH1.test() ##########
-###################################
-
-emplikH1.test <- function(x, d, theta, fun,
- tola = .Machine$double.eps^.25)
-{
-n <- length(x)
-if( n <= 2 ) stop("Need more observations")
-if( length(d) != n ) stop("length of x and d must agree")
-if(any((d!=0)&(d!=1))) stop("d must be 0/1's for censor/not-censor")
-if(!is.numeric(x)) stop("x must be numeric values --- observed times")
-
-#temp<-summary(survfit(Surv(x,d),se.fit=F,type="fleming",conf.type="none"))
-#
-newdata <- Wdataclean2(x,d)
-temp <- DnR(newdata$value, newdata$dd, newdata$weight)
-
-time <- temp$time # only uncensored time? Yes.
-risk <- temp$n.risk
-jump <- (temp$n.event)/risk
-
-funtime <- fun(time)
-funh <- (n/risk) * funtime # that is Zi
-funtimeTjump <- funtime * jump
-
-if(jump[length(jump)] >= 1) funh[length(jump)] <- 0 #for inthaz and weights
-
-inthaz <- function(x, ftj, fh, thet){ sum(ftj/(1 + x * fh)) - thet }
-
-diff <- inthaz(0, funtimeTjump, funh, theta)
-
-if( diff == 0 ) { lam <- 0 } else {
- step <- 0.2/sqrt(n)
- if(abs(diff) > 6*log(n)*step )
- stop("given theta value is too far away from theta0")
-
- mini<-0
- maxi<-0
- if(diff > 0) {
- maxi <- step
- while(inthaz(maxi, funtimeTjump, funh, theta) > 0 && maxi < 50*log(n)*step)
- maxi <- maxi+step
- }
- else {
- mini <- -step
- while(inthaz(mini, funtimeTjump, funh, theta) < 0 && mini > - 50*log(n)*step)
- mini <- mini - step
- }
-
- if(inthaz(mini, funtimeTjump, funh, theta)*inthaz(maxi, funtimeTjump, funh, theta) > 0 )
- stop("given theta is too far away from theta0")
-
- temp2 <- uniroot(inthaz,c(mini,maxi), tol = tola,
- ftj=funtimeTjump, fh=funh, thet=theta)
- lam <- temp2$root
+#!/usr/bin/env Rscript
+### Example R script for syntax highlighting
+
+# This is also a comment
+
+## Valid names
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV0123456789._a <- NULL
+.foo_ <- NULL
+._foo <- NULL
+
+## Invalid names
+0abc <- NULL
+.0abc <- NULL
+abc+cde <- NULL
+
+## Reserved Words
+NA
+NA_integer_
+NA_real_
+NA_character_
+NA_complex_
+NULL
+NaN
+Inf
+## Not reserved
+NULLa <- NULL
+NULL1 <- NULL
+NULL. <- NULL
+NA_foo_ <- NULL
+
+## Numbers
+12345678901
+123456.78901
+123e3
+123E3
+1.23e-3
+1.23e3
+1.23e-3
+## integer constants
+123L
+1.23L
+## imaginary numbers
+123i
+-123i
+123e4i
+123e-4i
+## Hex numbers
+0xabcdefABCDEF01234
+0xabcp123
+0xabcP123
+## Not hex
+0xg
+
+## Special operators %xyz%
+## %xyz%
+1 %% 2
+diag(2) %*% diag(2)
+1 %/% 2
+1 %in% 1:10
+diag(2) %o% diag(2)
+diag(2) %x% diag(2)
+`%foo bar%` <- function(x, y) x + y
+1 %foo bar% 2
+
+## Control Structures (3.2) and Function
+## if, else
+if (TRUE) print("foo") else print("bar")
+## For, in
+for(i in 1:5) {
+ print(i)
}
-
-onepluslamh<- 1 + lam * funh ### this is 1 + lam Zi in Ref.
-
-weights <- jump/onepluslamh #need to change last jump to 1? NO. see above
-
-loglik <- 2*(sum(log(onepluslamh)) - sum((onepluslamh-1)/onepluslamh) )
-#?is that right? YES see (3.2) in Ref. above. This ALR, or Poisson LR.
-
-#last <- length(jump) ## to compute loglik2, we need to drop last jump
-#if (jump[last] == 1) {
-# risk1 <- risk[-last]
-# jump1 <- jump[-last]
-# weights1 <- weights[-last]
-# } else {
-# risk1 <- risk
-# jump1 <- jump
-# weights1 <- weights
-# }
-#loglik2 <- 2*( sum(log(onepluslamh)) +
-# sum( (risk1 -1)*log((1-jump1)/(1- weights1) ) ) )
-##? this likelihood seems have negative values sometimes???
-
-list( logemlik=loglik, ### logemlikv2=loglik2,
- lambda=lam, times=time, wts=weights,
- nits=temp2$nf, message=temp2$message )
+## While, break
+i <- 1
+while (TRUE) {
+ i <- i + 1
+ if (i > 3) break
}
-
-library("graphics")
-
-par(mfrow = c(1, 2))
-# plot histogram
-x <- rnorm(100)
-if (max(x) > 100)
- stop("Quite unexpected.")
-else
- hist(x, plot=TRUE, col="ivory")
-
-# from doc: lowess
-plot(cars, main = "lowess(cars)")
- lines(lowess(cars), col = 2)
- lines(lowess(cars, f=.2), col = 3)
- legend(5, 120, c(paste("f = ", c("2/3", ".2"))), lty = 1, col = 2:3)
-
-# from doc: is.na
-is.na(c(1, NA))
-
-# from doc: Extract
-y <- list(1,2,a=4,5)
-y[c(3,4)] # a list containing elements 3 and 4 of y
-y$a # the element of y named a
-
-# from doc: for
-for(n in c(2,5,10,20,50)) {
- x <- stats::rnorm(n)
- cat(n,":", sum(x2),"\n")
+## Repeat
+repeat {1+1}
+## Switch
+x <- 3
+switch(x, 2+2, mean(1:10), rnorm(5))
+## Function, dot-dot-dot, return
+foo <- function(...) {
+ return(sum(...))
+}
+# Not keywords
+functiona <- 2 + 2
+function. <- 2 + 2
+function1 <- 2 + 2
+
+
+## Grouping Tokens 10.3.7
+## Parentheses
+1 + (2 + 3)
+## brackets
+foo <- function(a) {
+ a + 1
}
-class(fo <- y ~ x1*x2) # "formula"
-
-
-
-
+## Indexing 10.3.8
+## []
+bar <- 1:10
+bar[3]
+## [[]]
+foo <- list(a=1, b=2, c=3)
+foo[["a"]]
+## $
+foo$a
+foo$"a"
+
+## Operators
+2 - 2
+2 + 2
+2 ~ 2
+! TRUE
+?"help"
+1:2
+2 * 2
+2 / 2
+2^2
+2 < 2
+2 > 2
+2 == 2
+2 >= 2
+2 <= 2
+2 != 2
+TRUE & FALSE
+TRUE && FALSE
+TRUE | FALSE
+TRUE || FALSE
+foo <- 2 + 2
+foo = 2 + 2
+2 + 2 -> foo
+foo <<- 2 + 2
+2 + 2 ->> foo
+base:::sum
+base::sum
+
+## Strings
+foo <- "hello, world!"
+foo <- 'hello, world!'
+foo <- "Hello, 'world!"
+foo <- 'Hello, "world!'
+foo <- 'Hello, \'world!\''
+foo <- "Hello, \"world!\""
+foo <- "Hello,
+world!"
+foo <- 'Hello,
+world!'
+
+## Backtick strings
+`foo123 +!"bar'baz` <- 2 + 2
diff --git a/tests/examplefiles/test.cu b/tests/examplefiles/test.cu
new file mode 100644
index 00000000..19f66802
--- /dev/null
+++ b/tests/examplefiles/test.cu
@@ -0,0 +1,36 @@
+#include <stdio.h>
+
+// __device__ function
+__device__ void func()
+{
+ short* array0 = (short*)array;
+ float* array1 = (float*)&array0[127];
+}
+
+/* __global__ function */
+__global__ static void reduction(const float* __restrict__ input, float *output, clock_t *timer)
+{
+ // __shared__ float shared[2 * blockDim.x];
+ extern __shared__ float shared[];
+
+ const int tid = threadIdx.x;
+ const int bid = blockIdx.x;
+
+ if (threadIdx.x == 0) {
+ __threadfence();
+ }
+
+ // Perform reduction to find minimum.
+ for (int d = blockDim.x; d > 0; d /= 2)
+ {
+ __syncthreads();
+ }
+}
+
+int main(int argc, char **argv)
+{
+ dim3 dimBlock(8, 8, 1);
+
+ timedReduction<<<dimBlock, 256, 256, 0>>>(dinput, doutput, dtimer);
+ cudaDeviceReset();
+}