git.delta.rocks / jrsonnet / refs/commits / 6314afd4640f

difftreelog

feat(lexer) number delimiters

mqowotvpYaroslav Bolyukin2026-03-23parent: #7c03fc4.patch.diff
in: master

1 file changed

modifiedcrates/jrsonnet-lexer/src/generated/syntax_kinds.rsdiffbeforeafterboth
86 ASSIGN,86 ASSIGN,
87 #[token("?")]87 #[token("?")]
88 QUESTION_MARK,88 QUESTION_MARK,
89 #[regex("(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?")]89 #[regex(
90 "(?:0|[1-9][0-9]*(?:_[0-9]+)*)(?:\\.[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?"
91 )]
90 FLOAT,92 FLOAT,
91 #[regex("(?:0|[1-9][0-9]*)\\.[^0-9]")]93 #[regex("(?:0|[1-9][0-9]*(?:_[0-9]+)*)\\.[^0-9]")]
92 ERROR_FLOAT_JUNK_AFTER_POINT,94 ERROR_FLOAT_JUNK_AFTER_POINT,
93 #[regex("(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?[eE][^+\\-0-9]")]95 #[regex("(?:0|[1-9][0-9]*(?:_[0-9]+)*)(?:\\.[0-9]+(?:_[0-9]+)*)?[eE][^+\\-0-9]")]
94 ERROR_FLOAT_JUNK_AFTER_EXPONENT,96 ERROR_FLOAT_JUNK_AFTER_EXPONENT,
95 #[regex("(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?[eE][+-][^0-9]")]97 #[regex("(?:0|[1-9][0-9]*(?:_[0-9]+)*)(?:\\.[0-9]+(?:_[0-9]+)*)?[eE][+-][^0-9]")]
96 ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN,98 ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN,
97 #[regex("\"(?s:[^\"\\\\]|\\\\.)*\"")]99 #[regex("\"(?s:[^\"\\\\]|\\\\.)*\"")]
98 STRING_DOUBLE,100 STRING_DOUBLE,
191 _ => false,193 _ => false,
192 }194 }
193 }195 }
196 pub fn error_description(self) -> Option<&'static str> {
197 match self {
198 ERROR_FLOAT_JUNK_AFTER_POINT => {
199 ::core::option::Option::Some("junk after decimal point in number literal")
200 }
201 ERROR_FLOAT_JUNK_AFTER_EXPONENT => {
202 ::core::option::Option::Some("junk after exponent in number literal")
203 }
204 ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN => {
205 ::core::option::Option::Some("junk after exponent sign in number literal")
206 }
207 ERROR_STRING_DOUBLE_UNTERMINATED => {
208 ::core::option::Option::Some("unterminated double-quoted string")
209 }
210 ERROR_STRING_SINGLE_UNTERMINATED => {
211 ::core::option::Option::Some("unterminated single-quoted string")
212 }
213 ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED => {
214 ::core::option::Option::Some("unterminated verbatim double-quoted string")
215 }
216 ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED => {
217 ::core::option::Option::Some("unterminated verbatim single-quoted string")
218 }
219 ERROR_STRING_VERBATIM_MISSING_QUOTES => {
220 ::core::option::Option::Some("verbatim string missing opening quotes")
221 }
222 ERROR_STRING_BLOCK_UNEXPECTED_END => {
223 ::core::option::Option::Some("unexpected end of text block")
224 }
225 ERROR_STRING_BLOCK_MISSING_NEW_LINE => {
226 ::core::option::Option::Some("text block requires new line after |||")
227 }
228 ERROR_STRING_BLOCK_MISSING_TERMINATION => {
229 ::core::option::Option::Some("unterminated text block")
230 }
231 ERROR_STRING_BLOCK_MISSING_INDENT => {
232 ::core::option::Option::Some("text block first line must be indented")
233 }
234 ERROR_COMMENT_TOO_SHORT => ::core::option::Option::Some("comment too short"),
235 ERROR_COMMENT_UNTERMINATED => {
236 ::core::option::Option::Some("unterminated multi-line comment")
237 }
238 ERROR_NO_OPERATOR => ::core::option::Option::Some("expected operator"),
239 ERROR_MISSING_TOKEN => ::core::option::Option::Some("missing token"),
240 ERROR_UNEXPECTED_TOKEN => ::core::option::Option::Some("unexpected token"),
241 ERROR_CUSTOM => ::core::option::Option::Some("error"),
242 LEXING_ERROR => ::core::option::Option::Some("unexpected character"),
243 _ => None,
244 }
245 }
246 pub fn display_name(self) -> &'static str {
247 match self {
248 OR => "'||'",
249 NULL_COAELSE => "'??'",
250 AND => "'&&'",
251 BIT_OR => "'|'",
252 BIT_XOR => "'^'",
253 BIT_AND => "'&'",
254 EQ => "'=='",
255 NE => "'!='",
256 LT => "'<'",
257 GT => "'>'",
258 LE => "'<='",
259 GE => "'>='",
260 LHS => "'<<'",
261 RHS => "'>>'",
262 PLUS => "'+'",
263 MINUS => "'-'",
264 MUL => "'*'",
265 DIV => "'/'",
266 MODULO => "'%'",
267 NOT => "'!'",
268 BIT_NOT => "'~'",
269 L_BRACK => "'['",
270 R_BRACK => "']'",
271 L_PAREN => "'('",
272 R_PAREN => "')'",
273 L_BRACE => "'{'",
274 R_BRACE => "'}'",
275 COLON => "':'",
276 SEMI => "';'",
277 DOT => "'.'",
278 DOTDOTDOT => "'...'",
279 COMMA => "','",
280 DOLLAR => "'$'",
281 ASSIGN => "'='",
282 QUESTION_MARK => "'?'",
283 FLOAT => "number",
284 ERROR_FLOAT_JUNK_AFTER_POINT => "junk after decimal point in number literal",
285 ERROR_FLOAT_JUNK_AFTER_EXPONENT => "junk after exponent in number literal",
286 ERROR_FLOAT_JUNK_AFTER_EXPONENT_SIGN => "junk after exponent sign in number literal",
287 STRING_DOUBLE => "string",
288 ERROR_STRING_DOUBLE_UNTERMINATED => "unterminated double-quoted string",
289 STRING_SINGLE => "string",
290 ERROR_STRING_SINGLE_UNTERMINATED => "unterminated single-quoted string",
291 STRING_DOUBLE_VERBATIM => "string",
292 ERROR_STRING_DOUBLE_VERBATIM_UNTERMINATED => {
293 "unterminated verbatim double-quoted string"
294 }
295 STRING_SINGLE_VERBATIM => "string",
296 ERROR_STRING_SINGLE_VERBATIM_UNTERMINATED => {
297 "unterminated verbatim single-quoted string"
298 }
299 ERROR_STRING_VERBATIM_MISSING_QUOTES => "verbatim string missing opening quotes",
300 STRING_BLOCK => "string",
301 ERROR_STRING_BLOCK_UNEXPECTED_END => "unexpected end of text block",
302 ERROR_STRING_BLOCK_MISSING_NEW_LINE => "text block requires new line after |||",
303 ERROR_STRING_BLOCK_MISSING_TERMINATION => "unterminated text block",
304 ERROR_STRING_BLOCK_MISSING_INDENT => "text block first line must be indented",
305 IDENT => "identifier",
306 WHITESPACE => "whitespace",
307 SINGLE_LINE_SLASH_COMMENT => "comment",
308 SINGLE_LINE_HASH_COMMENT => "comment",
309 MULTI_LINE_COMMENT => "comment",
310 ERROR_COMMENT_TOO_SHORT => "comment too short",
311 ERROR_COMMENT_UNTERMINATED => "unterminated multi-line comment",
312 ERROR_NO_OPERATOR => "expected operator",
313 ERROR_MISSING_TOKEN => "missing token",
314 ERROR_UNEXPECTED_TOKEN => "unexpected token",
315 ERROR_CUSTOM => "error",
316 TAILSTRICT_KW => "'tailstrict'",
317 LOCAL_KW => "'local'",
318 IMPORTSTR_KW => "'importstr'",
319 IMPORTBIN_KW => "'importbin'",
320 IMPORT_KW => "'import'",
321 IF_KW => "'if'",
322 THEN_KW => "'then'",
323 ELSE_KW => "'else'",
324 FUNCTION_KW => "'function'",
325 ERROR_KW => "'error'",
326 IN_KW => "'in'",
327 META_OBJECT_APPLY => "meta_object_apply",
328 NULL_KW => "'null'",
329 TRUE_KW => "'true'",
330 FALSE_KW => "'false'",
331 SELF_KW => "'self'",
332 SUPER_KW => "'super'",
333 FOR_KW => "'for'",
334 ASSERT_KW => "'assert'",
335 LEXING_ERROR => "unexpected character",
336 _ => "unknown",
337 }
338 }
194 pub fn from_raw(r: u16) -> Self {339 pub fn from_raw(r: u16) -> Self {
195 assert!(r < Self::__LAST as u16);340 assert!(r < Self::__LAST as u16);
196 unsafe { std::mem::transmute(r) }341 unsafe { std::mem::transmute(r) }