Mercurial > vim
comparison src/regexp_nfa.c @ 26962:85866e069c24 v8.2.4010
patch 8.2.4010: error messages are spread out
Commit: https://github.com/vim/vim/commit/9d00e4a8146862c17ed429dc6b1b43349acb2b5f
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 5 17:49:15 2022 +0000
patch 8.2.4010: error messages are spread out
Problem: Error messages are spread out.
Solution: Move more error messages to errors.h.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 05 Jan 2022 19:00:06 +0100 |
parents | d92e0d85923f |
children | ac75c145f0a9 |
comparison
equal
deleted
inserted
replaced
26961:33c0467b3c52 | 26962:85866e069c24 |
---|---|
240 NFA_HEX, NFA_NHEX, NFA_OCTAL, NFA_NOCTAL, | 240 NFA_HEX, NFA_NHEX, NFA_OCTAL, NFA_NOCTAL, |
241 NFA_WORD, NFA_NWORD, NFA_HEAD, NFA_NHEAD, | 241 NFA_WORD, NFA_NWORD, NFA_HEAD, NFA_NHEAD, |
242 NFA_ALPHA, NFA_NALPHA, NFA_LOWER, NFA_NLOWER, | 242 NFA_ALPHA, NFA_NALPHA, NFA_LOWER, NFA_NLOWER, |
243 NFA_UPPER, NFA_NUPPER | 243 NFA_UPPER, NFA_NUPPER |
244 }; | 244 }; |
245 | |
246 static char_u e_nul_found[] = N_("E865: (NFA) Regexp end encountered prematurely"); | |
247 static char_u e_misplaced[] = N_("E866: (NFA regexp) Misplaced %c"); | |
248 static char_u e_ill_char_class[] = N_("E877: (NFA regexp) Invalid character class: %d"); | |
249 static char_u e_value_too_large[] = N_("E951: \\% value too large"); | |
250 | 245 |
251 // Variables only used in nfa_regcomp() and descendants. | 246 // Variables only used in nfa_regcomp() and descendants. |
252 static int nfa_re_flags; // re_flags passed to nfa_regcomp() | 247 static int nfa_re_flags; // re_flags passed to nfa_regcomp() |
253 static int *post_start; // holds the postfix form of r.e. | 248 static int *post_start; // holds the postfix form of r.e. |
254 static int *post_end; | 249 static int *post_end; |
1375 | 1370 |
1376 c = getchr(); | 1371 c = getchr(); |
1377 switch (c) | 1372 switch (c) |
1378 { | 1373 { |
1379 case NUL: | 1374 case NUL: |
1380 EMSG_RET_FAIL(_(e_nul_found)); | 1375 EMSG_RET_FAIL(_(e_nfa_regexp_end_encountered_prematurely)); |
1381 | 1376 |
1382 case Magic('^'): | 1377 case Magic('^'): |
1383 EMIT(NFA_BOL); | 1378 EMIT(NFA_BOL); |
1384 break; | 1379 break; |
1385 | 1380 |
1399 break; | 1394 break; |
1400 | 1395 |
1401 case Magic('_'): | 1396 case Magic('_'): |
1402 c = no_Magic(getchr()); | 1397 c = no_Magic(getchr()); |
1403 if (c == NUL) | 1398 if (c == NUL) |
1404 EMSG_RET_FAIL(_(e_nul_found)); | 1399 EMSG_RET_FAIL(_(e_nfa_regexp_end_encountered_prematurely)); |
1405 | 1400 |
1406 if (c == '^') // "\_^" is start-of-line | 1401 if (c == '^') // "\_^" is start-of-line |
1407 { | 1402 { |
1408 EMIT(NFA_BOL); | 1403 EMIT(NFA_BOL); |
1409 break; | 1404 break; |
1459 p = vim_strchr(classchars, no_Magic(c)); | 1454 p = vim_strchr(classchars, no_Magic(c)); |
1460 if (p == NULL) | 1455 if (p == NULL) |
1461 { | 1456 { |
1462 if (extra == NFA_ADD_NL) | 1457 if (extra == NFA_ADD_NL) |
1463 { | 1458 { |
1464 semsg(_(e_ill_char_class), c); | 1459 semsg(_(e_nfa_regexp_invalid_character_class_nr), c); |
1465 rc_did_emsg = TRUE; | 1460 rc_did_emsg = TRUE; |
1466 return FAIL; | 1461 return FAIL; |
1467 } | 1462 } |
1468 siemsg("INTERNAL: Unknown character class char: %d", c); | 1463 siemsg("INTERNAL: Unknown character class char: %d", c); |
1469 return FAIL; | 1464 return FAIL; |
1504 break; | 1499 break; |
1505 | 1500 |
1506 case Magic('|'): | 1501 case Magic('|'): |
1507 case Magic('&'): | 1502 case Magic('&'): |
1508 case Magic(')'): | 1503 case Magic(')'): |
1509 semsg(_(e_misplaced), no_Magic(c)); | 1504 semsg(_(e_nfa_regexp_misplaced_chr), no_Magic(c)); |
1510 return FAIL; | 1505 return FAIL; |
1511 | 1506 |
1512 case Magic('='): | 1507 case Magic('='): |
1513 case Magic('?'): | 1508 case Magic('?'): |
1514 case Magic('+'): | 1509 case Magic('+'): |
1515 case Magic('@'): | 1510 case Magic('@'): |
1516 case Magic('*'): | 1511 case Magic('*'): |
1517 case Magic('{'): | 1512 case Magic('{'): |
1518 // these should follow an atom, not form an atom | 1513 // these should follow an atom, not form an atom |
1519 semsg(_(e_misplaced), no_Magic(c)); | 1514 semsg(_(e_nfa_regexp_misplaced_chr), no_Magic(c)); |
1520 return FAIL; | 1515 return FAIL; |
1521 | 1516 |
1522 case Magic('~'): | 1517 case Magic('~'): |
1523 { | 1518 { |
1524 char_u *lp; | 1519 char_u *lp; |
1600 return FAIL; // cascaded error | 1595 return FAIL; // cascaded error |
1601 re_has_z = REX_SET; | 1596 re_has_z = REX_SET; |
1602 break; | 1597 break; |
1603 #endif | 1598 #endif |
1604 default: | 1599 default: |
1605 semsg(_("E867: (NFA) Unknown operator '\\z%c'"), | 1600 semsg(_(e_nfa_unknown_operator_z_chr), no_Magic(c)); |
1606 no_Magic(c)); | |
1607 return FAIL; | 1601 return FAIL; |
1608 } | 1602 } |
1609 break; | 1603 break; |
1610 | 1604 |
1611 case Magic('%'): | 1605 case Magic('%'): |
1723 tmp = n * 10 + (c - '0'); | 1717 tmp = n * 10 + (c - '0'); |
1724 | 1718 |
1725 if (tmp < n) | 1719 if (tmp < n) |
1726 { | 1720 { |
1727 // overflow. | 1721 // overflow. |
1728 emsg(_(e_value_too_large)); | 1722 emsg(_(e_percent_value_too_large)); |
1729 return FAIL; | 1723 return FAIL; |
1730 } | 1724 } |
1731 n = tmp; | 1725 n = tmp; |
1732 c = getchr(); | 1726 c = getchr(); |
1733 } | 1727 } |
1771 cmp == '>' ? NFA_VCOL_GT : NFA_VCOL); | 1765 cmp == '>' ? NFA_VCOL_GT : NFA_VCOL); |
1772 limit = INT_MAX / MB_MAXBYTES; | 1766 limit = INT_MAX / MB_MAXBYTES; |
1773 } | 1767 } |
1774 if (n >= limit) | 1768 if (n >= limit) |
1775 { | 1769 { |
1776 emsg(_(e_value_too_large)); | 1770 emsg(_(e_percent_value_too_large)); |
1777 return FAIL; | 1771 return FAIL; |
1778 } | 1772 } |
1779 EMIT((int)n); | 1773 EMIT((int)n); |
1780 break; | 1774 break; |
1781 } | 1775 } |
1786 cmp == '>' ? NFA_MARK_GT : NFA_MARK); | 1780 cmp == '>' ? NFA_MARK_GT : NFA_MARK); |
1787 EMIT(getchr()); | 1781 EMIT(getchr()); |
1788 break; | 1782 break; |
1789 } | 1783 } |
1790 } | 1784 } |
1791 semsg(_("E867: (NFA) Unknown operator '\\%%%c'"), | 1785 semsg(_(e_nfa_unknown_operator_percent_chr), no_Magic(c)); |
1792 no_Magic(c)); | |
1793 return FAIL; | 1786 return FAIL; |
1794 } | 1787 } |
1795 break; | 1788 break; |
1796 | 1789 |
1797 case Magic('['): | 1790 case Magic('['): |
1945 { | 1938 { |
1946 result = nfa_emit_equi_class(equiclass); | 1939 result = nfa_emit_equi_class(equiclass); |
1947 if (result == FAIL) | 1940 if (result == FAIL) |
1948 { | 1941 { |
1949 // should never happen | 1942 // should never happen |
1950 EMSG_RET_FAIL(_("E868: Error building NFA with equivalence class!")); | 1943 EMSG_RET_FAIL(_(e_error_building_nfa_with_equivalence_class)); |
1951 } | 1944 } |
1952 continue; | 1945 continue; |
1953 } | 1946 } |
1954 // Try collating class like [. .] | 1947 // Try collating class like [. .] |
1955 if (collclass != 0) | 1948 if (collclass != 0) |
2271 i = NFA_PREV_ATOM_LIKE_PATTERN; | 2264 i = NFA_PREV_ATOM_LIKE_PATTERN; |
2272 break; | 2265 break; |
2273 } | 2266 } |
2274 if (i == 0) | 2267 if (i == 0) |
2275 { | 2268 { |
2276 semsg(_("E869: (NFA) Unknown operator '\\@%c'"), op); | 2269 semsg(_(e_nfa_unknown_operator_at_chr), op); |
2277 return FAIL; | 2270 return FAIL; |
2278 } | 2271 } |
2279 EMIT(i); | 2272 EMIT(i); |
2280 if (i == NFA_PREV_ATOM_JUST_BEFORE | 2273 if (i == NFA_PREV_ATOM_JUST_BEFORE |
2281 || i == NFA_PREV_ATOM_JUST_BEFORE_NEG) | 2274 || i == NFA_PREV_ATOM_JUST_BEFORE_NEG) |
5123 return OK; | 5116 return OK; |
5124 break; | 5117 break; |
5125 | 5118 |
5126 default: | 5119 default: |
5127 // should not be here :P | 5120 // should not be here :P |
5128 siemsg(_(e_ill_char_class), class); | 5121 siemsg(_(e_nfa_regexp_invalid_character_class_nr), class); |
5129 return FAIL; | 5122 return FAIL; |
5130 } | 5123 } |
5131 return FAIL; | 5124 return FAIL; |
5132 } | 5125 } |
5133 | 5126 |