summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@colm.net>2019-11-06 20:39:51 -0300
committerAdrian Thurston <thurston@colm.net>2019-11-07 10:12:20 -0300
commitbd8de42f05975c262a6ecd156d8a6fbc50aa0de5 (patch)
tree1e62788a8c28819d383323aeef4e2efa7127439d
parent2219942bead1ad955e6c24f76745437d44dd1b29 (diff)
downloadragel-bd8de42f05975c262a6ecd156d8a6fbc50aa0de5.tar.gz
exclude ? from position 2+ of literal token
-rw-r--r--colm.vim3
-rw-r--r--colm/colm.lm7
-rw-r--r--ragel/ragel.lm8
-rw-r--r--test/rlparse.d/ragel.lm8
-rw-r--r--test/trans.d/ragel.lm8
5 files changed, 25 insertions, 9 deletions
diff --git a/colm.vim b/colm.vim
index 778f8f10..661df42b 100644
--- a/colm.vim
+++ b/colm.vim
@@ -40,8 +40,9 @@ syntax match char "\\." contained
syntax match otLit "\~.*$"
syntax match otLit "'\(\\.\|[^'\\]\)*\('[i]*\)\?"
-syntax match otLit "`[^ \t\r\]]\+"
+syntax match otLit "`[^ \t\r\]?]\+"
syntax match otLit "`\]"
+syntax match otLit "`?"
"
" Other stuff
diff --git a/colm/colm.lm b/colm/colm.lm
index 446aee06..51826941 100644
--- a/colm/colm.lm
+++ b/colm/colm.lm
@@ -82,8 +82,11 @@ lex
token number
/ ( '0' .. '9' ) + /
- token backtick_lit
- / '`' . ^( ' ' | '\n' | '\t' | ']' )+ | '`]' /
+ token backtick_lit /
+ '`' . ^( ' ' | '\n' | '\t' | ']' | '?' )+ |
+ '`]' |
+ '`?'
+ /
token DQ / '\"' / - ni
token SQ / '\'' / - ni
diff --git a/ragel/ragel.lm b/ragel/ragel.lm
index c9f6a3b5..a628dcea 100644
--- a/ragel/ragel.lm
+++ b/ragel/ragel.lm
@@ -284,7 +284,11 @@ namespace ragel
literal `@ `> `< `% `$
literal `from `to `eof `lerr `err
- literal `when `inwhen `outwhen `>? `$? `%?
+ literal `when `inwhen `outwhen
+
+ token in_when /'>?'/
+ token all_when /'$?'/
+ token leave_when /'%?'/
literal `:= `|= `= `; `.. `../i `::
@@ -563,7 +567,7 @@ namespace ragel
[`@] :Finish | [`>] :Enter | [`%] :Leave | [`$] :All
def aug_cond
- [`>?] :Start1 | [`$?] :All1 | [`%?] :Leave1
+ [in_when] :Start1 | [all_when] :All1 | [leave_when] :Leave1
| [`> `when] :Start2 | [`$ `when] :All2 | [`% `when] :Leave2
| [`inwhen] :Start3 | [`when] :All3 | [`outwhen] :Leave3
diff --git a/test/rlparse.d/ragel.lm b/test/rlparse.d/ragel.lm
index 64d5bb6a..eda96275 100644
--- a/test/rlparse.d/ragel.lm
+++ b/test/rlparse.d/ragel.lm
@@ -107,7 +107,11 @@ namespace ragel
literal `@ `> `< `% `$
literal `from `to `eof `lerr `err
- literal `when `inwhen `outwhen `>? `$? `%?
+ literal `when `inwhen `outwhen
+
+ token in_when /'>?'/
+ token all_when /'$?'/
+ token leave_when /'%?'/
literal `:= `|= `= `; `.. `../i `::
@@ -277,7 +281,7 @@ namespace ragel
[`@] :Finish | [`>] :Enter | [`%] :Leave | [`$] :All
def aug_cond
- [`>?] :Start1 | [`$?] :All1 | [`%?] :Leave1
+ [in_when] :Start1 | [all_when] :All1 | [leave_when] :Leave1
| [`> `when] :Start2 | [`$ `when] :All2 | [`% `when] :Leave2
| [`inwhen] :Start3 | [`when] :All3 | [`outwhen] :Leave3
diff --git a/test/trans.d/ragel.lm b/test/trans.d/ragel.lm
index 64d5bb6a..eda96275 100644
--- a/test/trans.d/ragel.lm
+++ b/test/trans.d/ragel.lm
@@ -107,7 +107,11 @@ namespace ragel
literal `@ `> `< `% `$
literal `from `to `eof `lerr `err
- literal `when `inwhen `outwhen `>? `$? `%?
+ literal `when `inwhen `outwhen
+
+ token in_when /'>?'/
+ token all_when /'$?'/
+ token leave_when /'%?'/
literal `:= `|= `= `; `.. `../i `::
@@ -277,7 +281,7 @@ namespace ragel
[`@] :Finish | [`>] :Enter | [`%] :Leave | [`$] :All
def aug_cond
- [`>?] :Start1 | [`$?] :All1 | [`%?] :Leave1
+ [in_when] :Start1 | [all_when] :All1 | [leave_when] :Leave1
| [`> `when] :Start2 | [`$ `when] :All2 | [`% `when] :Leave2
| [`inwhen] :Start3 | [`when] :All3 | [`outwhen] :Leave3