summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2019-12-17 14:24:30 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2019-12-17 14:24:30 -0300
commite0ab13c62f2c1af0af955f173beb3ea6473e8064 (patch)
tree5de81039dfdbaff96094478781c41a9010f121f8
parente0cbaa50fa7e97a8b7404041a59caac47b3949a5 (diff)
downloadlua-e0ab13c62f2c1af0af955f173beb3ea6473e8064.tar.gz
lua-e0ab13c62f2c1af0af955f173beb3ea6473e8064.tar.bz2
lua-e0ab13c62f2c1af0af955f173beb3ea6473e8064.zip
Easy way to allow Unicode characters in identifiers
For those that want to try it...
-rw-r--r--lctype.c41
1 files changed, 25 insertions, 16 deletions
diff --git a/lctype.c b/lctype.c
index 4eaad167..95422809 100644
--- a/lctype.c
+++ b/lctype.c
@@ -16,6 +16,15 @@
16 16
17#include <limits.h> 17#include <limits.h>
18 18
19
20#if defined (LUA_UCID) /* accept UniCode IDentifiers? */
21/* consider all non-ascii codepoints to be alphabetic */
22#define NONA 0x01
23#else
24#define NONA 0x00 /* default */
25#endif
26
27
19LUAI_DDEF const lu_byte luai_ctype_[UCHAR_MAX + 2] = { 28LUAI_DDEF const lu_byte luai_ctype_[UCHAR_MAX + 2] = {
20 0x00, /* EOZ */ 29 0x00, /* EOZ */
21 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0. */ 30 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0. */
@@ -34,22 +43,22 @@ LUAI_DDEF const lu_byte luai_ctype_[UCHAR_MAX + 2] = {
34 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 43 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
35 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 7. */ 44 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 7. */
36 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00, 45 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00,
37 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 8. */ 46 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* 8. */
38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 47 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 9. */ 48 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* 9. */
40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 49 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* a. */ 50 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* a. */
42 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 51 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
43 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* b. */ 52 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* b. */
44 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 53 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
45 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* c. */ 54 0x00, 0x00, NONA, NONA, NONA, NONA, NONA, NONA, /* c. */
46 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 55 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
47 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* d. */ 56 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* d. */
48 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 57 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
49 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* e. */ 58 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* e. */
50 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 59 NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* f. */ 60 NONA, NONA, NONA, NONA, NONA, 0x00, 0x00, 0x00, /* f. */
52 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
53}; 62};
54 63
55#endif /* } */ 64#endif /* } */