diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-03-19 07:57:55 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-03-20 07:52:44 -0700 |
commit | 9e8009c03ccb7b0f5c9da22900cf9454b8f69682 (patch) | |
tree | 00226298a9a1c1cbb02fb723176bcbd6e1b2b0ca /parser.y | |
parent | 430aeaff0cf42ffc4b9cfdda43b3357d766bec21 (diff) | |
download | txr-9e8009c03ccb7b0f5c9da22900cf9454b8f69682.tar.gz txr-9e8009c03ccb7b0f5c9da22900cf9454b8f69682.tar.bz2 txr-9e8009c03ccb7b0f5c9da22900cf9454b8f69682.zip |
Fixing gaping bug in the handling of @-delimited expressions
within quasiliterals. This has been a problem for years.
Quasiliteral strings existed very early before TXR Lisp was introduced.
So it made sense that when @ is seen in a quasiliteral, the
lexical analyzer pushed into the SPECIAL state in which directives
are recognized, like in the pattern language. I noticed
this because there is an @(if) directive now, which prevents
`@(if ...)` from being valid.
* parser.l (QSPECIAL): New scanner state. This is a state
similar to SPECIAL that we enter into when @ is seen in a QSLIT state.
In this state we recognize constructs like braced variables, but not
certain other features like directives.
Diffstat (limited to 'parser.y')
0 files changed, 0 insertions, 0 deletions