github-linguist 7.8.0 → 7.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +47 -0
  3. data/grammars/hint.haskell.json +47 -0
  4. data/grammars/hint.message.haskell.json +47 -0
  5. data/grammars/hint.type.haskell.json +47 -0
  6. data/grammars/markdown.plantuml.codeblock.json +26 -0
  7. data/grammars/source.4dm.json +104 -33
  8. data/grammars/source.abap.json +1 -1
  9. data/grammars/source.ahk.json +6 -2
  10. data/grammars/source.chapel.json +4 -4
  11. data/grammars/source.clarion.json +6 -6
  12. data/grammars/source.csound.json +1 -1
  13. data/grammars/source.dart.json +57 -31
  14. data/grammars/source.elixir.json +8 -0
  15. data/grammars/source.gcode.json +0 -4
  16. data/grammars/source.hack.json +4 -18
  17. data/grammars/source.haskell.json +47 -0
  18. data/grammars/source.hsig.json +47 -0
  19. data/grammars/source.julia.json +17 -17
  20. data/grammars/source.lean.json +19 -3
  21. data/grammars/source.lean.markdown.json +2598 -0
  22. data/grammars/source.matlab.json +215 -152
  23. data/grammars/source.mrc.json +416 -534
  24. data/grammars/source.nasl.json +155 -0
  25. data/grammars/source.nextflow.json +2 -2
  26. data/grammars/source.p4.json +21 -5
  27. data/grammars/source.prisma.json +7 -0
  28. data/grammars/source.qasm.json +66 -0
  29. data/grammars/source.ql.json +1408 -0
  30. data/grammars/source.tnsaudit.json +256 -0
  31. data/grammars/source.v.json +1 -1
  32. data/grammars/source.wsd.json +775 -0
  33. data/grammars/text.tex.latex.haskell.json +47 -0
  34. data/grammars/version +1 -1
  35. data/lib/linguist/VERSION +1 -1
  36. data/lib/linguist/file_blob.rb +1 -1
  37. data/lib/linguist/generated.rb +14 -3
  38. data/lib/linguist/heuristics.yml +7 -0
  39. data/lib/linguist/languages.json +1 -1
  40. data/lib/linguist/languages.yml +39 -0
  41. data/lib/linguist/linguist.bundle +0 -0
  42. data/lib/linguist/samples.json +1169 -38
  43. data/lib/linguist/shebang.rb +5 -3
  44. metadata +9 -3
  45. data/grammars/source.yaml-ext.json +0 -324
