diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2017-08-23 06:48:50 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2017-08-23 06:48:50 -0700 |
commit | a150a76a6b2944f1415fb42281bf3d6eecfece48 (patch) | |
tree | 6f344dfdfa4bc59221e00255d3549ad82b66d38f | |
parent | f7374146c894e2706ba65447ca7bf3f608037b1c (diff) | |
download | txr-a150a76a6b2944f1415fb42281bf3d6eecfece48.tar.gz txr-a150a76a6b2944f1415fb42281bf3d6eecfece48.tar.bz2 txr-a150a76a6b2944f1415fb42281bf3d6eecfece48.zip |
Version 184.txr-184
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Likewise.
* txr.vim, tl.vim, protsym.c: Regenerated.
-rw-r--r-- | RELNOTES | 72 | ||||
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | protsym.c | 384 | ||||
-rw-r--r-- | share/txr/stdlib/ver.tl | 2 | ||||
-rw-r--r-- | tl.vim | 34 | ||||
-rw-r--r-- | txr.1 | 4 | ||||
-rw-r--r-- | txr.vim | 36 |
7 files changed, 317 insertions, 217 deletions
@@ -1,3 +1,75 @@ + TXR 184 + 2017-08-23 + + + Features + + - TXR ported to 64 bit ARM8 ("aarch64"). + - out-of-memory handling revised: + - throws exception rather than aborting. + - code for this was very old and long neglected. + - lib: + - set-diff is called diff now; old name deprecated + - isec and uni functions provide intersection and union. + - names harmonize with hash-diff, hash-isec and hash-uni + - len synonym for length + - spl and tok functions: variants on tok-str and split-str, + with argument order more suitable for currying. + - math: + - new functions digpow and digits + - (digpow 1234) -> (1000 200 30 4) + - (digits 1234) -> (1 2 3 4) + - other bases than ten via optional second arg. + - new functions sum and prod for adding or multiplying + sequence of numbers without having to apply or reduce + through + or *. + - new divides function for divisibility testing. + - bit functions logand, logior and loxor allow character operands. + - function bit can test bit of character + - control flow: + - new macros doloop and doloop* + - trivial case of tagbody optimized away. + - extraction language: + - bi-directional string tree match semantics for non-variables + in @(bind) and other contexts. + - FFI: + - new buf-carray-function + - new functions for reading and writing FFI types from and to streams. + - I/O streams: + - New stream type for doing I/O from and to a buffer. + - Functions for Base64 encoding and decoding from one stream to another. + - length argument in truncate-stream function now optional + - defaults to current read/write position + - parser: + - more efficient treatment of string literals. + - improvements in Vim syntax coloring. + + Bugs: + + - listener: + - recognizes incomplete buf literals properly as open syntax. + - tagbody: + - tagbody was setting up anonymous block, which it must not. + - pad function + - spurious instances of nil were occurring in its output. + - n-ary math-functions: + - were not checking the one-arg case, e.g. (+ "foo") -> "foo" + which should be an error. + - tok-str: + - wrongly permitted a call with just one argument. + - streams: + - seek-stream was not working when :from-end specified. + - buffers: + - buf-put-uchar was broken. + - parser: + - fixed "yacc stack overflow" when compiled with Byacc. + - fixed broken #; syntax handling when compiled with Byacc. + - fixed broken handling of empty buffer literals. + - buffers: + - fixed infinite loop in buf_grow function. + + + TXR 183 2017-07-19 @@ -453,7 +453,7 @@ fi # -txr_ver=183 +txr_ver=184 # # The all important banner. @@ -31,99 +31,99 @@ #include "config.h" #include "lib.h" -extern val accept_s, addr_k, align_s, all_s, and_s; -extern val ap_s, apf_s, append_each_s, append_each_star_s, append_k; -extern val append_s, apply_s, aret_s, args_k, array_s; -extern val assert_s, atime_k, atime_s, atom_s, auto_k; -extern val bchar_s, be_double_s, be_float_s, be_int16_s, be_int32_s; -extern val be_int64_s, be_uint16_s, be_uint32_s, be_uint64_s, bignum_s; -extern val bind_s, bit_s, blksize_k, blksize_s, block_s; -extern val block_star_s, blocks_k, blocks_s, bool_s, bstr_d_s; -extern val bstr_s, buf_d_s, buf_s, byte_oriented_k, call_s; -extern val car_s, carray_s, caseq_s, caseq_star_s, caseql_s; -extern val caseql_star_s, casequal_s, casequal_star_s, cases_s, cat_s; -extern val catch_s, cdigit_k, cdr_s, chain_s, chand_s; -extern val char_s, chars_k, choose_s, chr_s, chset_s; -extern val circref_s, close_s, closure_s, cobj_s, coll_s; -extern val collect_each_s, collect_each_star_s, collect_s, colon_k, compl_s; -extern val compound_s, cond_s, cons_s, continue_k, continue_s; -extern val counter_k, cptr_s, cset_s, cspace_k, ctime_k; -extern val ctime_s, cword_char_k, data_s, day_s, decline_k; -extern val defex_s, deffilter_s, define_s, defmacro_s, defparm_s; -extern val defparml_s, defr_warning_s, defsymacro_s, defun_s, defvar_s; -extern val defvarl_s, dev_k, dev_s, digit_k, do_s; -extern val dohash_s, double_s, downcase_k, dst_s, dvbind_s; -extern val dwim_s, each_op_s, each_s, each_star_s, empty_s; -extern val enum_s, enumed_s, env_k, env_s, eof_s; -extern val eol_s, eq_s, eql_s, equal_based_k, equal_s; -extern val error_s, eval_error_s, expr_s, fail_s, fbind_s; -extern val fd_k, ffi_call_desc_s, ffi_closure_s, ffi_type_s, file_error_s; -extern val filter_k, filter_s, filters_s, finally_s, finish_k; -extern val first_s, fixnum_s, flatten_s, flet_s, float_s; -extern val for_op_s, for_s, for_star_s, force_s, forget_s; -extern val form_k, format_s, freeform_s, from_current_k, from_end_k; -extern val from_list_s, from_start_k, frombase64_k, fromhtml_k, frompercent_k; -extern val fromurl_k, fun_k, fun_s, fuzz_s, gap_k; -extern val gather_s, gen_s, generate_s, gensym_counter_s, gid_k; -extern val gid_s, gmtoff_s, greedy_k, gun_s, handler_bind_s; -extern val hash_construct_s, hash_iter_s, hash_lit_s, hash_s, hextoint_k; -extern val hour_s, iapply_s, identity_s, if_s, iflet_s; -extern val in_package_s, inc_s, include_s, init_k, ino_k; -extern val ino_s, int16_s, int32_s, int64_s, int8_s; -extern val int_s, integer_s, internal_error_s, into_k, intr_s; -extern val ipf_s, keyword_package_s, labels_s, lambda_s, lambda_set_s; -extern val last_s, lbind_s, lcons_s, le_double_s, le_float_s; -extern val le_int16_s, le_int32_s, le_int64_s, le_uint16_s, le_uint32_s; -extern val le_uint64_s, length_s, let_s, let_star_s, lfilt_k; -extern val line_s, lines_k, lisp1_setq_s, list_k, list_s; -extern val list_star_s, listener_hist_len_s, listener_multi_line_p_s, listener_sel_inclusive_p_s, lists_k; -extern val lit_s, load_path_s, load_recursive_s, load_s, local_s; -extern val long_s, longest_k, lstr_s, mac_param_bind_s, macro_s; -extern val macro_time_s, macrolet_s, make_struct_lit_s, mandatory_k, maxgap_k; -extern val maxtimes_k, maybe_s, mdo_s, memq_s, memql_s; -extern val memqual_s, merge_s, meth_s, min_s, mingap_k; -extern val mintimes_k, mod_s, mode_k, mode_s, modlast_s; -extern val month_s, mtime_k, mtime_s, name_k, name_s; -extern val named_k, next_s, next_spec_k, nlink_k, nlink_s; -extern val none_s, nongreedy_s, not_s, nothrow_k, noval_s; -extern val null_s, nullify_s, number_s, numeric_error_s, oand_s; -extern val oneplus_s, op_s, opip_s, optional_s, or_s; -extern val output_s, package_alist_s, package_s, panic_s, parser_s; -extern val path_s, pkg_s, plus_s, postinit_k, pprint_flo_format_s; -extern val print_base_s, print_circle_s, print_flo_digits_s, print_flo_format_s, print_flo_precision_s; -extern val print_s, process_error_s, prof_s, prog1_s, progn_s; -extern val promise_forced_s, promise_inprogress_s, promise_s, ptr_in_d_s, ptr_in_s; -extern val ptr_out_d_s, ptr_out_s, ptr_out_s_s, ptr_s, qquote_s; -extern val qref_s, quasi_s, quasilist_s, query_error_s, quote_s; -extern val random_state_s, random_state_var_s, random_warmup_s, range_error_s, range_s; -extern val rcons_s, rdev_k, rdev_s, real_time_k, rebind_s; -extern val reflect_k, regex_s, rep_s, repeat_s, repeat_spec_k; -extern val require_s, resolve_k, rest_s, restart_s, ret_s; -extern val return_from_s, return_s, rfilt_k, sbit_s, sec_s; -extern val sequence_s, set_s, setq_s, setqf_s, short_s; -extern val shortest_k, single_s, size_k, size_s, skip_s; -extern val slot_s, some_s, space_k, special_s, splice_s; -extern val stat_s, static_slot_s, stddebug_s, stderr_s, stdin_s; -extern val stdio_stream_s, stdnull_s, stdout_s, str_d_s, str_s; -extern val stream_s, string_k, string_s, struct_lit_s, struct_s; -extern val struct_type_s, switch_s, sym_s, symacro_k, symacrolet_s; -extern val syntax_error_s, sys_abscond_from_s, sys_apply_s, sys_catch_s, sys_lisp1_value_s; -extern val sys_mark_special_s, sys_qquote_s, sys_splice_s, sys_unquote_s, system_error_s; -extern val system_package_s, text_s, throw_s, time_local_s, time_parse_s; -extern val time_s, time_string_s, time_utc_s, timeout_error_s, times_k; -extern val tlist_k, tobase64_k, tofloat_k, tohtml_k, tohtml_star_k; -extern val toint_k, tonumber_k, topercent_k, tourl_k, trailer_s; -extern val tree_bind_s, tree_case_s, try_s, type_error_s, ubit_s; -extern val uchar_s, uid_k, uid_s, uint16_s, uint32_s; -extern val uint64_s, uint8_s, uint_s, ulong_s, unbound_s; -extern val union_s, unique_s, unquote_s, until_s, until_star_s; -extern val upcase_k, uref_s, user_package_s, userdata_k, ushort_s; -extern val uw_protect_s, val_s, var_k, var_s, vars_k; -extern val vec_list_s, vec_s, vecref_s, vector_lit_s, void_s; -extern val warning_s, wchar_s, weak_keys_k, weak_vals_k, when_s; -extern val while_s, while_star_s, whole_k, wild_s, with_dyn_rebinds_s; -extern val word_char_k, wrap_k, wstr_d_s, wstr_s, year_s; -extern val zap_s, zarray_s, zeroplus_s, zone_s; +extern val accept_s, addr_k, align_s, all_s, alloc_error_s; +extern val and_s, ap_s, apf_s, append_each_s, append_each_star_s; +extern val append_k, append_s, apply_s, aret_s, args_k; +extern val array_s, assert_s, atime_k, atime_s, atom_s; +extern val auto_k, bchar_s, be_double_s, be_float_s, be_int16_s; +extern val be_int32_s, be_int64_s, be_uint16_s, be_uint32_s, be_uint64_s; +extern val bignum_s, bind_s, bit_s, blksize_k, blksize_s; +extern val block_s, block_star_s, blocks_k, blocks_s, bool_s; +extern val bstr_d_s, bstr_s, buf_d_s, buf_s, byte_oriented_k; +extern val call_s, car_s, carray_s, caseq_s, caseq_star_s; +extern val caseql_s, caseql_star_s, casequal_s, casequal_star_s, cases_s; +extern val cat_s, catch_s, cdigit_k, cdr_s, chain_s; +extern val chand_s, char_s, chars_k, choose_s, chr_s; +extern val chset_s, circref_s, close_s, closure_s, cobj_s; +extern val coll_s, collect_each_s, collect_each_star_s, collect_s, colon_k; +extern val compl_s, compound_s, cond_s, cons_s, continue_k; +extern val continue_s, counter_k, cptr_s, cset_s, cspace_k; +extern val ctime_k, ctime_s, cword_char_k, data_s, day_s; +extern val decline_k, defex_s, deffilter_s, define_s, defmacro_s; +extern val defparm_s, defparml_s, defr_warning_s, defsymacro_s, defun_s; +extern val defvar_s, defvarl_s, dev_k, dev_s, digit_k; +extern val do_s, dohash_s, double_s, downcase_k, dst_s; +extern val dvbind_s, dwim_s, each_op_s, each_s, each_star_s; +extern val empty_s, enum_s, enumed_s, env_k, env_s; +extern val eof_s, eol_s, eq_s, eql_s, equal_based_k; +extern val equal_s, error_s, eval_error_s, expr_s, fail_s; +extern val fbind_s, fd_k, ffi_call_desc_s, ffi_closure_s, ffi_type_s; +extern val file_error_s, filter_k, filter_s, filters_s, finally_s; +extern val finish_k, first_s, fixnum_s, flatten_s, flet_s; +extern val float_s, for_op_s, for_s, for_star_s, force_s; +extern val forget_s, form_k, format_s, freeform_s, from_current_k; +extern val from_end_k, from_list_s, from_start_k, frombase64_k, fromhtml_k; +extern val frompercent_k, fromurl_k, fun_k, fun_s, fuzz_s; +extern val gap_k, gather_s, gen_s, generate_s, gensym_counter_s; +extern val gid_k, gid_s, gmtoff_s, greedy_k, gun_s; +extern val handler_bind_s, hash_construct_s, hash_iter_s, hash_lit_s, hash_s; +extern val hextoint_k, hour_s, iapply_s, identity_s, if_s; +extern val iflet_s, in_package_s, inc_s, include_s, init_k; +extern val ino_k, ino_s, int16_s, int32_s, int64_s; +extern val int8_s, int_s, integer_s, internal_error_s, into_k; +extern val intr_s, ipf_s, keyword_package_s, labels_s, lambda_s; +extern val lambda_set_s, last_s, lbind_s, lcons_s, le_double_s; +extern val le_float_s, le_int16_s, le_int32_s, le_int64_s, le_uint16_s; +extern val le_uint32_s, le_uint64_s, length_s, let_s, let_star_s; +extern val lfilt_k, line_s, lines_k, lisp1_setq_s, list_k; +extern val list_s, list_star_s, listener_hist_len_s, listener_multi_line_p_s, listener_sel_inclusive_p_s; +extern val lists_k, lit_s, load_path_s, load_recursive_s, load_s; +extern val local_s, long_s, longest_k, lstr_s, mac_param_bind_s; +extern val macro_s, macro_time_s, macrolet_s, make_struct_lit_s, mandatory_k; +extern val maxgap_k, maxtimes_k, maybe_s, mdo_s, memq_s; +extern val memql_s, memqual_s, merge_s, meth_s, min_s; +extern val mingap_k, mintimes_k, mod_s, mode_k, mode_s; +extern val modlast_s, month_s, mtime_k, mtime_s, name_k; +extern val name_s, named_k, next_s, next_spec_k, nlink_k; +extern val nlink_s, none_s, nongreedy_s, not_s, nothrow_k; +extern val noval_s, null_s, nullify_s, number_s, numeric_error_s; +extern val oand_s, oneplus_s, op_s, opip_s, optional_s; +extern val or_s, output_s, package_alist_s, package_s, panic_s; +extern val parser_s, path_s, pkg_s, plus_s, postinit_k; +extern val pprint_flo_format_s, print_base_s, print_circle_s, print_flo_digits_s, print_flo_format_s; +extern val print_flo_precision_s, print_s, process_error_s, prof_s, prog1_s; +extern val progn_s, promise_forced_s, promise_inprogress_s, promise_s, ptr_in_d_s; +extern val ptr_in_s, ptr_out_d_s, ptr_out_s, ptr_out_s_s, ptr_s; +extern val qquote_s, qref_s, quasi_s, quasilist_s, query_error_s; +extern val quote_s, random_state_s, random_state_var_s, random_warmup_s, range_error_s; +extern val range_s, rcons_s, rdev_k, rdev_s, real_time_k; +extern val rebind_s, reflect_k, regex_s, rep_s, repeat_s; +extern val repeat_spec_k, require_s, resolve_k, rest_s, restart_s; +extern val ret_s, return_from_s, return_s, rfilt_k, sbit_s; +extern val sec_s, sequence_s, set_s, setq_s, setqf_s; +extern val short_s, shortest_k, single_s, size_k, size_s; +extern val skip_s, slot_s, some_s, space_k, special_s; +extern val splice_s, stat_s, static_slot_s, stddebug_s, stderr_s; +extern val stdin_s, stdio_stream_s, stdnull_s, stdout_s, str_d_s; +extern val str_s, stream_s, string_k, string_s, struct_lit_s; +extern val struct_s, struct_type_s, switch_s, sym_s, symacro_k; +extern val symacrolet_s, syntax_error_s, sys_abscond_from_s, sys_apply_s, sys_catch_s; +extern val sys_lisp1_value_s, sys_mark_special_s, sys_qquote_s, sys_splice_s, sys_unquote_s; +extern val system_error_s, system_package_s, text_s, throw_s, time_local_s; +extern val time_parse_s, time_s, time_string_s, time_utc_s, timeout_error_s; +extern val times_k, tlist_k, tobase64_k, tofloat_k, tohtml_k; +extern val tohtml_star_k, toint_k, tonumber_k, topercent_k, tourl_k; +extern val trailer_s, tree_bind_s, tree_case_s, try_s, type_error_s; +extern val ubit_s, uchar_s, uid_k, uid_s, uint16_s; +extern val uint32_s, uint64_s, uint8_s, uint_s, ulong_s; +extern val unbound_s, union_s, unique_s, unquote_s, until_s; +extern val until_star_s, upcase_k, uref_s, user_package_s, userdata_k; +extern val ushort_s, uw_protect_s, val_s, var_k, var_s; +extern val vars_k, vec_list_s, vec_s, vecref_s, vector_lit_s; +extern val void_s, warning_s, wchar_s, weak_keys_k, weak_vals_k; +extern val when_s, while_s, while_star_s, whole_k, wild_s; +extern val with_dyn_rebinds_s, word_char_k, wrap_k, wstr_d_s, wstr_s; +extern val year_s, zap_s, zarray_s, zeroplus_s, zone_s; #if CONFIG_DEBUG_SUPPORT extern val debug_quit_s; @@ -138,13 +138,13 @@ extern val group_s, mem_s; extern val dir_s, gecos_s, passwd_s, shell_s; #endif #if HAVE_SOCKETS -extern val socket_error_s; -#endif -#if HAVE_SOCKETS extern val addr_s, addrinfo_s, canonname_s, family_s, flags_s; extern val flow_info_s, port_s, protocol_s, scope_id_s, sockaddr_in6_s; extern val sockaddr_in_s, sockaddr_un_s, socktype_s; #endif +#if HAVE_SOCKETS +extern val socket_error_s; +#endif #if HAVE_SYSLOG extern val prio_k; #endif @@ -158,99 +158,99 @@ extern val utsname_s, version_s; #endif val *protected_sym[] = { - &accept_s, &addr_k, &align_s, &all_s, &and_s, - &ap_s, &apf_s, &append_each_s, &append_each_star_s, &append_k, - &append_s, &apply_s, &aret_s, &args_k, &array_s, - &assert_s, &atime_k, &atime_s, &atom_s, &auto_k, - &bchar_s, &be_double_s, &be_float_s, &be_int16_s, &be_int32_s, - &be_int64_s, &be_uint16_s, &be_uint32_s, &be_uint64_s, &bignum_s, - &bind_s, &bit_s, &blksize_k, &blksize_s, &block_s, - &block_star_s, &blocks_k, &blocks_s, &bool_s, &bstr_d_s, - &bstr_s, &buf_d_s, &buf_s, &byte_oriented_k, &call_s, - &car_s, &carray_s, &caseq_s, &caseq_star_s, &caseql_s, - &caseql_star_s, &casequal_s, &casequal_star_s, &cases_s, &cat_s, - &catch_s, &cdigit_k, &cdr_s, &chain_s, &chand_s, - &char_s, &chars_k, &choose_s, &chr_s, &chset_s, - &circref_s, &close_s, &closure_s, &cobj_s, &coll_s, - &collect_each_s, &collect_each_star_s, &collect_s, &colon_k, &compl_s, - &compound_s, &cond_s, &cons_s, &continue_k, &continue_s, - &counter_k, &cptr_s, &cset_s, &cspace_k, &ctime_k, - &ctime_s, &cword_char_k, &data_s, &day_s, &decline_k, - &defex_s, &deffilter_s, &define_s, &defmacro_s, &defparm_s, - &defparml_s, &defr_warning_s, &defsymacro_s, &defun_s, &defvar_s, - &defvarl_s, &dev_k, &dev_s, &digit_k, &do_s, - &dohash_s, &double_s, &downcase_k, &dst_s, &dvbind_s, - &dwim_s, &each_op_s, &each_s, &each_star_s, &empty_s, - &enum_s, &enumed_s, &env_k, &env_s, &eof_s, - &eol_s, &eq_s, &eql_s, &equal_based_k, &equal_s, - &error_s, &eval_error_s, &expr_s, &fail_s, &fbind_s, - &fd_k, &ffi_call_desc_s, &ffi_closure_s, &ffi_type_s, &file_error_s, - &filter_k, &filter_s, &filters_s, &finally_s, &finish_k, - &first_s, &fixnum_s, &flatten_s, &flet_s, &float_s, - &for_op_s, &for_s, &for_star_s, &force_s, &forget_s, - &form_k, &format_s, &freeform_s, &from_current_k, &from_end_k, - &from_list_s, &from_start_k, &frombase64_k, &fromhtml_k, &frompercent_k, - &fromurl_k, &fun_k, &fun_s, &fuzz_s, &gap_k, - &gather_s, &gen_s, &generate_s, &gensym_counter_s, &gid_k, - &gid_s, &gmtoff_s, &greedy_k, &gun_s, &handler_bind_s, - &hash_construct_s, &hash_iter_s, &hash_lit_s, &hash_s, &hextoint_k, - &hour_s, &iapply_s, &identity_s, &if_s, &iflet_s, - &in_package_s, &inc_s, &include_s, &init_k, &ino_k, - &ino_s, &int16_s, &int32_s, &int64_s, &int8_s, - &int_s, &integer_s, &internal_error_s, &into_k, &intr_s, - &ipf_s, &keyword_package_s, &labels_s, &lambda_s, &lambda_set_s, - &last_s, &lbind_s, &lcons_s, &le_double_s, &le_float_s, - &le_int16_s, &le_int32_s, &le_int64_s, &le_uint16_s, &le_uint32_s, - &le_uint64_s, &length_s, &let_s, &let_star_s, &lfilt_k, - &line_s, &lines_k, &lisp1_setq_s, &list_k, &list_s, - &list_star_s, &listener_hist_len_s, &listener_multi_line_p_s, &listener_sel_inclusive_p_s, &lists_k, - &lit_s, &load_path_s, &load_recursive_s, &load_s, &local_s, - &long_s, &longest_k, &lstr_s, &mac_param_bind_s, ¯o_s, - ¯o_time_s, ¯olet_s, &make_struct_lit_s, &mandatory_k, &maxgap_k, - &maxtimes_k, &maybe_s, &mdo_s, &memq_s, &memql_s, - &memqual_s, &merge_s, &meth_s, &min_s, &mingap_k, - &mintimes_k, &mod_s, &mode_k, &mode_s, &modlast_s, - &month_s, &mtime_k, &mtime_s, &name_k, &name_s, - &named_k, &next_s, &next_spec_k, &nlink_k, &nlink_s, - &none_s, &nongreedy_s, ¬_s, ¬hrow_k, &noval_s, - &null_s, &nullify_s, &number_s, &numeric_error_s, &oand_s, - &oneplus_s, &op_s, &opip_s, &optional_s, &or_s, - &output_s, &package_alist_s, &package_s, &panic_s, &parser_s, - &path_s, &pkg_s, &plus_s, &postinit_k, &pprint_flo_format_s, - &print_base_s, &print_circle_s, &print_flo_digits_s, &print_flo_format_s, &print_flo_precision_s, - &print_s, &process_error_s, &prof_s, &prog1_s, &progn_s, - &promise_forced_s, &promise_inprogress_s, &promise_s, &ptr_in_d_s, &ptr_in_s, - &ptr_out_d_s, &ptr_out_s, &ptr_out_s_s, &ptr_s, &qquote_s, - &qref_s, &quasi_s, &quasilist_s, &query_error_s, "e_s, - &random_state_s, &random_state_var_s, &random_warmup_s, &range_error_s, &range_s, - &rcons_s, &rdev_k, &rdev_s, &real_time_k, &rebind_s, - &reflect_k, ®ex_s, &rep_s, &repeat_s, &repeat_spec_k, - &require_s, &resolve_k, &rest_s, &restart_s, &ret_s, - &return_from_s, &return_s, &rfilt_k, &sbit_s, &sec_s, - &sequence_s, &set_s, &setq_s, &setqf_s, &short_s, - &shortest_k, &single_s, &size_k, &size_s, &skip_s, - &slot_s, &some_s, &space_k, &special_s, &splice_s, - &stat_s, &static_slot_s, &stddebug_s, &stderr_s, &stdin_s, - &stdio_stream_s, &stdnull_s, &stdout_s, &str_d_s, &str_s, - &stream_s, &string_k, &string_s, &struct_lit_s, &struct_s, - &struct_type_s, &switch_s, &sym_s, &symacro_k, &symacrolet_s, - &syntax_error_s, &sys_abscond_from_s, &sys_apply_s, &sys_catch_s, &sys_lisp1_value_s, - &sys_mark_special_s, &sys_qquote_s, &sys_splice_s, &sys_unquote_s, &system_error_s, - &system_package_s, &text_s, &throw_s, &time_local_s, &time_parse_s, - &time_s, &time_string_s, &time_utc_s, &timeout_error_s, ×_k, - &tlist_k, &tobase64_k, &tofloat_k, &tohtml_k, &tohtml_star_k, - &toint_k, &tonumber_k, &topercent_k, &tourl_k, &trailer_s, - &tree_bind_s, &tree_case_s, &try_s, &type_error_s, &ubit_s, - &uchar_s, &uid_k, &uid_s, &uint16_s, &uint32_s, - &uint64_s, &uint8_s, &uint_s, &ulong_s, &unbound_s, - &union_s, &unique_s, &unquote_s, &until_s, &until_star_s, - &upcase_k, &uref_s, &user_package_s, &userdata_k, &ushort_s, - &uw_protect_s, &val_s, &var_k, &var_s, &vars_k, - &vec_list_s, &vec_s, &vecref_s, &vector_lit_s, &void_s, - &warning_s, &wchar_s, &weak_keys_k, &weak_vals_k, &when_s, - &while_s, &while_star_s, &whole_k, &wild_s, &with_dyn_rebinds_s, - &word_char_k, &wrap_k, &wstr_d_s, &wstr_s, &year_s, - &zap_s, &zarray_s, &zeroplus_s, &zone_s, + &accept_s, &addr_k, &align_s, &all_s, &alloc_error_s, + &and_s, &ap_s, &apf_s, &append_each_s, &append_each_star_s, + &append_k, &append_s, &apply_s, &aret_s, &args_k, + &array_s, &assert_s, &atime_k, &atime_s, &atom_s, + &auto_k, &bchar_s, &be_double_s, &be_float_s, &be_int16_s, + &be_int32_s, &be_int64_s, &be_uint16_s, &be_uint32_s, &be_uint64_s, + &bignum_s, &bind_s, &bit_s, &blksize_k, &blksize_s, + &block_s, &block_star_s, &blocks_k, &blocks_s, &bool_s, + &bstr_d_s, &bstr_s, &buf_d_s, &buf_s, &byte_oriented_k, + &call_s, &car_s, &carray_s, &caseq_s, &caseq_star_s, + &caseql_s, &caseql_star_s, &casequal_s, &casequal_star_s, &cases_s, + &cat_s, &catch_s, &cdigit_k, &cdr_s, &chain_s, + &chand_s, &char_s, &chars_k, &choose_s, &chr_s, + &chset_s, &circref_s, &close_s, &closure_s, &cobj_s, + &coll_s, &collect_each_s, &collect_each_star_s, &collect_s, &colon_k, + &compl_s, &compound_s, &cond_s, &cons_s, &continue_k, + &continue_s, &counter_k, &cptr_s, &cset_s, &cspace_k, + &ctime_k, &ctime_s, &cword_char_k, &data_s, &day_s, + &decline_k, &defex_s, &deffilter_s, &define_s, &defmacro_s, + &defparm_s, &defparml_s, &defr_warning_s, &defsymacro_s, &defun_s, + &defvar_s, &defvarl_s, &dev_k, &dev_s, &digit_k, + &do_s, &dohash_s, &double_s, &downcase_k, &dst_s, + &dvbind_s, &dwim_s, &each_op_s, &each_s, &each_star_s, + &empty_s, &enum_s, &enumed_s, &env_k, &env_s, + &eof_s, &eol_s, &eq_s, &eql_s, &equal_based_k, + &equal_s, &error_s, &eval_error_s, &expr_s, &fail_s, + &fbind_s, &fd_k, &ffi_call_desc_s, &ffi_closure_s, &ffi_type_s, + &file_error_s, &filter_k, &filter_s, &filters_s, &finally_s, + &finish_k, &first_s, &fixnum_s, &flatten_s, &flet_s, + &float_s, &for_op_s, &for_s, &for_star_s, &force_s, + &forget_s, &form_k, &format_s, &freeform_s, &from_current_k, + &from_end_k, &from_list_s, &from_start_k, &frombase64_k, &fromhtml_k, + &frompercent_k, &fromurl_k, &fun_k, &fun_s, &fuzz_s, + &gap_k, &gather_s, &gen_s, &generate_s, &gensym_counter_s, + &gid_k, &gid_s, &gmtoff_s, &greedy_k, &gun_s, + &handler_bind_s, &hash_construct_s, &hash_iter_s, &hash_lit_s, &hash_s, + &hextoint_k, &hour_s, &iapply_s, &identity_s, &if_s, + &iflet_s, &in_package_s, &inc_s, &include_s, &init_k, + &ino_k, &ino_s, &int16_s, &int32_s, &int64_s, + &int8_s, &int_s, &integer_s, &internal_error_s, &into_k, + &intr_s, &ipf_s, &keyword_package_s, &labels_s, &lambda_s, + &lambda_set_s, &last_s, &lbind_s, &lcons_s, &le_double_s, + &le_float_s, &le_int16_s, &le_int32_s, &le_int64_s, &le_uint16_s, + &le_uint32_s, &le_uint64_s, &length_s, &let_s, &let_star_s, + &lfilt_k, &line_s, &lines_k, &lisp1_setq_s, &list_k, + &list_s, &list_star_s, &listener_hist_len_s, &listener_multi_line_p_s, &listener_sel_inclusive_p_s, + &lists_k, &lit_s, &load_path_s, &load_recursive_s, &load_s, + &local_s, &long_s, &longest_k, &lstr_s, &mac_param_bind_s, + ¯o_s, ¯o_time_s, ¯olet_s, &make_struct_lit_s, &mandatory_k, + &maxgap_k, &maxtimes_k, &maybe_s, &mdo_s, &memq_s, + &memql_s, &memqual_s, &merge_s, &meth_s, &min_s, + &mingap_k, &mintimes_k, &mod_s, &mode_k, &mode_s, + &modlast_s, &month_s, &mtime_k, &mtime_s, &name_k, + &name_s, &named_k, &next_s, &next_spec_k, &nlink_k, + &nlink_s, &none_s, &nongreedy_s, ¬_s, ¬hrow_k, + &noval_s, &null_s, &nullify_s, &number_s, &numeric_error_s, + &oand_s, &oneplus_s, &op_s, &opip_s, &optional_s, + &or_s, &output_s, &package_alist_s, &package_s, &panic_s, + &parser_s, &path_s, &pkg_s, &plus_s, &postinit_k, + &pprint_flo_format_s, &print_base_s, &print_circle_s, &print_flo_digits_s, &print_flo_format_s, + &print_flo_precision_s, &print_s, &process_error_s, &prof_s, &prog1_s, + &progn_s, &promise_forced_s, &promise_inprogress_s, &promise_s, &ptr_in_d_s, + &ptr_in_s, &ptr_out_d_s, &ptr_out_s, &ptr_out_s_s, &ptr_s, + &qquote_s, &qref_s, &quasi_s, &quasilist_s, &query_error_s, + "e_s, &random_state_s, &random_state_var_s, &random_warmup_s, &range_error_s, + &range_s, &rcons_s, &rdev_k, &rdev_s, &real_time_k, + &rebind_s, &reflect_k, ®ex_s, &rep_s, &repeat_s, + &repeat_spec_k, &require_s, &resolve_k, &rest_s, &restart_s, + &ret_s, &return_from_s, &return_s, &rfilt_k, &sbit_s, + &sec_s, &sequence_s, &set_s, &setq_s, &setqf_s, + &short_s, &shortest_k, &single_s, &size_k, &size_s, + &skip_s, &slot_s, &some_s, &space_k, &special_s, + &splice_s, &stat_s, &static_slot_s, &stddebug_s, &stderr_s, + &stdin_s, &stdio_stream_s, &stdnull_s, &stdout_s, &str_d_s, + &str_s, &stream_s, &string_k, &string_s, &struct_lit_s, + &struct_s, &struct_type_s, &switch_s, &sym_s, &symacro_k, + &symacrolet_s, &syntax_error_s, &sys_abscond_from_s, &sys_apply_s, &sys_catch_s, + &sys_lisp1_value_s, &sys_mark_special_s, &sys_qquote_s, &sys_splice_s, &sys_unquote_s, + &system_error_s, &system_package_s, &text_s, &throw_s, &time_local_s, + &time_parse_s, &time_s, &time_string_s, &time_utc_s, &timeout_error_s, + ×_k, &tlist_k, &tobase64_k, &tofloat_k, &tohtml_k, + &tohtml_star_k, &toint_k, &tonumber_k, &topercent_k, &tourl_k, + &trailer_s, &tree_bind_s, &tree_case_s, &try_s, &type_error_s, + &ubit_s, &uchar_s, &uid_k, &uid_s, &uint16_s, + &uint32_s, &uint64_s, &uint8_s, &uint_s, &ulong_s, + &unbound_s, &union_s, &unique_s, &unquote_s, &until_s, + &until_star_s, &upcase_k, &uref_s, &user_package_s, &userdata_k, + &ushort_s, &uw_protect_s, &val_s, &var_k, &var_s, + &vars_k, &vec_list_s, &vec_s, &vecref_s, &vector_lit_s, + &void_s, &warning_s, &wchar_s, &weak_keys_k, &weak_vals_k, + &when_s, &while_s, &while_star_s, &whole_k, &wild_s, + &with_dyn_rebinds_s, &word_char_k, &wrap_k, &wstr_d_s, &wstr_s, + &year_s, &zap_s, &zarray_s, &zeroplus_s, &zone_s, #if CONFIG_DEBUG_SUPPORT &debug_quit_s, @@ -265,13 +265,13 @@ val *protected_sym[] = { &dir_s, &gecos_s, &passwd_s, &shell_s, #endif #if HAVE_SOCKETS - &socket_error_s, -#endif -#if HAVE_SOCKETS &addr_s, &addrinfo_s, &canonname_s, &family_s, &flags_s, &flow_info_s, &port_s, &protocol_s, &scope_id_s, &sockaddr_in6_s, &sockaddr_in_s, &sockaddr_un_s, &socktype_s, #endif +#if HAVE_SOCKETS + &socket_error_s, +#endif #if HAVE_SYSLOG &prio_k, #endif diff --git a/share/txr/stdlib/ver.tl b/share/txr/stdlib/ver.tl index 26773849..5974f008 100644 --- a/share/txr/stdlib/ver.tl +++ b/share/txr/stdlib/ver.tl @@ -1,2 +1,2 @@ -(defvarl lib-version 183) +(defvarl lib-version 184) (defvarl *lib-version* lib-version) @@ -18,7 +18,7 @@ syn case match syn spell toplevel -setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,:,<,=,>,?,\\,_,~,/ +setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,:,<,=,>,?,\\,_,~,/,^ syn keyword tl_keyword contained %e% %pi% * *args* syn keyword tl_keyword contained *args-eff* *args-full* *e* *filters* @@ -499,6 +499,8 @@ syn match txr_numesc "\\x[0-9A-Fa-f]\+;\?" contained syn match txr_numesc "\\[0-7]\+;\?" contained syn match txr_regesc "\\[abtnvfre\\ \n/sSdDwW()\|.*?+~&%\[\]\-]" contained +syn match txr_error "#[^HSR]" + syn match txr_chr "#\\x[0-9A-Fa-f]\+" syn match txr_chr "#\\o[0-7]\+" syn match txr_chr "#\\[^ \t\nA-Za-z_0-9]" @@ -506,13 +508,14 @@ syn match txr_chr "#\\[A-Za-z_0-9]\+" syn match txr_ncomment ";.*" syn match txr_dot "\." contained -syn match txr_num "#x[+\-]\?[0-9A-Fa-f]\+" -syn match txr_num "#o[+\-]\?[0-7]\+" -syn match txr_num "#b[+\-]\?[01]\+" syn match txr_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~]*[A-Za-z_!$%&*+\-<=>?\\_~^][A-Za-z_0-9!$%&*+\-<=>?\\_~^]*" contained syn match tl_ident "[:@][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" syn match txr_braced_ident "[:][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained -syn match tl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]*[A-Za-z_!$%&*+\-<=>?\\_~^/#][A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*" +syn match tl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]\+[A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*" +syn match txr_pnum "#[xob][+\-]\?[A-Za-z_0-9]\+" contains=txr_xnum,txr_bnum,txr_onum +syn match txr_xnum "#x[+\-]\?[0-9A-Fa-f]\+" containedin=txr_pnum contained +syn match txr_onum "#o[+\-]\?[0-7]\+" containedin=txr_pnum contained +syn match txr_bnum "#b[+\-]\?[01]\+" containedin=txr_pnum contained syn match txr_num "[+\-]\?[0-9]\+\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 syn match txr_badnum "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?[A-Za-z_!$%&*+\-<=>?\\_~^/#]\+" syn match txr_num "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 @@ -528,15 +531,19 @@ syn match txr_dotdot "\.\." contained syn match txr_metaat "@" contained syn match txr_circ "#[0-9]\+[#=]" -syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,tl_ident,tl_splice,tl_metanum,txr_metaat,txr_circ,txr_braced_ident,txr_dot,txr_dotdot,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txr_nested_error -syn region txr_list matchgroup=Delimiter start="\(#[HSR]\?\)\?(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error -syn region txr_bracket matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error -syn region txr_mlist matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error -syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error +syn match txr_buf_error "[^']" contained +syn match txr_buf_interior "\([0-9A-Fa-f][\n\t ]*[0-9A-Fa-f]\|[\n\t ]\+\)" contained + +syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,txr_pnum,tl_ident,tl_splice,tl_metanum,txr_metaat,txr_circ,txr_braced_ident,txr_dot,txr_dotdot,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txr_nested_error +syn region txr_list matchgroup=Delimiter start="\(#[HSR]\?\)\?(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error +syn region txr_bracket matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error +syn region txr_mlist matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error +syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error syn region txr_string start=+#\?\*\?"+ end=+["\n]+ contains=txr_stresc,txr_numesc,txr_badesc syn region txr_quasilit start=+#\?\*\?`+ end=+[`\n]+ contains=txr_splicevar,txr_metanum,txr_bracevar,txr_mlist,txr_mbracket,txr_escat,txr_stresc,txr_numesc,txr_badesc syn region txr_regex start="/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc syn region tl_regex start="#/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc +syn region txr_buf matchgroup=txr_buf start="#b'" end="'" contains=txr_buf_interior,txr_buf_error syn region txr_ign_par matchgroup=Comment start="#;[ \t',]*\(#[HSR]\?\)\?(" matchgroup=Comment end=")" contains=txr_ign_par_interior,txr_ign_bkt_interior syn region txr_ign_bkt matchgroup=Comment start="#;[ \t',]*\(#[HSR]\?\)\?\[" matchgroup=Comment end="\]" contains=txr_ign_par_interior,txr_ign_bkt_interior syn region txr_ign_par_interior contained matchgroup=Comment start="(" matchgroup=Comment end=")" contains=txr_ign_par_interior,txr_ign_bkt_interior @@ -569,7 +576,11 @@ hi def link txr_badesc Error hi def link txr_ident Identifier hi def link tl_ident Identifier hi def link txr_num Number +hi def link txr_xnum Number +hi def link txr_bnum Number +hi def link txr_onum Number hi def link txr_badnum Error +hi def link txr_pnum Error hi def link txr_quote Special hi def link txr_unquote Special hi def link txr_splice Special @@ -581,6 +592,9 @@ hi def link txr_munqspl Special hi def link tl_splice Special hi def link txr_error Error hi def link txr_nested_error Error +hi def link txr_buf String +hi def link txr_buf_interior String +hi def link txr_buf_error Error hi def link txr_ign_par Comment hi def link txr_ign_bkt_interior Comment hi def link txr_ign_par_interior Comment @@ -340,9 +340,9 @@ .ds TX \f[B]TXR\f[] .ds TL \f[B]TXR Lisp\f[] .\" Start of man page: -.TH TXR 1 2017-07-19 "Utility Commands" "TXR Data Processing Language" "Kaz Kylheku" +.TH TXR 1 2017-08-23 "Utility Commands" "TXR Data Processing Language" "Kaz Kylheku" .SH* NAME -\*(TX \- text processing language (version 183) +\*(TX \- text processing language (version 184) .SH* SYNOPSIS .cblk @@ -18,7 +18,7 @@ syn case match syn spell toplevel -setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,:,<,=,>,?,\\,_,~,/ +setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,:,<,=,>,?,\\,_,~,/,^ syn keyword tl_keyword contained %e% %pi% * *args* syn keyword tl_keyword contained *args-eff* *args-full* *e* *filters* @@ -526,6 +526,8 @@ syn match txr_numesc "\\x[0-9A-Fa-f]\+;\?" contained syn match txr_numesc "\\[0-7]\+;\?" contained syn match txr_regesc "\\[abtnvfre\\ \n/sSdDwW()\|.*?+~&%\[\]\-]" contained +syn match txr_error "#[^HSR]" contained + syn match txr_chr "#\\x[0-9A-Fa-f]\+" contained syn match txr_chr "#\\o[0-7]\+" contained syn match txr_chr "#\\[^ \t\nA-Za-z_0-9]" contained @@ -533,13 +535,14 @@ syn match txr_chr "#\\[A-Za-z_0-9]\+" contained syn match txr_ncomment ";.*" contained syn match txr_dot "\." contained -syn match txr_num "#x[+\-]\?[0-9A-Fa-f]\+" contained -syn match txr_num "#o[+\-]\?[0-7]\+" contained -syn match txr_num "#b[+\-]\?[01]\+" contained syn match txr_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~]*[A-Za-z_!$%&*+\-<=>?\\_~^][A-Za-z_0-9!$%&*+\-<=>?\\_~^]*" contained syn match tl_ident "[:@][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained syn match txr_braced_ident "[:][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained -syn match tl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]*[A-Za-z_!$%&*+\-<=>?\\_~^/#][A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*" contained +syn match tl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]\+[A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*" contained +syn match txr_pnum "#[xob][+\-]\?[A-Za-z_0-9]\+" contains=txr_xnum,txr_bnum,txr_onum contained +syn match txr_xnum "#x[+\-]\?[0-9A-Fa-f]\+" containedin=txr_pnum contained +syn match txr_onum "#o[+\-]\?[0-7]\+" containedin=txr_pnum contained +syn match txr_bnum "#b[+\-]\?[01]\+" containedin=txr_pnum contained syn match txr_num "[+\-]\?[0-9]\+\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained syn match txr_badnum "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?[A-Za-z_!$%&*+\-<=>?\\_~^/#]\+" contained syn match txr_num "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained @@ -555,16 +558,20 @@ syn match txr_dotdot "\.\." contained syn match txr_metaat "@" contained syn match txr_circ "#[0-9]\+[#=]" -syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,tl_ident,tl_splice,tl_metanum,txr_metaat,txr_circ,txr_braced_ident,txr_dot,txr_dotdot,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txr_nested_error -syn region txr_directive matchgroup=Delimiter start="@[ \t]*(" matchgroup=Delimiter end=")" contains=txr_keyword,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_num,txr_badnum,tl_ident,tl_regex,txr_string,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error -syn region txr_list contained matchgroup=Delimiter start="\(#[HSR]\?\)\?(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error -syn region txr_bracket contained matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error -syn region txr_mlist contained matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error -syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error +syn match txr_buf_error "[^']" contained +syn match txr_buf_interior "\([0-9A-Fa-f][\n\t ]*[0-9A-Fa-f]\|[\n\t ]\+\)" contained + +syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,txr_pnum,tl_ident,tl_splice,tl_metanum,txr_metaat,txr_circ,txr_braced_ident,txr_dot,txr_dotdot,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txr_nested_error +syn region txr_directive matchgroup=Delimiter start="@[ \t]*(" matchgroup=Delimiter end=")" contains=txr_keyword,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_num,txr_pnum,txr_badnum,tl_ident,tl_regex,txr_string,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error +syn region txr_list contained matchgroup=Delimiter start="\(#[HSR]\?\)\?(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error +syn region txr_bracket contained matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error +syn region txr_mlist contained matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error +syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=tl_keyword,txr_string,tl_regex,txr_num,txr_pnum,txr_badnum,tl_ident,txr_metanum,txr_ign_par,txr_ign_bkt,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_buf,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_circ,txr_ncomment,txr_nested_error syn region txr_string contained start=+#\?\*\?"+ end=+["\n]+ contains=txr_stresc,txr_numesc,txr_badesc syn region txr_quasilit contained start=+#\?\*\?`+ end=+[`\n]+ contains=txr_splicevar,txr_metanum,txr_bracevar,txr_mlist,txr_mbracket,txr_escat,txr_stresc,txr_numesc,txr_badesc syn region txr_regex contained start="/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc syn region tl_regex contained start="#/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc +syn region txr_buf contained matchgroup=txr_buf start="#b'" end="'" contains=txr_buf_interior,txr_buf_error syn region txr_ign_par contained matchgroup=Comment start="#;[ \t',]*\(#[HSR]\?\)\?(" matchgroup=Comment end=")" contains=txr_ign_par_interior,txr_ign_bkt_interior syn region txr_ign_bkt contained matchgroup=Comment start="#;[ \t',]*\(#[HSR]\?\)\?\[" matchgroup=Comment end="\]" contains=txr_ign_par_interior,txr_ign_bkt_interior syn region txr_ign_par_interior contained matchgroup=Comment start="(" matchgroup=Comment end=")" contains=txr_ign_par_interior,txr_ign_bkt_interior @@ -597,7 +604,11 @@ hi def link txr_badesc Error hi def link txr_ident Identifier hi def link tl_ident Identifier hi def link txr_num Number +hi def link txr_xnum Number +hi def link txr_bnum Number +hi def link txr_onum Number hi def link txr_badnum Error +hi def link txr_pnum Error hi def link txr_quote Special hi def link txr_unquote Special hi def link txr_splice Special @@ -609,6 +620,9 @@ hi def link txr_munqspl Special hi def link tl_splice Special hi def link txr_error Error hi def link txr_nested_error Error +hi def link txr_buf String +hi def link txr_buf_interior String +hi def link txr_buf_error Error hi def link txr_ign_par Comment hi def link txr_ign_bkt_interior Comment hi def link txr_ign_par_interior Comment |