|
9 | 9 |
|
10 | 10 | (defpredicates number :clojureNumber)
|
11 | 11 | (def-eq-predicates kw [:clojureKeywordNsColon :clojureKeyword])
|
12 |
| -(def-eq-predicates kwWithNs [:clojureKeywordNsColon :clojureKeyword]) |
13 |
| -(def-eq-predicates sym [:clojureSymbolNsColon :clojureSymbol]) |
14 |
| -(def-eq-predicates symWithNs [:clojureSymbolNsColon :clojureSymbol]) |
| 12 | +(def-eq-predicates kwCurrentNs [:clojureKeywordNsColon :clojureKeywordNsColon :clojureKeyword]) |
| 13 | +(def-eq-predicates kwWithNs [:clojureKeywordNsColon :clojureKeywordNs :clojureKeywordNsSeparator :clojureKeyword]) |
| 14 | +(def-eq-predicates kwWithNs3_4 [:clojureKeywordNsColon |
| 15 | + :clojureKeywordNs |
| 16 | + :clojureKeywordNs |
| 17 | + :clojureKeywordNs |
| 18 | + :clojureKeywordNsSeparator |
| 19 | + :clojureKeyword |
| 20 | + :clojureKeyword |
| 21 | + :clojureKeyword |
| 22 | + :clojureKeyword]) |
| 23 | +(def-eq-predicates sym [:clojureSymbol]) |
| 24 | +(def-eq-predicates symWithNs [:clojureSymbol]) |
| 25 | +(def-eq-predicates symWithNs_tripleBody [:clojureKeywordNsColon |
| 26 | + :clojureKeywordNs :clojureKeywordNsSeparator |
| 27 | + :clojureKeywordNs :clojureKeywordNsSeparator |
| 28 | + :clojureKeywordNs :clojureKeywordNsSeparator |
| 29 | + :clojureKeyword]) |
| 30 | +(def-eq-predicates kwWithNamedNs [:clojureKeywordNsColon :clojureKeywordNsColon |
| 31 | + :clojureKeywordNs :clojureKeywordNsSeparator :clojureKeyword]) |
| 32 | + |
15 | 33 | (defpredicates character :clojureCharacter)
|
16 | 34 | (defpredicates regexp :clojureRegexp)
|
17 | 35 | (defpredicates regexp-delimiter :clojureRegexpDelimiter)
|
|
111 | 129 |
|
112 | 130 | (comment (test #'test-character-literals))
|
113 | 131 |
|
| 132 | +(def emptyKeyword (keyword "")) |
| 133 | + |
114 | 134 | (defsyntaxtest keywords-test
|
115 | 135 | ["%s"
|
116 | 136 | [":1" kw
|
117 | 137 | ":A" kw
|
118 | 138 | ":a" kw
|
119 |
| - ":αβγ" kw |
120 |
| - "::a" kw |
| 139 | + ":αβγ" (partial = [:clojureKeywordNsColon :clojureKeyword :clojureKeyword :clojureKeyword]) |
| 140 | + "::a" kwCurrentNs |
121 | 141 | ":a/b" kwWithNs
|
122 |
| - ":a:b" kw |
123 |
| - ":a:b/:c:b" kwWithNs |
124 |
| - ":a/b/c/d" kwWithNs |
125 |
| - "::a/b" kwWithNs |
126 |
| - "::" !kw |
127 |
| - "::" !kwWithNs |
128 |
| - ":a:" !kw |
129 |
| - ":a:" !kwWithNs |
130 |
| - ":a/" !kw |
131 |
| - ":a/" !kwWithNs |
132 |
| - ":/" !kw ; This is legal, but for simplicity we do not match it |
133 |
| - ":/" !kwWithNs ; This is legal, but for simplicity we do not match it |
134 |
| - ":" !kw |
135 |
| - ":" !kwWithNs]]) |
| 142 | + ":a:b/:c:b" kwWithNs3_4 |
| 143 | + ":a/b/c/d" symWithNs_tripleBody |
| 144 | + "::a/b" kwWithNamedNs |
| 145 | + "::" (partial = [emptyKeyword emptyKeyword]) |
| 146 | + ":a:" (partial = [emptyKeyword :clojureSymbol emptyKeyword]) |
| 147 | + ":a/" (partial = [:clojureKeywordNsColon :clojureKeywordNs :clojureKeywordNsSeparator]) |
| 148 | + ":/" (partial = [:clojureKeywordNsColon :clojureKeywordNsSeparator]) |
| 149 | + ":" (partial = [emptyKeyword])]]) |
136 | 150 |
|
137 | 151 | (defsyntaxtest symbols-test
|
138 | 152 | ["%s"
|
139 | 153 | ["1" !sym
|
140 | 154 | "1" !symWithNs
|
141 | 155 | "A" sym
|
142 | 156 | "a" sym
|
143 |
| - "αβγ" sym |
144 |
| - "a/b" symWithNs |
145 |
| - "a:b" sym |
146 |
| - "a:b/:c:b" symWithNs |
147 |
| - "a/b/c/d" symWithNs |
| 157 | + "αβγ" (partial = [:clojureSymbol :clojureSymbol :clojureSymbol]) |
| 158 | + "a/b" (partial = [:clojureSymbolNs :clojureSymbolNsSeparator :clojureSymbol]) |
| 159 | + "a:b" (partial = [:clojureSymbol :clojureSymbol :clojureSymbol]) |
| 160 | + "a:b/:c:b" (partial = [:clojureSymbolNs |
| 161 | + :clojureSymbolNs |
| 162 | + :clojureSymbolNs |
| 163 | + :clojureSymbolNsSeparator |
| 164 | + :clojureSymbol |
| 165 | + :clojureSymbol |
| 166 | + :clojureSymbol |
| 167 | + :clojureSymbol]) |
| 168 | + "a/b/c/d" (partial = [:clojureSymbolNs :clojureSymbolNsSeparator |
| 169 | + :clojureSymbolNs :clojureSymbolNsSeparator |
| 170 | + :clojureSymbolNs :clojureSymbolNsSeparator |
| 171 | + :clojureSymbol]) |
148 | 172 | "a:" !sym
|
149 | 173 | "a:" !symWithNs
|
150 | 174 | "a/" !sym
|
151 | 175 | "a/" !symWithNs
|
152 |
| - "/" sym]]) |
| 176 | + "/" !sym]]) |
153 | 177 |
|
154 | 178 | (comment (test #'keywords-test))
|
155 | 179 |
|
|
0 commit comments