aboutsummaryrefslogtreecommitdiff
path: root/src/yuescript/yue_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuescript/yue_parser.cpp')
-rw-r--r--src/yuescript/yue_parser.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/yuescript/yue_parser.cpp b/src/yuescript/yue_parser.cpp
index 1ff772b..63c9162 100644
--- a/src/yuescript/yue_parser.cpp
+++ b/src/yuescript/yue_parser.cpp
@@ -50,13 +50,23 @@ YueParser::YueParser() {
50 EmptyLine = SpaceBreak; 50 EmptyLine = SpaceBreak;
51 AlphaNum = range('a', 'z') | range('A', 'Z') | range('0', '9') | '_'; 51 AlphaNum = range('a', 'z') | range('A', 'Z') | range('0', '9') | '_';
52 Name = (range('a', 'z') | range('A', 'Z') | '_') >> *AlphaNum; 52 Name = (range('a', 'z') | range('A', 'Z') | '_') >> *AlphaNum;
53 num_expo = set("eE") >> -expr('-') >> num_char; 53 num_expo = set("eE") >> -set("+-") >> num_char;
54 num_expo_hex = set("pP") >> -set("+-") >> num_char;
54 lj_num = -set("uU") >> set("lL") >> set("lL"); 55 lj_num = -set("uU") >> set("lL") >> set("lL");
55 num_char = range('0', '9') >> *(range('0', '9') | expr('_') >> and_(range('0', '9'))); 56 num_char = range('0', '9') >> *(range('0', '9') | expr('_') >> and_(range('0', '9')));
56 num_char_hex = range('0', '9') | range('a', 'f') | range('A', 'F'); 57 num_char_hex = range('0', '9') | range('a', 'f') | range('A', 'F');
57 num_lit = num_char_hex >> *(num_char_hex | expr('_') >> and_(num_char_hex)); 58 num_lit = num_char_hex >> *(num_char_hex | expr('_') >> and_(num_char_hex));
58 Num = ( 59 Num = (
59 "0x" >> +num_lit >> -lj_num 60 "0x." >> +num_lit >> -num_expo_hex
61 ) | (
62 "0x" >> +num_lit >> (
63 '.' >> +num_lit >> -num_expo_hex |
64 num_expo_hex |
65 lj_num |
66 true_()
67 )
68 ) | (
69 '.' >> +num_char >> -num_expo
60 ) | ( 70 ) | (
61 +num_char >> ( 71 +num_char >> (
62 '.' >> +num_char >> -num_expo | 72 '.' >> +num_char >> -num_expo |
@@ -64,8 +74,6 @@ YueParser::YueParser() {
64 lj_num | 74 lj_num |
65 true_() 75 true_()
66 ) 76 )
67 ) | (
68 '.' >> +num_char >> -num_expo
69 ); 77 );
70 78
71 Cut = false_(); 79 Cut = false_();