@@ -0,0 +1,155 @@
1
+ {
2
+ "name": "NASL",
3
+ "scopeName": "source.nasl",
4
+ "patterns": [
5
+ {
6
+ "include": "#line_comment"
7
+ },
8
+ {
9
+ "name": "comment.block.nasl",
10
+ "begin": "\\s*/\\*",
11
+ "end": "\\*/",
12
+ "captures": {
13
+ "0": {
14
+ "name": "punctuation.definition.comment.nasl"
15
+ }
16
+ }
17
+ },
18
+ {
19
+ "name": "comment.block.documentation.nasl",
20
+ "begin": "^=",
21
+ "end": "^=cut",
22
+ "captures": {
23
+ "0": {
24
+ "name": "punctuation.definition.comment.nasl"
25
+ }
26
+ }
27
+ },
28
+ {
29
+ "name": "keyword.control.nasl",
30
+ "match": "\\b(if|else|while|for|return|foreach|break|continue)\\b"
31
+ },
32
+ {
33
+ "name": "string.quoted.double.nasl",
34
+ "begin": "\"",
35
+ "end": "\""
36
+ },
37
+ {
38
+ "name": "string.quoted.single.nasl",
39
+ "begin": "'",
40
+ "end": "'",
41
+ "patterns": [
42
+ {
43
+ "name": "constant.character.escape.nasl",
44
+ "match": "\\\\."
45
+ }
46
+ ]
47
+ },
48
+ {
49
+ "name": "meta.function.nasl",
50
+ "begin": "(^\\s*)(public|private)?\\s+(function)(?:\\s+|(\\s*\u0026\\s*))(?:|([a-zA-Z0-9_~]+))\\s*(\\()",
51
+ "end": "\\)",
52
+ "captures": {
53
+ "1": {
54
+ "name": "storage.type.modifier.nasl"
55
+ },
56
+ "2": {
57
+ "name": "storage.type.function.nasl"
58
+ },
59
+ "3": {
60
+ "name": "storage.type.method.nasl"
61
+ },
62
+ "4": {
63
+ "name": "support.function.magic.nasl"
64
+ },
65
+ "5": {
66
+ "name": "entity.name.function.nasl"
67
+ },
68
+ "6": {
69
+ "name": "punctuation.definition.parameters.begin.nasl"
70
+ }
71
+ },
72
+ "endCaptures": {
73
+ "1": {
74
+ "name": "punctuation.definition.parameters.end.nasl"
75
+ }
76
+ }
77
+ },
78
+ {
79
+ "name": "meta.class.nasl",
80
+ "begin": "^\\s*(object)\\s+([a-zA-Z0-9_]+)",
81
+ "end": "\\{",
82
+ "captures": {
83
+ "1": {
84
+ "name": "storage.type.modifier.nasl"
85
+ },
86
+ "2": {
87
+ "name": "entity.name.class.nasl"
88
+ }
89
+ }
90
+ },
91
+ {
92
+ "name": "storage.type.nasl",
93
+ "match": "\\b(local_var|global_var|var)\\b"
94
+ },
95
+ {
96
+ "name": "constant.language.nasl",
97
+ "match": "\\b(NULL|true|false|TRUE|FALSE|BYTE_ORDER_LITTLE_ENDIAN|PRINTER_ENUM_SHARED|PRINTER_ENUM_NETWORK|PRINTER_ENUM_NAME|PRINTER_ENUM_LOCAL|_FCT_ANON_ARGS|ACT_GATHER_INFO|AUDIT_WEB_APP_NOT_AFFECTED|AUDIT_SOCK_FAIL|ACT_DESTRUCTIVE_ATTACK|ACT_ATTACK|ENCAPS_TLSv1)\\b"
98
+ },
99
+ {
100
+ "name": "keyword.functions.standard",
101
+ "match": "\\b(display|exit|function|substr|isnull|raw_dword|crap|strlen|get_dword|mkdword|cstring|dump|mkpad|string|include|set_byte_order|isnull|strlen|get_string|get_port_state|open_sock_tcp|mkbyte|mkword|raw_string|query_scratchpad)\\b"
102
+ },
103
+ {
104
+ "name": "keyword.functions.smbinternal",
105
+ "match": "\\b(dce_rpc_pipe_request|dce_rpc_parse_response|dce_rpc_pipe_request|bind_pipe)\\b"
106
+ },
107
+ {
108
+ "name": "keyword.functions.kb",
109
+ "match": "\\b(get_kb_item|kb_smb_name|kb_smb_transport|kb_smb_login|kb_smb_password|kb_smb_domain|get_kb_item_or_exit)\\b"
110
+ },
111
+ {
112
+ "name": "keyword.functions.smb",
113
+ "match": "\\b(NetUseAdd|session_init|NetUseDel|session_get_hostname)\\b"
114
+ },
115
+ {
116
+ "name": "keyword.functions.reporting",
117
+ "match": "\\b(security_hole|security_note|security_report)\\b"
118
+ },
119
+ {
120
+ "name": "keyword.functions.scripts",
121
+ "match": "\\b(script_name|script_version|script_timeout|script_description|script_copyright|script_summary|script_category|script_family|xscript_end_attributes|xscript_cvs_date|script_dependencie|script_dependencies|script_require_keys|script_require_ports|script_require_udp_ports|script_exclude_keys|xscript_set_attribute|script_add_preference|script_get_preference|script_get_preference_file_content|script_get_preference_file_location|script_id|script_cve_id|script_bugtraq_id|script_xref|get_preference|safe_checks|replace_kb_item|set_kb_item|get_kb_item|get_kb_fresh_item|get_kb_list|security_warning|security_note|security_hole|scanner_add_port|scanner_status|scanner_get_port|open_sock_tcp|open_sock_udp|open_priv_sock_tcp|open_priv_sock_udp|recv|recv_line|send|close|join_multicast_group|leave_multicast_group|get_source_port|cgibin|is_cgi_installed|http_open_socket|http_head|http_get|http_post|http_delete|http_put|http_close_socket|get_host_name|get_host_ip|same_host|get_host_open_port|get_port_state|get_tcp_port_state|get_udp_port_state|islocalhost|islocalnet|get_port_transport|this_host|this_host_name|string|raw_string|strcat|display|ord|hex|hexstr|strstr|ereg|ereg_replace|egrep|eregmatch|match|substr|insstr|tolower|toupper|crap|strlen|split|chomp|int|stridx|str_replace|make_list|make_array|keys|max_index|sort|unixtime|gettimeofday|localtime|mktime|open_sock_kdc|start_denial|end_denial|dump_ctxt|typeof|exit|rand|usleep|sleep|isnull|defined_func|forge_ip_packet|get_ip_element|set_ip_elements|insert_ip_options|dump_ip_packet|forge_tcp_packet|get_tcp_element|set_tcp_elements|dump_tcp_packet|tcp_ping|forge_udp_packet|get_udp_element|set_udp_elements|dump_udp_packet|forge_icmp_packet|get_icmp_element|forge_igmp_packet|send_packet|pcap_next|send_capture|MD2|MD4|MD5|SHA|SHA1|RIPEMD160|HMAC_MD2|HMAC_MD5|HMAC_SHA|HMAC_SHA1|HMAC_DSS|HMAC_RIPEMD160|dh_generate_key|bn_random|bn_cmp|dh_compute_key|rsa_public_decrypt|bf_cbc_encrypt|bf_cbc_decrypt|dsa_do_verify|pem_to_rsa|pem_to_dsa|rsa_sign|dsa_do_sign|pread|find_in_path|fread|fwrite|unlink|get_tmp_dir|file_stat|file_open|file_close|file_read|file_write|file_seek|prompt|get_local_mac_addrs|func_has_arg|socket_get_error|big_endian|socket_ready|socket_negotiate_ssl|socket_pending|fill_list|zlib_compress|zlib_decompress|fork|bsd_byte_ordering|inject_packet|get_local_mac_addr|get_gw_mac_addr|prompt_password|disable_all_plugins|enable_plugin_family|disable_plugin_family|enable_plugin_id|disable_plugin_id|rm_kb_item|get_host_raw_ip|this_host_raw|aes_cbc_encrypt|aes_cbc_decrypt|tripledes_cbc_encrypt|tripledes_cbc_decrypt|file_is_signed|bind_sock_tcp|bind_sock_udp|sock_accept|make_path|start_trace|stop_trace|rsa_public_encrypt|rsa_private_encrypt|rsa_private_decrypt|bn_dec2raw|bn_raw2dec|bn_hex2raw|bn_raw2hex|tcp_scan|socketpair|syn_scan|platform|xmlparse|preg|pgrep|pregmatch|udp_scan|preg_replace|get_global_kb_list|set_global_kb_item|get_global_kb_item|open_sock2|mutex_lock|mutex_unlock|uint|aes_ctr_encrypt|aes_ctr_decrypt|set_mem_limits|report_xml_tag|script_set_attribute|script_end_attributes|datalink|link_layer|sendto|recvfrom|bpf_open|bpf_close|bpf_next|bn_add|bn_sub|bn_mul|bn_sqr|bn_div|bn_mod|bn_nnmod|bn_mod_add|bn_mod_sub|bn_mod_mul|bn_mod_sqr|bn_exp|bn_mod_exp|bn_gcd|readdir|ssl_accept|resolv|open_sock_proxy|get_peer_name|nessus_get_dir|rename|get_sock_name|shutdown|debug_exit|aes_cfb_encrypt|aes_cfb_decrypt|routethrough|socket_set_timeout|file_mtime|mkdir|rmdir|ssl_accept2|gzip_compress|deflate_compress|thread_create|wait|getpid|query_report|can_query_report|xslt_apply_stylesheet|platform_ptr_size|kill|nasl_level|socket_get_secure_renegotiation_support|SHA224|SHA256|SHA512|HMAC_SHA224|HMAC_SHA256|HMAC_SHA512|server_authenticate|server_is_user_admin|server_add_user|server_delete_user|server_user_chpasswd|server_list_users|server_feed_type|server_generate_token|server_validate_token|server_delete_token|server_get_plugin_list|server_get_plugin_preferences_list|server_get_plugin_description|server_get_preferences|server_do_scan|server_scan_list|server_list_reports|server_report_get_host_list|server_report_get_port_list|server_report_get_port_details|server_list_policies|server_delete_policy|server_rename_policy|server_add_policy|server_get_plugin_list_family|server_report_get_tags|server_scan_ctrl|server_report_delete|server_apply_filter_to_report|server_restart|server_import_nessus_file|server_get_plugins_md5|server_get_load|server_list_policies_summaries|server_get_plugin_list_matching_families|server_user_exists|server_import_policy_nessus_file|server_copy_policy|socket_redo_ssl_handshake|socket_reset_ssl|server_add_ticket|server_edit_ticket|server_delete_ticket|server_get_tickets|server_get_status|server_master_unlock|server_get_plugins_descriptions|server_get_policy|server_do_scan_as_user|server_scan_get_status|server_loading_progress|server_query_report|server_report_get_trail_details|acap_close|acap_command|acap_get_tag|acap_increment_tag|acap_open|acap_set_tag|acap_starttls|acquired_ticket |activex_check_fileversion|activex_end|activex_get_filename|activex_get_fileversion|activex_get_killbit|activex_get_name|activex_init|activex_is_installed|add_authority_information_access|add_authority_key_identifier|add_basic_constraints|add_certificate_policies|add_crl_distribution_points|add_extended_key_usage|add_extension_data|add_general_name|add_hex_string|add_hex_string_nl|add_install|add_key_usage|add_overflow|add_port_in_list|add_rdn_seq|add_rdn_seq_nl|_address_to_raw|add_string|add_string_nl|add_subject_alternative_name|add_subject_key_identifier|AFPLogin|aix_check_patch|aix_report_add|aix_report_get|already_known_flaw|answers_differ|apache_module_is_installed|ARCFOUR |arcfour_setkey |arp_ping|ascii |ascii2ebcdic|ascii2utf16LE|base64|base64_code|base64decode|base64_decode|beginning_of_response|ber_decode |ber_decode_oid |ber_encode |ber_get_addr |ber_get_counter32 |ber_get_data |ber_get_int |ber_get_octet_string |ber_get_oid |ber_get_response_pdu |ber_get_sequence |ber_get_timeticks |ber_length |ber_put_get_next_pdu |ber_put_get_pdu |ber_put_int |ber_put_null |ber_put_octet_string |ber_put_oid |ber_put_sequence |ber_put_set_pdu |bf_F|bind_pipe |blob_to_pem|blowfish_decipher |blowfish_decrypt |blowfish_encipher |blowfish_encrypt |blowfish_initialize |broken_asp_interpretor|broken_php_interpretor|broken_www_interpretor|bsal_getbyte|bsal_getdword|bsal_getword|bsal_length|bsal_new|bsal_read|buffer_parameter |build_url|build_url_data|can_host_asp|can_host_php|cdr_get_byte_order|cdr_marshal_long|cdr_marshal_num|cdr_marshal_octet|cdr_marshal_short|cdr_marshal_string|cdr_marshal_wstring|cdr_set_byte_order|cdr_unmarshal_long|cdr_unmarshal_num|cdr_unmarshal_octet|cdr_unmarshal_short|cdr_unmarshal_string|cdr_unmarshal_wstring|cert_get_ext|cert_report|cgi_dirs|check_account|check_asa_release|check_gssapi_token |check_ios_matrix|check_jar_hotfix|check_junos|check_kerberos_response |check_model|check_oracle_patch|check_pattern|check_release|_check_telnet|check_version |check_win_dir_trav|check_win_dir_trav_ka|cipher_cmp|cipher_name|cipher_report|cipher_strength|class_name |class_parameter |clean_string|clear_cookiejar|client_hello|client_send_cert |CloseFile |CloseServiceHandle |CloseSession|cmp_addr_v|cmp_build|cmp_html|cmp_release|cmpv|cmp_version|compute_diff|ControlService |convert_all_time|convert_dword |convert_generalized_time|convert_time_to_sec |convert_utc_time|crc32|CreateFile |CreateService |create_uddi_xml |crypt|cstring |cvsdate2unixtime|cvss_vector_to_base_score|cvss_vector_to_temporal_score|date_cmp|dce_rpc |dce_rpc_alter_context |dce_rpc_auth3 |dce_rpc_bind |dce_rpc_connect |dce_rpc_ntlmssp_header |dce_rpc_parse_bind_ack |dce_rpc_parse_response |dce_rpc_pipe_request |dce_rpc_request |dce_rpc_sendrecv_request |deb_check|deb_report_add|deb_report_get|deb_str_cmp|debug_print|deb_ver_cmp|dec2hex|declare_broken_web_server|decode_file_directory_info|decode_kb_blob|decode_smb2|decode_uuid |decrypt|default_account_report|DeleteService |deprecated_version|der_decode |der_decode_asrep |der_decode_kdcrep |der_decode_oid |der_decode_tgsrep |der_encode |der_encode_apreq |der_encode_asreq |der_encode_boolean|der_encode_crypt |der_encode_enumerated|der_encode_filter|der_encode_int |der_encode_int32 |der_encode_kdcreq |der_encode_kdc_req_body |der_encode_list |der_encode_name |der_encode_negtokeninit |der_encode_octet_string |der_encode_oid |der_encode_padata |der_encode_paenc|der_encode_request |der_encode_sequence |der_encode_string |der_encode_tgsreq |der_encode_time |derive_keys|der_length |der_parse_bool |der_parse_data |der_parse_int |der_parse_list |der_parse_list_oid |der_parse_octet_string |der_parse_oid |der_parse_sequence |der_parse_spnego_init |der_parse_spnego_resp |DES |des_cbc_checksum |des_cbc_decrypt2|des_cbc_encrypt |des_cbc_encrypt2|des_cbc_md5_checksum |des_cbc_md5_decrypt |des_cbc_md5_encrypt |des_cbc_string_to_key |des_encrypt |dh_gen_key|dh_valid_key|difftime|disable_cookiejar|disable_cookiejar_autosave|disable_socket_ka|display|dns_comp_get|dns_split|dns_str_get|dns_str_to_query_txt|do_check_win_dir_trav|dos_status |DSI_GetDataLen|DSI_GetErrorCode|DSI_LastError|DSI_Packet|DSI_SendRecv|dump|dump_certificate|dump_cookiejar|dump_line_and_data|dump_table|dynamic_web_content|ebcdic2ascii|enable_cookiejar|enable_cookiejar_autosave|enable_keepalive|encode_char |encode_int |encode_kb_blob|encode_uuid |EnumServicesStatus |erase_cookie|erase_http_cookie|err_print|estimate_load|esx_check|esx_report_get|exec_cmd|exec_cmds|extract_asa_version|extract_pattern_from_resp|extract_sql_backend_from_kb|extract_structures |extract_version|filter_rh_inconstency|FindFile|FindFirstFile |FindFirstFile2|find_install|find_issuer_idx|FindNextFile |FindNextFile2|find_pattern|find_reason|fingerprint_cert|fingerprint_string|fixparity|fix_rel_location|fixup_rpm_list|format_dn|FPCloseVol|FPEnumerateExt2|FPEnumerateExt2Parse|FPGetSrvrParms|FPGetSrvrParmsParseReply|FPLogin|FPLogout|FPOpenVol|FPOpenVolParseReply|fqdn_resolv|freebsd_packages|ftp_authenticate|ftp_close|ftp_pasv|ftp_recv_data|ftp_recv_line|ftp_recv_listing|ftp_send_cmd|ftp_starttls|generate_uuid|generic_str_cmp|get_3digits_svc|get_any_http_cookie|get_backport_banner|get_bignum1|GetBundleVersionCmd|_GetBundleVersionCmd|getbyte|get_byte |GetCarbonVersionCmd|get_cgi_arg_list|get_cgi_arg_val_list|get_cgi_list|get_cgi_methods|get_checksum_type |get_data_size|get_dirs_from_kb|getdword|get_dword |GetFileSize |GetFileVersion |GetFileVersionEx |get_form_action_list|get_form_enctype_list|get_form_method_list|get_ftp_banner|get_ftp_port|get_header_command_code|get_header_dos_error_code|get_header_flags|get_header_flags2|get_header_nt_error_code|get_header_signature|get_header_tid|get_header_uid|get_http_banner|get_http_cookie|get_http_cookie_from_key|get_http_cookie_keys|get_http_cookies_names|get_http_page|get_http_port|get_imap_banner |get_install_from_kb|get_install_report|get_kb_banner|get_kb_blob|get_kb_item_or_exit|get_kb_list_or_exit|get_mysql_version|get_oracle_os|get_oracle_version|get_parity |get_php_version|get_pop3_banner |get_port_for_service|GetProductVersion|get_query_txt|get_qword|getqword_shift|get_read_timeout|get_registered_option |get_report|get_rpc_port|get_rpc_port2|get_rpc_port3|GetSecurityInfo |get_server_cert|get_server_public_key|get_service|GetService |get_service_banner_line|GetServiceDisplayName |get_sid |get_smb_data|get_smb_header|get_smb_parameters|get_smtp_banner|get_squid_banner|get_ssh_banner|get_ssh_error|get_ssh_server_version|get_ssh_supported_authentication|get_ssl_ports|GetStatus|getstring|get_string |get_string2 |get_telnet_banner|get_tested_ports|get_unknown_banner|get_unknown_banner2|get_unknown_svc|get_ver_type|get_vuln_report|get_win32_find_data_fileattributes |get_win32_find_data_filename |getword|get_word |giop_marshal_message|giop_marshal_request|giop_unmarshal_message|giop_unmarshal_reply|gssapi_ssh_get_mic |headers_split|heuristic_sig|_hex |hex2dec|hex2raw|_hex2raw|hex2raw2|hex_buf|hexdump |hexnumber|__hex_value|hive_int2str|_HMAC_SHA256|hotfix_add_report|hotfix_check_3rd_party|hotfix_check_dhcpserver_installed|hotfix_check_domain_controler|hotfix_check_excel_version|hotfix_check_exchange_installed|hotfix_check_fversion|hotfix_check_fversion_end|hotfix_check_fversion_init|hotfix_check_ie_version|hotfix_check_iis_installed|hotfix_check_nt_server|hotfix_check_office_version|hotfix_check_outlook_version|hotfix_check_powerpoint_version|hotfix_check_publisher_version|hotfix_check_server_core|hotfix_check_sp|hotfix_check_wins_installed|hotfix_check_word_version|hotfix_check_works_installed|hotfix_data_access_version|hotfix_get_commonfilesdir|hotfix_get_mssqldir|hotfix_get_officecommonfilesdir|hotfix_get_officeprogramfilesdir|hotfix_get_programfilesdir|hotfix_get_programfilesdirx86|hotfix_get_report|hotfix_get_systemroot|hotfix_ie_gt|hotfix_is_vulnerable|hotfix_missing|hotfix_path2share|hotfix_security_hole|hotfix_security_note|hotfix_security_warning|hpux_check_ctx |hpux_check_patch |hpux_installed |hpux_patch_installed|htonl|htons|http_40x|http_add_auth_to_req|http_check_authentication|http_check_remote_code|http_check_remote_code |http_clear_error|http_close_socket_ka|_http_close_socket_ka_only|http_cookies_style|HTTP_DES |HTTP_des_encrypt |http_disable_auth_scheme|http_disable_keep_alive|http_enable_auth_scheme|http_enable_keep_alive|http_error_msg|http_force_keep_alive|http_form_login|http_get_cache|http_get_read_timeout|http_head_part|http_incr_timeout_on_err|http_is_broken|http_is_dead|http_keepalive_check_connection|http_keepalive_enabled|http_keepalive_recv_body|http_keepalive_send_recv|http_last_sent_request|http_login_incr_count|http_login_release_lock|http_login_take_lock|http_mk_buffer_from_req|http_mk_delete_req|http_mk_get_req|http_mk_head_req|http_mk_post_req|http_mk_proxy_request|http_mk_put_req|http_mk_req|http_mk_trace_req|HTTP_NTLM_Hash |HTTP_NTLM_Response |http_open_sock_err|http_open_socket_ka|HTTP_permute |http_reauthenticate_if_needed|_http_recv|http_recv|http_recv3|http_recv_body|http_recv_headers2|http_recv_headers3|http_recv_length|http_redirect_with_get|http_reopen_socket|http_send_get_post|http_send_recv|http_send_recv3|http_send_recv_buf|_http_send_recv_once|http_send_recv_req|http_server_header|http_set_async_sock|HTTP_set_des_key |http_set_error|http_set_max_req_sz|http_set_read_timeout|http_store_dialog|http_strerror|HTTP_str_to_key |http_transient_error|http_uri_is_subpath|icmp|ICMP|icmp_checksum|icmp_get|icmp_set|iiop_unmarshal_profile|imap_close|imap_get_tag|imap_increment_tag|imap_is_response_ok|imap_read_tagged_response|imap_send_cmd|imap_set_tag|imap_starttls|index_by_name|inet_sum|info_send_cmd|init|init_cookiejar|init_crypto_data|init_esx_check|init_snmp |inject_poison|insert_icmp|int2|integer |inv8 |inverse |ior_destringify|ior_unmarshal|ip|ip6|ip6_get|ip6_set|ipaddr|ip_checksum|ip_csum|ip_dot2raw|ip_finish_insert_option|ip_get|ip_insert_option|ip_option|ip_raw2dot|ip_set|is_accessible_share|is_cgi_installed3|is_cgi_installed_ka|is_embedded_server|is_host_ip|is_known_extension|isolate_pattern|is_password_prompt|isprint |is_private_addr|is_registered_option|is_same_host|issameoid|is_self_signed|is_signed_by|is_sshd_bugged|isUnicode |is_valid_snmp_product|is_weak_key |join|_junos_ver_compare|kb_smb_domain|kb_smb_login|kb_smb_name|kb_smb_password|kb_smb_transport|kb_ssh_certificate|kb_ssh_client_ver|kb_ssh_host|kb_ssh_login|kb_ssh_passphrase|kb_ssh_password|kb_ssh_privatekey|kb_ssh_publickey|kb_ssh_realm|kb_ssh_transport|kerberos_checksum |kerberos_decrypt |kerberos_encrypt |kerberos_securityblob |kerberos_ssh |kerberostime|kex_packet|known_service|ldap_bind_request|ldap_extended_request|ldap_get_last_error|ldap_init|ldap_modify_request|ldap_parse_bind_response|ldap_parse_enumerated|ldap_parse_extended_response|ldap_parse_modify_response|ldap_parse_response|ldap_parse_search_entry|ldap_parse_search_object_name|ldap_recv|ldap_recv_next|ldap_request|ldap_request_sendrecv|ldap_search_request|ldap_set_error|ldap_starttls|len_bn|len_long|LEword|line2string |list|list_uniq|LM_Hash |LM_Response |LMv2_Response |load_CA|load_cookiejar|load_tgs_session |LsaClose |LsaEnumerateAccountsWithUserRight |LsaLookupNames |LsaLookupSid |LsaOpenPolicy |LsaQueryDomainInformationPolicy |LsaQueryInformationPolicy |LsaQuerySecurityObject |lshift |mac_compute|maj_cmp|maj_vers_cmp|_make_hashset|make_service_list|merge|mkbedword|mkbyte|mk_cookie_header|mkdate|mkdns|mkdword|mkicmp|mkip|mkip6|mkipaddr|mkLEword|mklist|mk_list|mk_list_silent|mk_list_silent3|mkpacket|mkpad|mk_query|mk_query_txt|mktcp|mkudp|mkword|month_num_by_name|_msdos_time|ms_since_midnight|mul_overflow|mult_str|my_encode|mysql_check_version|mysql_close|mysql_get_caps|mysql_get_lang|mysql_get_last_error|mysql_get_null_string|mysql_get_protocol|mysql_get_salt|mysql_get_scramble|mysql_get_scramble323|mysql_get_socket|mysql_get_status|mysql_get_thread_id|mysql_get_variant|mysql_get_version|mysql_hash_password|mysql_init|mysql_is_error_packet|mysql_is_ok_packet|mysql_is_proto41_supported|mysql_login|mysql_open|mysql_parse_error_packet|mysql_recv_packet|mysql_send_packet|mysql_ver_cmp|netbios_encode|netbios_header |netbios_name|netbios_packet |netbios_sendrecv |netbios_session_request |NetEnum |NetGetInfo |NetGroupGetUsers |NetLocalGroupGetMembers |netop_banner_items|netop_check_and_add_banner|netop_each_found|netop_kb_derive|netop_log_detected|netop_product_ident|netop_spacepad|netop_zeropad|NetServerEnum |NetServerGetInfo |NetSessionEnum |NetShareEnum |NetUseAdd |NetUseDel |NetUserGetGroups |NetUserGetInfo |NetUserGetLocalGroups |NetUserGetModals |NetWkstaGetInfo |NetWkstaUserEnum |nfs_cwd|nfs_mount|nfs_readdir|nfs_umount|nntp_article|nntp_auth|nntp_cmd|nntp_connect|nntp_make_id|nntp_post|nntp_recv|nntp_send|nntp_starttls|nondigit_vers_cmp|normalize_url_path|normalize_value|NTLM_Hash |NTLM_Response |ntlmssp_auth_securityblob |ntlmssp_data |ntlmssp_negotiate_securityblob |ntlmssp_parse_challenge |ntlmssp_parse_response |NTLMv2_Hash |NTLMv2_Response |ntohl|ntohs|ntol|ntos|nt_status |null_length |_obj_cmp|obj_cmp|_obj_cmp_array|obj_random|_obj_random_array|_obj_random_data|_obj_random_string|on_exit|open|OpenSCManager |OpenService |OpenSession|open_sock_ssl|openssl_check_version|openssl_ver_cmp|os_name_split|packet_payload|packet_split|packettype|padsz|parse_access_description|parse_addrlist|parse_algorithm_identifier|parse_attribute_type_and_value|parse_authority_information_access|parse_authority_key_identifier|parse_basic_constraints|parse_cert_chain|parse_certificate_comment|parse_certificate_policies|parse_crl_distribution_points|parse_dacl |parse_der_cert|parse_distribution_point|parse_extended_key_usage|parse_extension|parse_extensions|parse_flags|parse_general_name|parse_general_names|parse_http_headers|parse_key_usage|parse_lsalookupsid |parse_pdacl |parse_pkg_name|parse_policy_information|parse_policy_qualifier_information|parse_private_key|parse_publickey_info|parse_rdn_sequence|parse_rpm_name|parse_security_descriptor |parse_setcookie_header|parse_subject_alternative_name|parse_subject_key_identifier|parse_tbs_certificate|parse_time|password_to_key|patch_installed|patch_release_number|payload|pem_to_blob|permute |php_ver_match|ping_host4|pkg_cmp|pkg_op|pkg_op_match|pkg_report_get|pkg_test|pop3_close|pop3_is_response_ok|pop3_read_response|pop3_send_cmd|pop3_starttls|pow2|pstring|putbignum|putbignum1|putstring|qpkg_check|qpkg_cmp|qpkg_report_add|qpkg_report_get|qpkg_ver_cmp|QueryServiceObjectSecurity |QueryServiceStatus |_rand64|rand_str|raw_byte |raw_dword |raw_int16|raw_int32|raw_int8|raw_ntlmssp_auth_securityblob |raw_ntlmssp_negotiate |raw_ntlmssp_parse_challenge |raw_qword|_raw_to_address|raw_word |rc4_hmac_checksum |rc4_hmac_decrypt |rc4_hmac_encrypt |rc4_hmac_string_to_key |read|read_dword |ReadFile |read_version_in_kb|recv_ssh_packet|recv_ssl|recv_until|redir_urlencode|RegCloseKey |RegConnectRegistry |RegEnumKey |RegEnumValue |RegGetKeySecurity |register_service|register_stream|registry_key_writeable_by_non_admin|_RegOpenKey |RegOpenKey |RegQueryInfoKey |RegQueryValue |reload_cookie_jars|remote_sig_match|removeMSBits|replace_cgi_1arg_token|replace_cgi_args_token|replace_http_cookies|replace_kb_blob|replace_unprintable_char|report_service|report_tftp_backdoor|reset_snmp_version|reverse|reverse8 |rlogin|rm_kb_blob|rm_kb_item|ROUND |rpc_accept_stat|rpc_getport |rpclong|rpc_packet |rpcpad|rpc_reply_stat|rpc_sendrecv |rpm_check|rpm_cmp|rpm_exists|rpm_report_add|rpm_report_get|run_injection_hdr|run_injection_param_names|S |SamCloseHandle |SamConnect2 |SamEnumerateDomainsInSamServer |SamGetAliasMemberShip |SamGetGroupsForUser |SamGetMembersInAlias |SamGetMembersInGroup |SamLookupDomainInSamServer |SamLookupIdsInDomain |SamLookupNamesInDomain |SamOpen |SamOpenAlias |SamOpenDomain |SamOpenGroup |SamOpenUser |SamQueryInformationDomain |SamQueryInformationUser |sanitize_utf16|save_tgs_session |save_version_in_kb|scanned_ports_list|scan_snmp_string|script_cvs_date|script_cwe_id|script_end_attributes|script_osvdb_id|script_set_attribute|script_set_cvss_base_vector|script_set_cvss3_base_vector|script_set_cvss_temporal_vector|security_report_v4|send_rexec|send_rsh|send_ssh_packet|service_is_dead|service_is_unknown|session_add_flags |session_add_flags2 |session_del_flags2 |session_get_addrlist |session_get_buffersize |session_get_cid |session_get_errorcode |session_get_flags |session_get_flags2 |session_get_hostname |session_get_mackey |session_get_messageid|session_get_mid |session_get_pid |session_get_secmode|session_get_sequencenumber |session_get_server_max_size |session_get_sid|session_get_socket |session_get_tid |session_get_timeout |session_get_uid |session_increase_sequencenumber |session_init |session_is_authenticated |session_is_guest |session_is_smb2|session_is_unicode |session_set_addrlist |session_set_authenticated |session_set_buffersize |session_set_errorcode |session_set_guest |session_set_host_info |session_set_hostname |session_set_mackey |session_set_mid |session_set_pid |session_set_secmode|session_set_server_max_size |session_set_sid|session_set_smb2|session_set_socket |session_set_tid |session_set_timeout |session_set_uid |session_set_unicode |session_smb2_support|set_byte_order|set_des_key |set_globals|set_http_cookie|set_http_cookie_from_hash|set_kb_banner|set_kb_blob|set_mysql_version|set_snmp_version|set_ssh_error|set_telnet_banner|set_unknown_banner|sha256|shrink_list|sid2string |sid_ldiv|sid_ltoa|silent_service|sinfp|sinfp_extract_options|sinfp_get_distance|sinfp_get_ip|sinfp_get_mss|sinfp_get_options|sinfp_get_tcp|sinfp_get_tcp_flags|sinfp_get_tcp_win|sinfp_heuristic_match|sinfp_match|sinfp_mkbinary|sip_open|sip_recv|sip_send|slack_elt_cmp|slack_ver_cmp|slackware_check|slackware_report_add|slackware_report_get|smb2_close|smb2_create|smb2_header|smb2_ioctl|smb2_login |smb2_logoff|smb2_negotiate|smb2_query_directory|smb2_query_info|smb2_read|smb2_recv |smb2_sendrecv|smb2_session_setup|smb2_tree_connect|smb2_tree_disconnect|smb2_write|smb_check_success |smb_close |smb_create_and_x |smb_data |smb_decode_header|smb_file_read|smb_header |smb_login |smb_logoff_andx |smb_negotiate_protocol |smb_nt_trans |smb_parameters |smb_read_and_x |smb_recv |smb_sendrecv|smb_session_setup_andx |smb_session_setup_andx_kerberos_core |smb_session_setup_andx_lanman_core |smb_session_setup_andx_ntlm_core |smb_session_setup_andx_ntlmssp_core |smb_trans2 |smb_trans_and_x |smb_trans_lanman |smb_trans_pipe |smb_tree_connect_and_x |smb_tree_disconnect |smb_write_and_x |smtp_close|smtp_from_header|smtp_open|smtp_recv_banner|smtp_recv_line|smtp_send_port|smtp_send_socket|smtp_starttls|smtp_to_header|snmp_assemble_authentication_data|snmp_assemble_request_data|snmp_exchange|snmp_extract_reply |snmp_put_engine_data|snmp_reply |snmp_request|snmp_request_next |snmp_request_set |snmpv3_authenticate_incoming|snmpv3_authenticate_outgoing|snmpv3_decrypt_incoming|snmpv3_encrypt_outgoing|snmpv3_fail|snmpv3_initial_request|snmpv3_parse_authoritative|snmpv3_parse_header|snmpv3_put_msg_global_data|snmpv3_request|solaris_check_patch|solaris_details_add|solaris_get_report|solaris_report_set|sol_vers_cmp|sort_cert_chain|space|split_long_line|split_tcp|split_udp|split_url|ssh1_recv|ssh1_send|ssh_auth_gssapi|ssh_auth_keyboard|ssh_auth_password|ssh_auth_publickey|ssh_auth_supported|ssh_close_channel|ssh_close_connection|ssh_cmd|ssh_cmd1|ssh_cmd_error|ssh_dss_verify|ssh_exchange_identification|ssh_hex2raw|ssh_kex1|ssh_kex2|ssh_login|ssh_open_channel|ssh_open_connection|ssh_parse_keys|ssh_recv|ssh_req_svc|ssh_rsa_verify|ssh_userauth1|ssh_userauth2|ssl2_handshake|ssl3_handshake|ssl_calc_finished|ssl_calc_master|ssl_derive_keyblk|ssl_find|ssl_mk_handshake_msg|ssl_mk_record|ssl_parse|StartService |store_1_cookie|store_cookiejar|str2long|stream_error|string2sid |strip|strridx|str_to_key |substr_at_offset|supported_encryption_type |tcp|TCP|tcp_checksum|tcp_finish_insert_option|tcp_flags|tcp_get|tcp_insert_option|tcp_set|telnet2_init |telnet_do_neg_about_size|telnet_dont |telnet_do_starttls|telnet_do_term_type|telnet_handle_suboption |telnet_loop |telnet_negotiate|telnet_open_cnx|telnet_read |telnet_send_cmd |telnet_send_suboption |telnet_starttls|telnet_will |telnet_wont |telnet_write |test|test1cgi|test1url|test_cgi_rec|test_cgi_xss|test_sinfp|test_udp_port|tftp_get|tftp_ms_backdoor|tftp_put|tls_calc_master|tls_derive_keyblk|tls_mk_handshake_msg|tls_mk_record|tls_prf|torture_cgi_audit_response|torture_cgi_build_report|torture_cgi_delay|torture_cgi_init|torture_cgi_name|torture_cgi_remember|torture_cgis|torture_cgis_yesno|torture_cgi_untestable_param|tripledes_decrypt|tripledes_encrypt|tripledes_initialize|ubuntu_check|ubuntu_report_add|ubuntu_report_get|ubuntu_ver_cmp|udp|UDP|udp_checksum|udp_get|udp_ping_pong|udp_recv_line|udp_recv_line_reset|udp_set|unicode |unicode2ascii |unixtime_to_nttime64 |update_window_size|upnp_find_service|upnp_make_soap_data|upnp_make_soap_req|upnp_svc_url|urldecode|urlencode|url_hex2raw|usm_AES_priv_decrypt|usm_AES_priv_protocol|usm_DES_priv_decrypt|usm_DES_priv_protocol|usm_HMAC_MD5_auth_protocol|usm_HMAC_SHA_auth_protocol|utf16_to_ascii|ver_compare|verify_service|ver_num|vers_cmp|voffset_to_offset |_wins_clean_name|wins_name_records_request|wins_owner_records_request|_wins_send_recv|wins_start_association|wins_stop_association|wont_test_cgi|write_dword |WriteFile |xdr_auth_unix|xdr_getdword|xdr_getstring|xdr_long|xdr_string|xml_get_child|xml_get_children|xml_get_children_names|xml_get_names_values|_xml_table_to_string|xmpp_open|xmpp_starttls|xor |XOR|xor8| |_zero_pad|_zip_extract|zip_extract|zip_parse|xscript_osvdb_id|xscript_set_cvss_base_vector|soap_send_request|audit)\\b"
122
+ }
123
+ ],
124
+ "repository": {
125
+ "escaped_char": {
126
+ "name": "constant.character.escape.nasl",
127
+ "match": "\\\\."
128
+ },
129
+ "line_comment": {
130
+ "patterns": [
131
+ {
132
+ "name": "meta.comment.full-line.nasl",
133
+ "match": "^((#|//).*$\\n?)",
134
+ "captures": {
135
+ "1": {
136
+ "name": "comment.line.number-sign.nasl"
137
+ },
138
+ "2": {
139
+ "name": "punctuation.definition.comment.nasl"
140
+ }
141
+ }
142
+ },
143
+ {
144
+ "name": "comment.line.number-sign.perl",
145
+ "match": "(#|//).*$\\n?",
146
+ "captures": {
147
+ "1": {
148
+ "name": "punctuation.definition.comment.nasl"
149
+ }
150
+ }
151
+ }
152
+ ]
153
+ }
154
+ }
155
+ }
@@ -37,11 +37,11 @@
37
37
  "patterns": [
38
38
  {
39
39
  "name": "process.directive.type.nextflow",
40
- "match": "(?:afterScript|beforeScript|cache|container|cpus|clusterOptions|disk|echo|errorStrategy|executor|ext|maxErrors|maxForks|maxRetries|memory|module|penv|publishDir|queue|scratch|storeDir|stageInMode|stageOutMode|tag|time|validExitStatus)\\b"
40
+ "match": "(?:accelerator|afterScript|beforeScript|cache|cpus|conda|container|containerOptions|clusterOptions|disk|echo|errorStrategy|executor|ext|label|machineType|maxErrors|maxForks|maxRetries|memory|module|penv|pod|publishDir|queue|scratch|stageInMode|stageOutMode|storeDir|tag|time|validExitStatus)\\b"
41
41
  },
42
42
  {
43
43
  "name": "constant.block.nextflow",
44
- "match": "(?:input|output|script|shell|exec):"
44
+ "match": "(?:input|output|when|script|shell|exec):"
45
45
  },
46
46
  {
47
47
  "include": "source.nextflow-groovy#comments"
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "P4",
2
+ "name": "P4-16",
3
3
  "scopeName": "source.p4",
4
4
  "patterns": [
5
5
  {
@@ -44,11 +44,15 @@
44
44
  },
45
45
  {
46
46
  "name": "storage.type.object.p4",
47
- "match": "\\b(header_type|header|metadata|field_list|field_list_calculation|parser|parser_exception|parser_value_set|counter|meter|register|action|action_profile|table|control|extern)\\b"
47
+ "match": "\\b(struct|package|header|metadata|parser|transition|state|actions|action|table|key|control|extern|verify)\\b"
48
48
  },
49
49
  {
50
50
  "name": "storage.data.type.p4",
51
- "match": "\\b(bool|bit|varbit|int)\\b"
51
+ "match": "\\b(void|const|bool|varbit|int|typedef|tuple|enum)\\b"
52
+ },
53
+ {
54
+ "name": "support.type.bit.p4",
55
+ "match": "bit(\u003c\\d+\u003e)"
52
56
  },
53
57
  {
54
58
  "name": "variable.language.p4",
@@ -56,7 +60,7 @@
56
60
  },
57
61
  {
58
62
  "name": "keyword.control.p4",
59
- "match": "\\b(if|else if|else|return|hit|miss|true|false)\\b"
63
+ "match": "\\b(if|else if|else|return|hit|miss|true|false|inout|in|out|exit)\\b"
60
64
  },
61
65
  {
62
66
  "name": "keyword.operator.p4",
@@ -64,7 +68,7 @@
64
68
  },
65
69
  {
66
70
  "name": "entity.name.type.p4",
67
- "match": "\\b(exact|ternary|lpm|range|valid|mask)\\b"
71
+ "match": "\\b(exact|ternary|lpm|range|valid|mask|match_kind)\\b"
68
72
  },
69
73
  {
70
74
  "name": "storage.type.p4",
@@ -86,6 +90,10 @@
86
90
  "name": "meta.preprocessor.include.p4",
87
91
  "match": "\\#include"
88
92
  },
93
+ {
94
+ "name": "meta.preprocessor.p4",
95
+ "match": "\\#ifndef|\\#ifdef|\\#if|\\#else|\\#endif|\\#elif"
96
+ },
89
97
  {
90
98
  "name": "meta.preprocessor.define.p4",
91
99
  "match": "\\#define"
@@ -94,6 +102,10 @@
94
102
  "name": "support.function.primitive.p4",
95
103
  "match": "\\b(apply|valid|select|current|extract|add_header|copy_header|remove_header|modify_field|add_to_field|add|set_field_to_hash_index|truncate|drop|no_op|push|pop|count|meter|generate_digest|resubmit|recirculate|clone_ingress_pkt_to_ingress|clone_egress_pkt_to_ingress|clone_ingress_pkt_to_egress|clone_egress_pkt_to_egress|register_write|register_read)\\b"
96
104
  },
105
+ {
106
+ "name": "storage.type.annotation.p4",
107
+ "match": "@\\w+"
108
+ },
97
109
  {
98
110
  "name": "support.any-method.p4",
99
111
  "match": "[a-zA-Z_][0-9a-zA-Z_]*"
@@ -106,6 +118,10 @@
106
118
  "name": "constant.numeric.p4",
107
119
  "match": "0(x|X)[0-9a-fA-F]+"
108
120
  },
121
+ {
122
+ "name": "constant.numeric.p4",
123
+ "match": "\\dw\\d+"
124
+ },
109
125
  {
110
126
  "name": "constant.numeric.p4",
111
127
  "match": "0(b|B)[01]+"
@@ -50,6 +50,9 @@
50
50
  "patterns": [
51
51
  {
52
52
  "include": "#value"
53
+ },
54
+ {
55
+ "include": "#double_comment_inline"
53
56
  }
54
57
  ],
55
58
  "beginCaptures": {
@@ -139,6 +142,10 @@
139
142
  "begin": "//",
140
143
  "end": "$\\n?"
141
144
  },
145
+ "double_comment_inline": {
146
+ "name": "comment.prisma",
147
+ "match": "//[^\\n]*"
148
+ },
142
149
  "double_quoted_string": {
143
150
  "name": "unnamed",
144
151
  "begin": "\"",
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "QASM",
3
+ "scopeName": "source.qasm",
4
+ "patterns": [
5
+ {
6
+ "name": "comment.line.double-slash",
7
+ "match": "\\/\\/.*$"
8
+ },
9
+ {
10
+ "name": "comment.line.number-sign",
11
+ "match": "#.*$"
12
+ },
13
+ {
14
+ "name": "entity.name.function",
15
+ "match": "^(?x) # At beggining of line\n(\\.) # Valid function name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,.\\#)\\[:{\u003e+~|] # - Another selector\n | # # - A comment\n)"
16
+ },
17
+ {
18
+ "name": "entity.name.section",
19
+ "match": "(?x)\\b(include|OPENQASM|version)\\b"
20
+ },
21
+ {
22
+ "name": "variable.language",
23
+ "match": "(?x)\\b(qubit|qubits|map)\\b"
24
+ },
25
+ {
26
+ "name": "constant.other",
27
+ "match": "(?\u003c=(\\w\\[)|(:))( *\\d *)(?=(\\s*\\])|(:))"
28
+ },
29
+ {
30
+ "name": "keyword.storage.modifier",
31
+ "match": "-\u003e"
32
+ },
33
+ {
34
+ "name": "constant.string.single",
35
+ "match": "('.*')"
36
+ },
37
+ {
38
+ "name": "constant.string.double",
39
+ "match": "\".*\""
40
+ },
41
+ {
42
+ "name": "storage.type",
43
+ "match": "(?x)^\\b(?:(qreg|creg)| (gate|opaque))\\b"
44
+ },
45
+ {
46
+ "name": "support.function",
47
+ "match": "(?x)\\b(?:(prep_x|prep_y|prep_z|error_model)| (measure_x|measure_y|measure_z|measure_all|measure_parity|measure)| (display|display_binary))\\b"
48
+ },
49
+ {
50
+ "name": "keyword.control",
51
+ "match": "(?i)(?x)\\b(?:((i|h|x|y|z)| (rx|ry|rz)| (x90|y90|z90|rx90|ry90|rz90|mx90|my90|mz90)| (x180|y180|z180|rx180|ry180|rz180|mx180|my180|mz180)| (u1|u2|u3|cu1|cu2|cu3)| (s|sdag|t|tdag)| (cnot|cx|cz|cr|crk|toffoli|ccx|ccnot)| (swap) ))\\b"
52
+ },
53
+ {
54
+ "name": "keyword.control",
55
+ "match": "(?i)(?x)\\bc-(?:((i|h|x|y|z)| (rx|ry|rz)| (x90|y90|z90|rx90|ry90|rz90|mx90|my90|mz90)| (x180|y180|z180|rx180|ry180|rz180|mx180|my180|mz180)| (u1|u2|u3)| (s|sdag|t|tdag)| (cnot|cx|cz|cr|crk|toffoli|ccx|ccnot)| (swap) ))\\b"
56
+ },
57
+ {
58
+ "name": "keyword.control",
59
+ "match": "(?i)(?x)\\b(?:(not )|(if(?=[( ])))\\b"
60
+ },
61
+ {
62
+ "name": "variable.language",
63
+ "match": "\\b(depolarizing_channel|load_state|barrier)\\b"
64
+ }
65
+ ]
66
+ }
@@ -0,0 +1,1408 @@
1
+ {
2
+ "name": "QL",
3
+ "scopeName": "source.ql",
4
+ "patterns": [
5
+ {
6
+ "include": "#module-member"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "abstract": {
11
+ "name": "storage.modifier.abstract.ql",
12
+ "match": "(?x)\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_])))"
13
+ },
14
+ "and": {
15
+ "name": "keyword.other.and.ql",
16
+ "match": "(?x)\\b(?:and)(?:(?!(?:[0-9A-Za-z_])))"
17
+ },
18
+ "annotation": {
19
+ "patterns": [
20
+ {
21
+ "include": "#bindingset-annotation"
22
+ },
23
+ {
24
+ "include": "#language-annotation"
25
+ },
26
+ {
27
+ "include": "#pragma-annotation"
28
+ },
29
+ {
30
+ "include": "#annotation-keyword"
31
+ }
32
+ ]
33
+ },
34
+ "annotation-keyword": {
35
+ "patterns": [
36
+ {
37
+ "include": "#abstract"
38
+ },
39
+ {
40
+ "include": "#bindingset"
41
+ },
42
+ {
43
+ "include": "#cached"
44
+ },
45
+ {
46
+ "include": "#deprecated"
47
+ },
48
+ {
49
+ "include": "#external"
50
+ },
51
+ {
52
+ "include": "#final"
53
+ },
54
+ {
55
+ "include": "#language"
56
+ },
57
+ {
58
+ "include": "#library"
59
+ },
60
+ {
61
+ "include": "#override"
62
+ },
63
+ {
64
+ "include": "#pragma"
65
+ },
66
+ {
67
+ "include": "#private"
68
+ },
69
+ {
70
+ "include": "#query"
71
+ },
72
+ {
73
+ "include": "#transient"
74
+ }
75
+ ]
76
+ },
77
+ "any": {
78
+ "name": "keyword.quantifier.any.ql",
79
+ "match": "(?x)\\b(?:any)(?:(?!(?:[0-9A-Za-z_])))"
80
+ },
81
+ "arithmetic-operator": {
82
+ "name": "keyword.operator.arithmetic.ql",
83
+ "match": "(?x)\\+|-|\\*|/|%"
84
+ },
85
+ "as": {
86
+ "name": "keyword.other.as.ql",
87
+ "match": "(?x)\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))"
88
+ },
89
+ "asc": {
90
+ "name": "keyword.order.asc.ql",
91
+ "match": "(?x)\\b(?:asc)(?:(?!(?:[0-9A-Za-z_])))"
92
+ },
93
+ "at-lower-id": {
94
+ "match": "(?x)@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
95
+ },
96
+ "avg": {
97
+ "name": "keyword.aggregate.avg.ql",
98
+ "match": "(?x)\\b(?:avg)(?:(?!(?:[0-9A-Za-z_])))"
99
+ },
100
+ "bindingset": {
101
+ "name": "storage.modifier.bindingset.ql",
102
+ "match": "(?x)\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))"
103
+ },
104
+ "bindingset-annotation": {
105
+ "name": "meta.block.bindingset-annotation.ql",
106
+ "begin": "(?x)((?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))))",
107
+ "end": "(?x)(?! \\s | (?:// | /\\*) | \\[ ) | (?\u003c=\\])",
108
+ "patterns": [
109
+ {
110
+ "include": "#bindingset-annotation-body"
111
+ },
112
+ {
113
+ "include": "#non-context-sensitive"
114
+ }
115
+ ],
116
+ "beginCaptures": {
117
+ "1": {
118
+ "patterns": [
119
+ {
120
+ "include": "#bindingset"
121
+ }
122
+ ]
123
+ }
124
+ }
125
+ },
126
+ "bindingset-annotation-body": {
127
+ "name": "meta.block.bindingset-annotation-body.ql",
128
+ "begin": "(?x)((?:\\[))",
129
+ "end": "(?x)((?:\\]))",
130
+ "patterns": [
131
+ {
132
+ "include": "#non-context-sensitive"
133
+ },
134
+ {
135
+ "name": "variable.parameter.ql",
136
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
137
+ }
138
+ ],
139
+ "beginCaptures": {
140
+ "1": {
141
+ "patterns": [
142
+ {
143
+ "include": "#open-bracket"
144
+ }
145
+ ]
146
+ }
147
+ },
148
+ "endCaptures": {
149
+ "1": {
150
+ "patterns": [
151
+ {
152
+ "include": "#close-bracket"
153
+ }
154
+ ]
155
+ }
156
+ }
157
+ },
158
+ "boolean": {
159
+ "name": "keyword.type.boolean.ql",
160
+ "match": "(?x)\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_])))"
161
+ },
162
+ "by": {
163
+ "name": "keyword.order.by.ql",
164
+ "match": "(?x)\\b(?:by)(?:(?!(?:[0-9A-Za-z_])))"
165
+ },
166
+ "cached": {
167
+ "name": "storage.modifier.cached.ql",
168
+ "match": "(?x)\\b(?:cached)(?:(?!(?:[0-9A-Za-z_])))"
169
+ },
170
+ "class": {
171
+ "name": "keyword.other.class.ql",
172
+ "match": "(?x)\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))"
173
+ },
174
+ "class-body": {
175
+ "name": "meta.block.class-body.ql",
176
+ "begin": "(?x)((?:\\{))",
177
+ "end": "(?x)((?:\\}))",
178
+ "patterns": [
179
+ {
180
+ "include": "#class-member"
181
+ }
182
+ ],
183
+ "beginCaptures": {
184
+ "1": {
185
+ "patterns": [
186
+ {
187
+ "include": "#open-brace"
188
+ }
189
+ ]
190
+ }
191
+ },
192
+ "endCaptures": {
193
+ "1": {
194
+ "patterns": [
195
+ {
196
+ "include": "#close-brace"
197
+ }
198
+ ]
199
+ }
200
+ }
201
+ },
202
+ "class-declaration": {
203
+ "name": "meta.block.class-declaration.ql",
204
+ "begin": "(?x)((?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))))",
205
+ "end": "(?x)(?\u003c= \\} | ; )",
206
+ "patterns": [
207
+ {
208
+ "include": "#class-body"
209
+ },
210
+ {
211
+ "include": "#extends-clause"
212
+ },
213
+ {
214
+ "include": "#non-context-sensitive"
215
+ },
216
+ {
217
+ "name": "entity.name.type.class.ql",
218
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
219
+ }
220
+ ],
221
+ "beginCaptures": {
222
+ "1": {
223
+ "patterns": [
224
+ {
225
+ "include": "#class"
226
+ }
227
+ ]
228
+ }
229
+ }
230
+ },
231
+ "class-member": {
232
+ "patterns": [
233
+ {
234
+ "include": "#predicate-or-field-declaration"
235
+ },
236
+ {
237
+ "include": "#annotation"
238
+ },
239
+ {
240
+ "include": "#non-context-sensitive"
241
+ }
242
+ ]
243
+ },
244
+ "close-brace": {
245
+ "name": "punctuation.curlybrace.close.ql",
246
+ "match": "(?x)\\}"
247
+ },
248
+ "close-bracket": {
249
+ "name": "punctuation.squarebracket.close.ql",
250
+ "match": "(?x)\\]"
251
+ },
252
+ "close-paren": {
253
+ "name": "punctuation.parenthesis.close.ql",
254
+ "match": "(?x)\\)"
255
+ },
256
+ "comma": {
257
+ "name": "punctuation.separator.comma.ql",
258
+ "match": "(?x),"
259
+ },
260
+ "comment": {
261
+ "patterns": [
262
+ {
263
+ "name": "comment.block.documentation.ql",
264
+ "begin": "(?x)/\\*\\*",
265
+ "end": "(?x)\\*/",
266
+ "patterns": [
267
+ {
268
+ "begin": "(?x)(?\u003c=/\\*\\*)([^*]|\\*(?!/))*$",
269
+ "while": "(?x)(^|\\G)\\s*([^*]|\\*(?!/))(?=([^*]|[*](?!/))*$)",
270
+ "patterns": [
271
+ {
272
+ "name": "keyword.tag.ql",
273
+ "match": "(?x)\\G\\s* (@\\S+)"
274
+ }
275
+ ]
276
+ }
277
+ ]
278
+ },
279
+ {
280
+ "name": "comment.block.ql",
281
+ "begin": "(?x)/\\*",
282
+ "end": "(?x)\\*/"
283
+ },
284
+ {
285
+ "name": "comment.line.double-slash.ql",
286
+ "match": "(?x)//.*$"
287
+ }
288
+ ]
289
+ },
290
+ "comment-start": {
291
+ "match": "(?x)// | /\\*"
292
+ },
293
+ "comparison-operator": {
294
+ "name": "keyword.operator.comparison.ql",
295
+ "match": "(?x)=|\\!-"
296
+ },
297
+ "concat": {
298
+ "name": "keyword.aggregate.concat.ql",
299
+ "match": "(?x)\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))"
300
+ },
301
+ "count": {
302
+ "name": "keyword.aggregate.count.ql",
303
+ "match": "(?x)\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))"
304
+ },
305
+ "date": {
306
+ "name": "keyword.type.date.ql",
307
+ "match": "(?x)\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))"
308
+ },
309
+ "deprecated": {
310
+ "name": "storage.modifier.deprecated.ql",
311
+ "match": "(?x)\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))"
312
+ },
313
+ "desc": {
314
+ "name": "keyword.order.desc.ql",
315
+ "match": "(?x)\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))"
316
+ },
317
+ "dont-care": {
318
+ "name": "variable.language.dont-care.ql",
319
+ "match": "(?x)\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))"
320
+ },
321
+ "dot": {
322
+ "name": "punctuation.accessor.ql",
323
+ "match": "(?x)\\."
324
+ },
325
+ "dotdot": {
326
+ "name": "punctuation.operator.range.ql",
327
+ "match": "(?x)\\.\\."
328
+ },
329
+ "else": {
330
+ "name": "keyword.other.else.ql",
331
+ "match": "(?x)\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))"
332
+ },
333
+ "end-of-as-clause": {
334
+ "match": "(?x)(?: (?\u003c=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?\u003c!(?\u003c!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))))"
335
+ },
336
+ "end-of-id": {
337
+ "match": "(?x)(?!(?:[0-9A-Za-z_]))"
338
+ },
339
+ "exists": {
340
+ "name": "keyword.quantifier.exists.ql",
341
+ "match": "(?x)\\b(?:exists)(?:(?!(?:[0-9A-Za-z_])))"
342
+ },
343
+ "expr-as-clause": {
344
+ "name": "meta.block.expr-as-clause.ql",
345
+ "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",
346
+ "end": "(?x)(?:(?: (?\u003c=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?\u003c!(?\u003c!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))",
347
+ "patterns": [
348
+ {
349
+ "include": "#non-context-sensitive"
350
+ },
351
+ {
352
+ "name": "variable.other.ql",
353
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
354
+ }
355
+ ],
356
+ "beginCaptures": {
357
+ "1": {
358
+ "patterns": [
359
+ {
360
+ "include": "#as"
361
+ }
362
+ ]
363
+ }
364
+ }
365
+ },
366
+ "extends": {
367
+ "name": "keyword.other.extends.ql",
368
+ "match": "(?x)\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))"
369
+ },
370
+ "extends-clause": {
371
+ "name": "meta.block.extends-clause.ql",
372
+ "begin": "(?x)((?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))))",
373
+ "end": "(?x)(?= \\{ )",
374
+ "patterns": [
375
+ {
376
+ "include": "#non-context-sensitive"
377
+ },
378
+ {
379
+ "name": "entity.name.type.ql",
380
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
381
+ }
382
+ ],
383
+ "beginCaptures": {
384
+ "1": {
385
+ "patterns": [
386
+ {
387
+ "include": "#extends"
388
+ }
389
+ ]
390
+ }
391
+ }
392
+ },
393
+ "external": {
394
+ "name": "storage.modifier.external.ql",
395
+ "match": "(?x)\\b(?:external)(?:(?!(?:[0-9A-Za-z_])))"
396
+ },
397
+ "false": {
398
+ "name": "constant.language.boolean.false.ql",
399
+ "match": "(?x)\\b(?:false)(?:(?!(?:[0-9A-Za-z_])))"
400
+ },
401
+ "final": {
402
+ "name": "storage.modifier.final.ql",
403
+ "match": "(?x)\\b(?:final)(?:(?!(?:[0-9A-Za-z_])))"
404
+ },
405
+ "float": {
406
+ "name": "keyword.type.float.ql",
407
+ "match": "(?x)\\b(?:float)(?:(?!(?:[0-9A-Za-z_])))"
408
+ },
409
+ "float-literal": {
410
+ "name": "constant.numeric.decimal.ql",
411
+ "match": "(?x)-?[0-9]+\\.[0-9]+(?![0-9])"
412
+ },
413
+ "forall": {
414
+ "name": "keyword.quantifier.forall.ql",
415
+ "match": "(?x)\\b(?:forall)(?:(?!(?:[0-9A-Za-z_])))"
416
+ },
417
+ "forex": {
418
+ "name": "keyword.quantifier.forex.ql",
419
+ "match": "(?x)\\b(?:forex)(?:(?!(?:[0-9A-Za-z_])))"
420
+ },
421
+ "from": {
422
+ "name": "keyword.other.from.ql",
423
+ "match": "(?x)\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))"
424
+ },
425
+ "from-section": {
426
+ "name": "meta.block.from-section.ql",
427
+ "begin": "(?x)((?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))))",
428
+ "end": "(?x)(?= (?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))) | (?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))) )",
429
+ "patterns": [
430
+ {
431
+ "include": "#non-context-sensitive"
432
+ },
433
+ {
434
+ "name": "variable.parameter.ql",
435
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|$))"
436
+ },
437
+ {
438
+ "include": "#module-qualifier"
439
+ },
440
+ {
441
+ "name": "entity.name.type.ql",
442
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
443
+ },
444
+ {
445
+ "name": "variable.parameter.ql",
446
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
447
+ }
448
+ ],
449
+ "beginCaptures": {
450
+ "1": {
451
+ "patterns": [
452
+ {
453
+ "include": "#from"
454
+ }
455
+ ]
456
+ }
457
+ }
458
+ },
459
+ "id-character": {
460
+ "match": "(?x)[0-9A-Za-z_]"
461
+ },
462
+ "if": {
463
+ "name": "keyword.other.if.ql",
464
+ "match": "(?x)\\b(?:if)(?:(?!(?:[0-9A-Za-z_])))"
465
+ },
466
+ "implies": {
467
+ "name": "keyword.other.implies.ql",
468
+ "match": "(?x)\\b(?:implies)(?:(?!(?:[0-9A-Za-z_])))"
469
+ },
470
+ "import": {
471
+ "name": "keyword.other.import.ql",
472
+ "match": "(?x)\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))"
473
+ },
474
+ "import-as-clause": {
475
+ "name": "meta.block.import-as-clause.ql",
476
+ "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",
477
+ "end": "(?x)(?:(?: (?\u003c=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?\u003c!(?\u003c!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))",
478
+ "patterns": [
479
+ {
480
+ "include": "#non-context-sensitive"
481
+ },
482
+ {
483
+ "name": "entity.name.type.namespace.ql",
484
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
485
+ }
486
+ ],
487
+ "beginCaptures": {
488
+ "1": {
489
+ "patterns": [
490
+ {
491
+ "include": "#as"
492
+ }
493
+ ]
494
+ }
495
+ }
496
+ },
497
+ "import-directive": {
498
+ "name": "meta.block.import-directive.ql",
499
+ "begin": "(?x)((?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))))",
500
+ "end": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?!\\s*(\\.|\\:\\:))",
501
+ "patterns": [
502
+ {
503
+ "include": "#non-context-sensitive"
504
+ },
505
+ {
506
+ "name": "entity.name.type.namespace.ql",
507
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
508
+ }
509
+ ],
510
+ "beginCaptures": {
511
+ "1": {
512
+ "patterns": [
513
+ {
514
+ "include": "#import"
515
+ }
516
+ ]
517
+ }
518
+ },
519
+ "endCaptures": {
520
+ "0": {
521
+ "name": "entity.name.type.namespace.ql"
522
+ }
523
+ }
524
+ },
525
+ "in": {
526
+ "name": "keyword.other.in.ql",
527
+ "match": "(?x)\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))"
528
+ },
529
+ "instanceof": {
530
+ "name": "keyword.other.instanceof.ql",
531
+ "match": "(?x)\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))"
532
+ },
533
+ "int": {
534
+ "name": "keyword.type.int.ql",
535
+ "match": "(?x)\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))"
536
+ },
537
+ "int-literal": {
538
+ "name": "constant.numeric.decimal.ql",
539
+ "match": "(?x)-?[0-9]+(?![0-9])"
540
+ },
541
+ "keyword": {
542
+ "patterns": [
543
+ {
544
+ "include": "#dont-care"
545
+ },
546
+ {
547
+ "include": "#and"
548
+ },
549
+ {
550
+ "include": "#any"
551
+ },
552
+ {
553
+ "include": "#as"
554
+ },
555
+ {
556
+ "include": "#asc"
557
+ },
558
+ {
559
+ "include": "#avg"
560
+ },
561
+ {
562
+ "include": "#boolean"
563
+ },
564
+ {
565
+ "include": "#by"
566
+ },
567
+ {
568
+ "include": "#class"
569
+ },
570
+ {
571
+ "include": "#concat"
572
+ },
573
+ {
574
+ "include": "#count"
575
+ },
576
+ {
577
+ "include": "#date"
578
+ },
579
+ {
580
+ "include": "#desc"
581
+ },
582
+ {
583
+ "include": "#else"
584
+ },
585
+ {
586
+ "include": "#exists"
587
+ },
588
+ {
589
+ "include": "#extends"
590
+ },
591
+ {
592
+ "include": "#false"
593
+ },
594
+ {
595
+ "include": "#float"
596
+ },
597
+ {
598
+ "include": "#forall"
599
+ },
600
+ {
601
+ "include": "#forex"
602
+ },
603
+ {
604
+ "include": "#from"
605
+ },
606
+ {
607
+ "include": "#if"
608
+ },
609
+ {
610
+ "include": "#implies"
611
+ },
612
+ {
613
+ "include": "#import"
614
+ },
615
+ {
616
+ "include": "#in"
617
+ },
618
+ {
619
+ "include": "#instanceof"
620
+ },
621
+ {
622
+ "include": "#int"
623
+ },
624
+ {
625
+ "include": "#max"
626
+ },
627
+ {
628
+ "include": "#min"
629
+ },
630
+ {
631
+ "include": "#module"
632
+ },
633
+ {
634
+ "include": "#newtype"
635
+ },
636
+ {
637
+ "include": "#none"
638
+ },
639
+ {
640
+ "include": "#not"
641
+ },
642
+ {
643
+ "include": "#or"
644
+ },
645
+ {
646
+ "include": "#order"
647
+ },
648
+ {
649
+ "include": "#predicate"
650
+ },
651
+ {
652
+ "include": "#rank"
653
+ },
654
+ {
655
+ "include": "#result"
656
+ },
657
+ {
658
+ "include": "#select"
659
+ },
660
+ {
661
+ "include": "#strictconcat"
662
+ },
663
+ {
664
+ "include": "#strictcount"
665
+ },
666
+ {
667
+ "include": "#strictsum"
668
+ },
669
+ {
670
+ "include": "#string"
671
+ },
672
+ {
673
+ "include": "#sum"
674
+ },
675
+ {
676
+ "include": "#super"
677
+ },
678
+ {
679
+ "include": "#then"
680
+ },
681
+ {
682
+ "include": "#this"
683
+ },
684
+ {
685
+ "include": "#true"
686
+ },
687
+ {
688
+ "include": "#where"
689
+ }
690
+ ]
691
+ },
692
+ "language": {
693
+ "name": "storage.modifier.language.ql",
694
+ "match": "(?x)\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))"
695
+ },
696
+ "language-annotation": {
697
+ "name": "meta.block.language-annotation.ql",
698
+ "begin": "(?x)((?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))))",
699
+ "end": "(?x)(?! \\s | (?:// | /\\*) | \\[ ) | (?\u003c=\\])",
700
+ "patterns": [
701
+ {
702
+ "include": "#language-annotation-body"
703
+ },
704
+ {
705
+ "include": "#non-context-sensitive"
706
+ }
707
+ ],
708
+ "beginCaptures": {
709
+ "1": {
710
+ "patterns": [
711
+ {
712
+ "include": "#language"
713
+ }
714
+ ]
715
+ }
716
+ }
717
+ },
718
+ "language-annotation-body": {
719
+ "name": "meta.block.language-annotation-body.ql",
720
+ "begin": "(?x)((?:\\[))",
721
+ "end": "(?x)((?:\\]))",
722
+ "patterns": [
723
+ {
724
+ "include": "#non-context-sensitive"
725
+ },
726
+ {
727
+ "name": "storage.modifier.ql",
728
+ "match": "(?x)\\b(?:monotonicAggregates)(?:(?!(?:[0-9A-Za-z_])))"
729
+ }
730
+ ],
731
+ "beginCaptures": {
732
+ "1": {
733
+ "patterns": [
734
+ {
735
+ "include": "#open-bracket"
736
+ }
737
+ ]
738
+ }
739
+ },
740
+ "endCaptures": {
741
+ "1": {
742
+ "patterns": [
743
+ {
744
+ "include": "#close-bracket"
745
+ }
746
+ ]
747
+ }
748
+ }
749
+ },
750
+ "library": {
751
+ "name": "storage.modifier.library.ql",
752
+ "match": "(?x)\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))"
753
+ },
754
+ "literal": {
755
+ "patterns": [
756
+ {
757
+ "include": "#float-literal"
758
+ },
759
+ {
760
+ "include": "#int-literal"
761
+ },
762
+ {
763
+ "include": "#string-literal"
764
+ }
765
+ ]
766
+ },
767
+ "lower-id": {
768
+ "match": "(?x)\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
769
+ },
770
+ "max": {
771
+ "name": "keyword.aggregate.max.ql",
772
+ "match": "(?x)\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))"
773
+ },
774
+ "min": {
775
+ "name": "keyword.aggregate.min.ql",
776
+ "match": "(?x)\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))"
777
+ },
778
+ "module": {
779
+ "name": "keyword.other.module.ql",
780
+ "match": "(?x)\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))"
781
+ },
782
+ "module-body": {
783
+ "name": "meta.block.module-body.ql",
784
+ "begin": "(?x)((?:\\{))",
785
+ "end": "(?x)((?:\\}))",
786
+ "patterns": [
787
+ {
788
+ "include": "#module-member"
789
+ }
790
+ ],
791
+ "beginCaptures": {
792
+ "1": {
793
+ "patterns": [
794
+ {
795
+ "include": "#open-brace"
796
+ }
797
+ ]
798
+ }
799
+ },
800
+ "endCaptures": {
801
+ "1": {
802
+ "patterns": [
803
+ {
804
+ "include": "#close-brace"
805
+ }
806
+ ]
807
+ }
808
+ }
809
+ },
810
+ "module-declaration": {
811
+ "name": "meta.block.module-declaration.ql",
812
+ "begin": "(?x)((?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))))",
813
+ "end": "(?x)(?\u003c=\\}|;)",
814
+ "patterns": [
815
+ {
816
+ "include": "#module-body"
817
+ },
818
+ {
819
+ "include": "#non-context-sensitive"
820
+ },
821
+ {
822
+ "name": "entity.name.type.namespace.ql",
823
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
824
+ }
825
+ ],
826
+ "beginCaptures": {
827
+ "1": {
828
+ "patterns": [
829
+ {
830
+ "include": "#module"
831
+ }
832
+ ]
833
+ }
834
+ }
835
+ },
836
+ "module-member": {
837
+ "patterns": [
838
+ {
839
+ "include": "#import-directive"
840
+ },
841
+ {
842
+ "include": "#import-as-clause"
843
+ },
844
+ {
845
+ "include": "#module-declaration"
846
+ },
847
+ {
848
+ "include": "#class-declaration"
849
+ },
850
+ {
851
+ "include": "#select-clause"
852
+ },
853
+ {
854
+ "include": "#predicate-or-field-declaration"
855
+ },
856
+ {
857
+ "include": "#non-context-sensitive"
858
+ },
859
+ {
860
+ "include": "#annotation"
861
+ }
862
+ ]
863
+ },
864
+ "module-qualifier": {
865
+ "name": "entity.name.type.namespace.ql",
866
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?=\\s*\\:\\:)"
867
+ },
868
+ "newtype": {
869
+ "name": "keyword.other.newtype.ql",
870
+ "match": "(?x)\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))"
871
+ },
872
+ "newtype-branch": {
873
+ "name": "meta.block.newtype-branch.ql",
874
+ "begin": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",
875
+ "end": "(?x)(?\u003c=\\}) | (?! \\s | (?:// | /\\*) | \\{ )",
876
+ "patterns": [
877
+ {
878
+ "include": "#predicate-body"
879
+ },
880
+ {
881
+ "include": "#non-context-sensitive"
882
+ },
883
+ {
884
+ "name": "entity.name.type.ql",
885
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
886
+ }
887
+ ],
888
+ "beginCaptures": {
889
+ "0": {
890
+ "name": "entity.name.type.ql"
891
+ }
892
+ }
893
+ },
894
+ "newtype-declaration": {
895
+ "name": "meta.block.newtype.ql",
896
+ "begin": "(?x)((?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))))",
897
+ "end": "(?x)(?! \\s | (?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) | (?:// | /\\*) | \\= | \\( )",
898
+ "patterns": [
899
+ {
900
+ "include": "#non-context-sensitive"
901
+ },
902
+ {
903
+ "include": "#newtype-branch"
904
+ }
905
+ ],
906
+ "beginCaptures": {
907
+ "1": {
908
+ "patterns": [
909
+ {
910
+ "include": "#newtype"
911
+ }
912
+ ]
913
+ }
914
+ }
915
+ },
916
+ "non-context-sensitive": {
917
+ "patterns": [
918
+ {
919
+ "include": "#comment"
920
+ },
921
+ {
922
+ "include": "#literal"
923
+ },
924
+ {
925
+ "include": "#operator-or-punctuation"
926
+ },
927
+ {
928
+ "include": "#keyword"
929
+ }
930
+ ]
931
+ },
932
+ "none": {
933
+ "name": "keyword.quantifier.none.ql",
934
+ "match": "(?x)\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))"
935
+ },
936
+ "not": {
937
+ "name": "keyword.other.not.ql",
938
+ "match": "(?x)\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))"
939
+ },
940
+ "open-brace": {
941
+ "name": "punctuation.curlybrace.open.ql",
942
+ "match": "(?x)\\{"
943
+ },
944
+ "open-bracket": {
945
+ "name": "punctuation.squarebracket.open.ql",
946
+ "match": "(?x)\\["
947
+ },
948
+ "open-paren": {
949
+ "name": "punctuation.parenthesis.open.ql",
950
+ "match": "(?x)\\("
951
+ },
952
+ "operator-or-punctuation": {
953
+ "patterns": [
954
+ {
955
+ "include": "#relational-operator"
956
+ },
957
+ {
958
+ "include": "#comparison-operator"
959
+ },
960
+ {
961
+ "include": "#arithmetic-operator"
962
+ },
963
+ {
964
+ "include": "#comma"
965
+ },
966
+ {
967
+ "include": "#semicolon"
968
+ },
969
+ {
970
+ "include": "#dot"
971
+ },
972
+ {
973
+ "include": "#dotdot"
974
+ },
975
+ {
976
+ "include": "#pipe"
977
+ },
978
+ {
979
+ "include": "#open-paren"
980
+ },
981
+ {
982
+ "include": "#close-paren"
983
+ },
984
+ {
985
+ "include": "#open-brace"
986
+ },
987
+ {
988
+ "include": "#close-brace"
989
+ },
990
+ {
991
+ "include": "#open-bracket"
992
+ },
993
+ {
994
+ "include": "#close-bracket"
995
+ }
996
+ ]
997
+ },
998
+ "or": {
999
+ "name": "keyword.other.or.ql",
1000
+ "match": "(?x)\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))"
1001
+ },
1002
+ "order": {
1003
+ "name": "keyword.order.order.ql",
1004
+ "match": "(?x)\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))"
1005
+ },
1006
+ "override": {
1007
+ "name": "storage.modifier.override.ql",
1008
+ "match": "(?x)\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))"
1009
+ },
1010
+ "pipe": {
1011
+ "name": "punctuation.separator.pipe.ql",
1012
+ "match": "(?x)\\|"
1013
+ },
1014
+ "pragma": {
1015
+ "name": "storage.modifier.pragma.ql",
1016
+ "match": "(?x)\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))"
1017
+ },
1018
+ "pragma-annotation": {
1019
+ "name": "meta.block.pragma-annotation.ql",
1020
+ "begin": "(?x)((?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))))",
1021
+ "end": "(?x)(?! \\s | (?:// | /\\*) | \\[ ) | (?\u003c=\\])",
1022
+ "patterns": [
1023
+ {
1024
+ "include": "#pragma-annotation-body"
1025
+ },
1026
+ {
1027
+ "include": "#non-context-sensitive"
1028
+ }
1029
+ ],
1030
+ "beginCaptures": {
1031
+ "1": {
1032
+ "patterns": [
1033
+ {
1034
+ "include": "#pragma"
1035
+ }
1036
+ ]
1037
+ }
1038
+ }
1039
+ },
1040
+ "pragma-annotation-body": {
1041
+ "name": "meta.block.pragma-annotation-body.ql",
1042
+ "begin": "(?x)((?:\\[))",
1043
+ "end": "(?x)((?:\\]))",
1044
+ "patterns": [
1045
+ {
1046
+ "name": "storage.modifier.ql",
1047
+ "match": "(?x)\\b(?:inline|noinline|nomagic|noopt)\\b"
1048
+ }
1049
+ ],
1050
+ "beginCaptures": {
1051
+ "1": {
1052
+ "patterns": [
1053
+ {
1054
+ "include": "#open-bracket"
1055
+ }
1056
+ ]
1057
+ }
1058
+ },
1059
+ "endCaptures": {
1060
+ "1": {
1061
+ "patterns": [
1062
+ {
1063
+ "include": "#close-bracket"
1064
+ }
1065
+ ]
1066
+ }
1067
+ }
1068
+ },
1069
+ "predicate": {
1070
+ "name": "keyword.other.predicate.ql",
1071
+ "match": "(?x)\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))"
1072
+ },
1073
+ "predicate-body": {
1074
+ "name": "meta.block.predicate-body.ql",
1075
+ "begin": "(?x)((?:\\{))",
1076
+ "end": "(?x)((?:\\}))",
1077
+ "patterns": [
1078
+ {
1079
+ "include": "#predicate-body-contents"
1080
+ }
1081
+ ],
1082
+ "beginCaptures": {
1083
+ "1": {
1084
+ "patterns": [
1085
+ {
1086
+ "include": "#open-brace"
1087
+ }
1088
+ ]
1089
+ }
1090
+ },
1091
+ "endCaptures": {
1092
+ "1": {
1093
+ "patterns": [
1094
+ {
1095
+ "include": "#close-brace"
1096
+ }
1097
+ ]
1098
+ }
1099
+ }
1100
+ },
1101
+ "predicate-body-contents": {
1102
+ "patterns": [
1103
+ {
1104
+ "include": "#expr-as-clause"
1105
+ },
1106
+ {
1107
+ "include": "#non-context-sensitive"
1108
+ },
1109
+ {
1110
+ "include": "#module-qualifier"
1111
+ },
1112
+ {
1113
+ "name": "entity.name.function.ql",
1114
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))\\s*(?:\\*|\\+)?\\s*(?=\\()"
1115
+ },
1116
+ {
1117
+ "name": "variable.other.ql",
1118
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1119
+ },
1120
+ {
1121
+ "name": "entity.name.type.ql",
1122
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1123
+ }
1124
+ ]
1125
+ },
1126
+ "predicate-or-field-declaration": {
1127
+ "name": "meta.block.predicate-or-field-declaration.ql",
1128
+ "begin": "(?x)(?:(?=(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))(?!(?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))|(?:(?:(?:\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:cached)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:external)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:final)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:library)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:override)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:private)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:query)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))))))) | (?=(?:(?:(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))))) | (?=(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))",
1129
+ "end": "(?x)(?\u003c=\\}|;)",
1130
+ "patterns": [
1131
+ {
1132
+ "include": "#predicate-parameter-list"
1133
+ },
1134
+ {
1135
+ "include": "#predicate-body"
1136
+ },
1137
+ {
1138
+ "include": "#non-context-sensitive"
1139
+ },
1140
+ {
1141
+ "include": "#module-qualifier"
1142
+ },
1143
+ {
1144
+ "name": "variable.field.ql",
1145
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*;)"
1146
+ },
1147
+ {
1148
+ "name": "entity.name.function.ql",
1149
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1150
+ },
1151
+ {
1152
+ "name": "entity.name.type.ql",
1153
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1154
+ }
1155
+ ]
1156
+ },
1157
+ "predicate-parameter-list": {
1158
+ "name": "meta.block.predicate-parameter-list.ql",
1159
+ "begin": "(?x)((?:\\())",
1160
+ "end": "(?x)((?:\\)))",
1161
+ "patterns": [
1162
+ {
1163
+ "include": "#non-context-sensitive"
1164
+ },
1165
+ {
1166
+ "name": "variable.parameter.ql",
1167
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|\\)))"
1168
+ },
1169
+ {
1170
+ "include": "#module-qualifier"
1171
+ },
1172
+ {
1173
+ "name": "entity.name.type.ql",
1174
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1175
+ },
1176
+ {
1177
+ "name": "variable.parameter.ql",
1178
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1179
+ }
1180
+ ],
1181
+ "beginCaptures": {
1182
+ "1": {
1183
+ "patterns": [
1184
+ {
1185
+ "include": "#open-paren"
1186
+ }
1187
+ ]
1188
+ }
1189
+ },
1190
+ "endCaptures": {
1191
+ "1": {
1192
+ "patterns": [
1193
+ {
1194
+ "include": "#close-paren"
1195
+ }
1196
+ ]
1197
+ }
1198
+ }
1199
+ },
1200
+ "predicate-start-keyword": {
1201
+ "patterns": [
1202
+ {
1203
+ "include": "#boolean"
1204
+ },
1205
+ {
1206
+ "include": "#date"
1207
+ },
1208
+ {
1209
+ "include": "#float"
1210
+ },
1211
+ {
1212
+ "include": "#int"
1213
+ },
1214
+ {
1215
+ "include": "#predicate"
1216
+ },
1217
+ {
1218
+ "include": "#string"
1219
+ }
1220
+ ]
1221
+ },
1222
+ "private": {
1223
+ "name": "storage.modifier.private.ql",
1224
+ "match": "(?x)\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))"
1225
+ },
1226
+ "query": {
1227
+ "name": "storage.modifier.query.ql",
1228
+ "match": "(?x)\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))"
1229
+ },
1230
+ "rank": {
1231
+ "name": "keyword.aggregate.rank.ql",
1232
+ "match": "(?x)\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))"
1233
+ },
1234
+ "relational-operator": {
1235
+ "name": "keyword.operator.relational.ql",
1236
+ "match": "(?x)\u003c=|\u003c|\u003e=|\u003e"
1237
+ },
1238
+ "result": {
1239
+ "name": "variable.language.result.ql",
1240
+ "match": "(?x)\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))"
1241
+ },
1242
+ "select": {
1243
+ "name": "keyword.query.select.ql",
1244
+ "match": "(?x)\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))"
1245
+ },
1246
+ "select-as-clause": {
1247
+ "match": "(?x)meta.block.select-as-clause.ql",
1248
+ "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",
1249
+ "end": "(?x)(?\u003c=(?:[0-9A-Za-z_])(?:(?!(?:[0-9A-Za-z_]))))",
1250
+ "patterns": [
1251
+ {
1252
+ "include": "#non-context-sensitive"
1253
+ },
1254
+ {
1255
+ "name": "variable.other.ql",
1256
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1257
+ }
1258
+ ],
1259
+ "beginCaptures": {
1260
+ "1": {
1261
+ "patterns": [
1262
+ {
1263
+ "include": "#as"
1264
+ }
1265
+ ]
1266
+ }
1267
+ }
1268
+ },
1269
+ "select-clause": {
1270
+ "name": "meta.block.select-clause.ql",
1271
+ "begin": "(?x)(?=(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1272
+ "end": "(?x)(?!(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1273
+ "patterns": [
1274
+ {
1275
+ "include": "#from-section"
1276
+ },
1277
+ {
1278
+ "include": "#where-section"
1279
+ },
1280
+ {
1281
+ "include": "#select-section"
1282
+ }
1283
+ ]
1284
+ },
1285
+ "select-section": {
1286
+ "name": "meta.block.select-section.ql",
1287
+ "begin": "(?x)((?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1288
+ "end": "(?x)(?=\\n)",
1289
+ "patterns": [
1290
+ {
1291
+ "include": "#predicate-body-contents"
1292
+ },
1293
+ {
1294
+ "include": "#select-as-clause"
1295
+ }
1296
+ ],
1297
+ "beginCaptures": {
1298
+ "1": {
1299
+ "patterns": [
1300
+ {
1301
+ "include": "#select"
1302
+ }
1303
+ ]
1304
+ }
1305
+ }
1306
+ },
1307
+ "semicolon": {
1308
+ "name": "punctuation.separator.statement.ql",
1309
+ "match": "(?x);"
1310
+ },
1311
+ "simple-id": {
1312
+ "match": "(?x)\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
1313
+ },
1314
+ "strictconcat": {
1315
+ "name": "keyword.aggregate.strictconcat.ql",
1316
+ "match": "(?x)\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))"
1317
+ },
1318
+ "strictcount": {
1319
+ "name": "keyword.aggregate.strictcount.ql",
1320
+ "match": "(?x)\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))"
1321
+ },
1322
+ "strictsum": {
1323
+ "name": "keyword.aggregate.strictsum.ql",
1324
+ "match": "(?x)\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))"
1325
+ },
1326
+ "string": {
1327
+ "name": "keyword.type.string.ql",
1328
+ "match": "(?x)\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))"
1329
+ },
1330
+ "string-escape": {
1331
+ "name": "constant.character.escape.ql",
1332
+ "match": "(?x)\\\\[\"\\\\nrt]"
1333
+ },
1334
+ "string-literal": {
1335
+ "name": "string.quoted.double.ql",
1336
+ "begin": "(?x)\"",
1337
+ "end": "(?x)(\") | ((?:[^\\\\\\n])$)",
1338
+ "patterns": [
1339
+ {
1340
+ "include": "#string-escape"
1341
+ }
1342
+ ],
1343
+ "beginCaptures": {
1344
+ "0": {
1345
+ "name": "punctuation.definition.string.begin.ql"
1346
+ }
1347
+ },
1348
+ "endCaptures": {
1349
+ "1": {
1350
+ "name": "punctuation.definition.string.end.ql"
1351
+ },
1352
+ "2": {
1353
+ "name": "invalid.illegal.newline.ql"
1354
+ }
1355
+ }
1356
+ },
1357
+ "sum": {
1358
+ "name": "keyword.aggregate.sum.ql",
1359
+ "match": "(?x)\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))"
1360
+ },
1361
+ "super": {
1362
+ "name": "variable.language.super.ql",
1363
+ "match": "(?x)\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))"
1364
+ },
1365
+ "then": {
1366
+ "name": "keyword.other.then.ql",
1367
+ "match": "(?x)\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))"
1368
+ },
1369
+ "this": {
1370
+ "name": "variable.language.this.ql",
1371
+ "match": "(?x)\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))"
1372
+ },
1373
+ "transient": {
1374
+ "name": "storage.modifier.transient.ql",
1375
+ "match": "(?x)\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))"
1376
+ },
1377
+ "true": {
1378
+ "name": "constant.language.boolean.true.ql",
1379
+ "match": "(?x)\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))"
1380
+ },
1381
+ "upper-id": {
1382
+ "match": "(?x)\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
1383
+ },
1384
+ "where": {
1385
+ "name": "keyword.query.where.ql",
1386
+ "match": "(?x)\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))"
1387
+ },
1388
+ "where-section": {
1389
+ "name": "meta.block.where-section.ql",
1390
+ "begin": "(?x)((?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))",
1391
+ "end": "(?x)(?=(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1392
+ "patterns": [
1393
+ {
1394
+ "include": "#predicate-body-contents"
1395
+ }
1396
+ ],
1397
+ "beginCaptures": {
1398
+ "1": {
1399
+ "patterns": [
1400
+ {
1401
+ "include": "#where"
1402
+ }
1403
+ ]
1404
+ }
1405
+ }
1406
+ }
1407
+ }
1408
+ }