summaryrefslogtreecommitdiffstats
path: root/txr.1
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-05-22 20:03:13 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-05-22 20:03:13 -0700
commit42afde14b0e59de2e0f938806323dad9e2e5ed06 (patch)
tree3d00929c93994345382cc10dae674704cd5ef11a /txr.1
parenta580c45de5a825165f46d95206d9ac3c2c52fcd6 (diff)
downloadtxr-42afde14b0e59de2e0f938806323dad9e2e5ed06.tar.gz
txr-42afde14b0e59de2e0f938806323dad9e2e5ed06.tar.bz2
txr-42afde14b0e59de2e0f938806323dad9e2e5ed06.zip
txr: support variable in postive match.
In the @{var mod} syntax in the pattern language, allow mod to be a variable which contains a regex or integer, not just an integer or regex literal. * match.c (h_var): Check for modifier being a variable, and resolve it. * parser.y (modifiers): Allow a SYMTOK phrase. * txr.1: Documented.
Diffstat (limited to 'txr.1')
-rw-r--r--txr.121
1 files changed, 21 insertions, 0 deletions
diff --git a/txr.1 b/txr.1
index 7d6e00bb..206cdd16 100644
--- a/txr.1
+++ b/txr.1
@@ -2179,6 +2179,7 @@ enclosed with the variable in braces:
.mets >> @{ bident <> / regex /}
.mets >> @{ bident >> ( fun >> [args ...])}
.mets >> @{ bident << number }
+.mets >> @{ bident << bident }
.cble
These specify a variable binding that is driven by a positive match derived
@@ -2227,6 +2228,26 @@ This syntax is processed without consideration of what other
syntax follows. A positive match may be directly followed by an unbound
variable.
+The
+.cblk
+.mets >> @{ bident << bident }
+.cble
+syntax allows the
+.meta number
+or
+.meta regex
+modifier to come from a variable. The variable must be bound and contain
+a non-negative integer or regular expression.
+For example,
+.code "@{x y}"
+behaves like
+.code "@{x 3}"
+if
+.code y
+is bound to the integer 3. It is an error if
+.code y
+is unbound.
+
.coSS Special Symbols @ nil and @ t
Just like in the Common Lisp language, the names