summaryrefslogtreecommitdiff
path: root/src/colm.lm
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@colm.net>2018-12-17 14:10:50 +0200
committerAdrian Thurston <thurston@colm.net>2018-12-17 14:11:53 +0200
commiteccfd443ed78c614c396c542a07673c113f1ecd3 (patch)
tree297658178b1f24d53c476c9fa62f5a44b9a87d9a /src/colm.lm
parentfc1d61f4cab2260e90fcd468078eaa0d2046f372 (diff)
downloadcolm-eccfd443ed78c614c396c542a07673c113f1ecd3.tar.gz
allow referencing a tree in reduction actions
syntax is $*N
Diffstat (limited to 'src/colm.lm')
-rw-r--r--src/colm.lm4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/colm.lm b/src/colm.lm
index 2bd4497a..a8e398cf 100644
--- a/src/colm.lm
+++ b/src/colm.lm
@@ -364,9 +364,11 @@ lex
token RED_LHS / '$' . '$' /
token RED_RHS_REF / '$' . red_id /
token RED_RHS_LOC / '@' . red_id /
+ token RED_TREE_REF / '$*' . red_id /
token RED_RHS_NREF / '$' . ('1' .. '9') . ('0' .. '9')* /
token RED_RHS_NLOC / '@' . ('1' .. '9') . ('0' .. '9')* /
+ token RED_TREE_NREF / '$*' . ('1' .. '9') . ('0' .. '9')* /
token red_any / any /
end
@@ -385,8 +387,10 @@ def host_item
| [red_any]
| [RED_LHS]
| [RED_RHS_REF]
+| [RED_TREE_REF]
| [RED_RHS_LOC]
| [RED_RHS_NREF]
+| [RED_TREE_NREF]
| [RED_RHS_NLOC]
| [RED_OPEN HostItems: host_item* RED_CLOSE]