| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
* genvim.txr (generate): Use a single, undivided @(output)
block instead of multiple blocks with :continue.
|
|
|
|
|
|
|
| |
* genvim.txr (tl-sym): Recognize the contains symbol and
render it as the string "contain[s]". Vim thinks that
contains is reserved a keyword, anywhere in the syn keyword
line, and throws an error.
|
|
|
|
|
|
|
|
|
|
|
| |
* genvim (iskeyword): Remove the : character from being a
symbol constituent. This doesn't work well with tags, which
are oblivious to packages. We would not only have to make
tags.tl deal with packages, but in the tags file we would have
to duplicate every entry with and without the package prefix.
It doesn't make a lot of sense. Plus, packages themselves
are tags, and if we put the cursor on the package part of a
qualified symbol, we can jump to the package.
|
|
|
|
|
| |
* genvim.txr (comments): new variable. Generate "set comments"
command for TXR and TXR Lisp.
|
|
|
|
|
|
| |
* genvim.txr: generate the txr_hashbang match in both txr.vim
and tl.vim, not only txr.vim. Use Vim's \% regex operator
to match only in the first line of a file.
|
|
|
|
|
| |
* genvim.txr: In the Vim syntax file comment's example .vimrc
lines, include .tlo files, which are just TXR Lisp syntax.
|
|
|
|
| |
* genvim.txr (iskeyword): add % character.
|
|
|
|
|
| |
* genvim.txr (iskeyword): add ^ character.
Now r^ and others are colorized properly.
|
|
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (txr_pnum): New match; matches a superset of
the #x, #o and #b literals with the inclusion of trailing
alphanumeric junk. Highlighted as Error.
(txr_xnum, txr_onum, txr_bnum): New match categories, formed
by renaming the previous #x, #o and #b matches. These are
contained in txr_pnum, highlighted as Number.
(txr_bracevar, txr_directive, txr_list, txr_bracket,
txr_mlist, txr_mbracket): Include txr_pnum.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_error): New match in this category for #
followed by something other than H, S or R. Some characters
other than these are valid after #, but are covered by
explicit matches that occur later.
|
|
|
|
|
|
|
| |
* genvim.txr (tl_ident): Fix the incorrect match which allows
things beginning with # to be categorized as identifier
tokens. The new match reflects the true original intent: the
match must not begin with #, but may contain #.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_buf_error, txr_buf_interior): New matches.
(txr_list, txr_bracket, txr_mlist, txr_mbracket): Now also
contain txr_buf.
(txr_buf): New region, in the new txr_string matchgroup.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_num): Move the syn match definitions for
hex, octal and binary integer tokens after tl_ident, which is
a more general match that matches them also, and causes them
to be colorized as symbols rather than numbers.
|
|
|
|
|
|
| |
* genvim.txr: do syntax coloring for symbols that are
defined as FFI types or are FFI type operators.
Also, include type operators in the Vim lispwords list.
|
|
|
|
|
|
|
|
|
| |
* genvim.txr: remove code which probes a few symbols with
boundp. The point of this is to stimulate some autoloading,
but it is based on a misunderstanding. The symbols in the
lisplib.c autoload module are all interned. When the usr
package is walked, they all get checked with boundp,
and all all library autoloads are triggered.
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (txr_circ): New match. Link to
Special highlight group.
(txr_bracevar, txr_directive, txr_list, txr_mlist,
txr_mbracket): Introduce txr_circ into these regions.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.c (parser_circ_ref): Don't generate the
circular reference if circular suppression is in
effect.
* parser.h (struct parser): New member, circ_suppress.
We use this for suppressing the generation of
circular #n# references in erased objects.
* parser.l (grammar): Scan #; producing HASH_SEMI token.
* parser.y (HASH_SEMI): New token.
(hash_semis_n_expr, hash_semis_i_expr, ignored_i_exprs,
ignored_n_exprs): New nonterminals, needed for supporting
the use of #; in front of top-level forms.
(spec): Use hash_semis_n_expr and hash_semis_i_expr
instead of n_expr and i_expr.
(r_expr): Support object erasure within nested syntax.
(yybadtoken): Handle H_SEMI token.
(parse): Initialize new circ_suppress member of parser
struct to zero.
* txr.1: Documented.
* genvim.txr (txr_ign_par, txr_ign_bkt, txr_ign_par_interior,
txr_ign_bkt_interior): New regions for colorizing erased
objects (partial support).
(txr_list, txr_bracket, txr_mlist, txr_mbrackets): Include
erased objects by including regions txr_ign_par and
txr_ign_bkt.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
| |
* genvim.txr (txr_list): Rewrite start delimiter regex.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
| |
* genvim.txr: Let's not get rid of this just from
the instructions comment, but from the internals.
txl-* replaced with tl-*.
|
|
|
|
|
|
| |
* genvim.txr: "INSTALL-HOWTO" comment still talks about
.txl files, an experimental suffix we didn't go with.
Now fixed to .tl.
|
|
|
|
|
|
|
|
| |
* genvim.txr (txr_splicevar): This match must be contained.
(txr_metanum): Must be contained in TXR, need not be contained
in TXR Lisp.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
| |
* genvim.txr: Add missing single, first, last and other output
repeat modifiers. Removing rep, since it's scraped from the
table registration in match.c.
|
|
|
|
|
|
|
| |
* genvim.txr: Use new mboundp to check for macros, and
special-operator-p to detect operators. fboundp doesn't report
them any more. Also, :postinit must be included among
lispwords.
|
|
|
|
|
| |
* genvim.txr: Indent new, lnew, meth, umeth
and usel forms like function calls.
|
|
|
|
|
| |
* genvim.txr: Some operators should indent like functions.
We don't want these in lispwords.
|
|
|
|
|
|
|
| |
* eval.c (eval_init): Bind macro-time to op_error.
* genvim.txr: No longer manually add macro-time to
txl-orig-sym.
|
|
|
|
|
| |
* genvim.txr (txl-orig-sym, lispwords): New variable.
(generate): Generate Vim set lispwords command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* eval.c (eval_init): Register package-alist, package-name
and package-symbols intrinsics.
* genvim.txr: Rather than scanning C sources for TXR Lisp
symbols, iterate over the packages and their symbols,
collecting anything which has a binding or is self-evaluating.
To get the stdlib symbols, we trigger the autoloads by doing
boundp queries on a few symbols.
* txr.1: Document package-alist, package-name and
package-symbols.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* RELNOTES: Updated.
* configure, txr.1: Bumped version and date.
* share/txr/stdlib/ver.tl: Likewise.
* genvim.txr: Scan struct.c, path-test.tl and struct.tl files.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
|
|
| |
* parser.l (grammar): Recognize '.' token in
BRACED state also.
* genvim.txr: @{obj.slot ...} syntax highlighting support.
Include txr_dot and txr_dotdot in txr_bracevar region.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* arith.c (arith-init): Changing *flo-...* from special to
lexical, and adding un-earmuffed variants. The earmuffed
versions are obsolescent.
Adding %pi% and %e% global lexicals. Earmuffed versions are
also made global lexical, and obsolescent.
* eval.c (lookup_global_var, lookup_global_var_l): New functions.
(lookup_var): Uses lookup_global_var.
(reg_varl): New function.
(reg_var): Uses reg_var.
(eval_init): Register global lexicals user-package, system-package
and keyword-package. Old symbols with earmuffs are obsoleted,
and also turned into global lexicals.
(top-vb, top-fb): Changed to lexical.
* eval.h (lookup_global_var, lookup_global_var_l, reg_varl):
Declared.
* genvim.txr: Scan ver.tl so that the lib-version variable
is included. Extract reg_varl calls.
* glob.c (glob_init): glob-err and other variables made lexical.
* lib.c (get_user_package, get_system_package, get_keyword_package):
Use lookup_global_var_l to avoid searching dynamic scope for
lexicals which cannot be dynamically rebound.
* share/txr/stdlib/ver.tl (lib-version): New global lexical variable.
(*lib-version*): Turned lexical. Obsolescent.
* signal.c (sig-init): sig-* variables turned lexical.
* sysif.c (sysif-init): s-*, poll-* and w-* variables turned lexical.
* syslog.c (syslog-init): log-* variables turned lexical.
* txr.c (sysroot-init): stdlib and *txr-version* variables turned
lexical. txr-version variable added, and *txr-version* is
obsolescent.
(txr-main): self-path variable added. *self-path* turns lexical
and is obsolescent.
* txr.1: Documentation updated. Lexical variables not referred
to as special. Special variables referred to as special.
|
|
|
|
|
| |
Lists can be spliced and quoted. Metanums and metavars can
be prefixed by multiple @'s.
|
|
|
|
| |
Refer to source tree.
|
|
|
|
|
| |
Remove hard-coded txr-case symbols. Recognize operators registered
with in-line intern.
|
| |
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (bs, hex, at, alpha, alnum, dig, oct, chesc, glyph):
New variables.
*(txr_error, txr_atat, txr_comment, txr_contin, txr_char,
txr_regdir, txr_variable, txr_splicevar, txr_stresc, txr_numesc,
txr_regesc, txr_chr, txr_num, txr_badnum,txr_ident,
txr_braced_ident): Use regex definitions.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_variable, txr_splicevar, txr_bracevar): Weren't being
generated into tl.vim. Moved to a common section.
(txr_nested_error): Relocate above other matches.
(txr_ident): Fixed not to match tokens starting with #.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* parser.l (%option): Remove nounput option since we need
yyunput.
(grammar): Rule for matching hex and octal escape in SPECIAL
state recognizes optional semicolon. In 109 compatibility,
this is pushed back into the stream, otherwise consumed.
* txr.1: Updated documentation, including compat notes.
* genvim.txr (txr_char): Include optional semicolon in
match. Corrected some errors where 8 and 9 were being
included as matches for octal digits.
(txr_error): Default match for \x or \o not followed
by digits.
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (txr_badesc, txr_stresc, txr_numesc, txr_regesc): New
match categories.
(txr_string, txr_quasilit, txr_regex, txl_regex): No longer use skip=
argument, but rather contain escape categories.
All escapes are colored as Special rather than String, and
unknown or malformed escapes are colored as errors.
|
|
|
|
|
|
|
| |
* genvim.txr (txr_escat): New match category containing \@.
Colorized a String.
(txr_quasilit): Contains txr_escat. Thus, \@ looks like any
other escape inside a quasilit.
|
|
|
|
| |
* tl.vim, txr.vim: Regenerated.
|
|
|
|
|
|
| |
whole module.
* genvim.txr: Handle (def's not preceded by spaces.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile (GEN_HDRS, LISP_TO_C_STRING): Variables removed.
(%.h: %.tl): Rule removed. The place.h header is no longer
generated from place.tl.
* lisplib.c (place_instantiate): Load place.tl from stdlib directory,
rather than obtaining it from a string literal in generated header
place.h.
* place.tl: Moved to share/txr/stdlib directory.
* genvim.txr: Refer to place.tl in stdlib.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The operators set, inc, dec, pop and others are now macros
which generate code, rather than built-in special forms
that use "C magic". Moreover, new such macros are easy to write, and
several new ones are already available. Moreover, new kinds of
assignable places are easy to create.
* place.tl: New file.
* lisplib.c, lisplib.h: New files.
* Makefile (OBJS): New target, lisplib.o.
(GEN_HDRS): New variable.
(LISP_TO_C_STRING): New recipe macro, with rule.
(clean): Remove generated headers named in $(GEN_HDRS).
* eval.c (dec_s, push_s, pop_s, flip_s, del_s): Variables removed.
(setq_s): New variable.
(lookup_var, lokup_sym_lisp_1, lookup_var_l, lookup_fun, lookup_mac,
lookup_symac, lookup_symac_lisp1): Trigger the delayed loading of
libraries for undefined global symbols, and re-try the lookup.
(op_modplace, dwim_loc, force_l): Static functions removed.
(op_setq): New static function.
(eval_init): Initialize setq_s; remove initializations of
removed variables; remove registrations for op_modplace;
add registration for sys:setq, sys:rplaca, sys:rplacd,
sys:dwim-set and sys:dwim-del intrinsics.
Call lisplib_init to initialize the dynamic library loading module.
* lib.c (sys_rplaca, sys_rplacd): New functions, differing
in return value from rplaca and rplacd.
(ref, refset): Handle hash table.
(dwim_set, dwim_del): New functions.
* lib.h (sys_rplaca, sys_rplacd, dwim_set, dwim_del): Declared.
* genvim.txr: Include place.tl in scan.
* tests/010/seq.txr: The del operator test
case no longer throws at run-time but at macro-expansion time, so the
test case is simply removed.
* tests/010/seq.expected: Updated output.
* tests/011/macros-2.txr: Reset *gensym-counter* to zero, because
the textual output of the test case includes gensyms, whose numberings
fluctuate with the content of the new Lisp library material.
* tests/011/macros-2.expected: Updated output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(uw_throw): In the unhandled case, check if *unhandled-hook* variable
has a function, and use it instead of the default logic. If it's not a
function, abort with an error message. Clear it so that if the hook
function re-enters this code, it will not be used. Always exit now on
unhandled exceptions; do not abort.
(uw_late_init): New function.
* unwind.h (uw_late_init): Declared.
* lib.c (init): Call uw_late_init.
* txr.1: Documented *unhandled-hook*.
* genvim.txr: Scan the unwind.c file, since it has a reg_var now.
* tl.vim, txr.vim: Updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(glob_wrap, glob_init): New functions.
(errfunc_thunk): New static function.
* glob.h: New file.
* txr.c (main): call glob_init if HAVE_GLOB is defined.
* configure (have_glob): New variable.
(gen_config_make): Add have_glob to config/config.make.
Detect glob function and set have_glob, and add
HAVE_GLOB to config/config.h.
* Makefile (OBJS): Include glob.h if have_glob is "y".
* genvim.txr: Scan glob.c for functions and variables also.
* txr.1: Documented glob and glob-related variables.
|
|
|
|
|
|
|
|
|
|
| |
not being recognized.
* genvim.txr (txr_braced_ident): New match kind, specifically
for a keyword.
(txr_bracevar): Bracevar region contains txr_braced_indent.
* txr.vim, tl.vim: Regenerated.
|
|
|
|
|
|
|
|
|
| |
* genvim.txr (generate): New pattern function, contains
generation logic so we can do it twice.
* txr.vim: Regenerated.
* tl.vim: New file.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* txr.1: Document txr-if, txr-when and txr-case.
* genvim.txr: Added new macro names.
* tests/011/txr-case.expected: New file.
* tests/011/txr-case.txr: New file.
* txr.vim: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* match.c (include_s): New symbol variable.
(v_load): Function extended to handle include semantics.
(include): External wrapper function for doing inclusion
via v_load.
(syms_init): include_s initialized.
* match.h (include_s): Declared.
(include): Declared.
* parser.y (check_for_include): New static function.
(clauses_rev): Use check_for_include to replace @(include ..)
directive.
* txr.1: Documented include.
* genvim.txr: Added include symbol.
* txr.vim: Regenerated.
|