From 63312643ed52032ad9516533279c6b946478f562 Mon Sep 17 00:00:00 2001 From: mitchell Date: Tue, 4 Jun 2019 18:08:37 -0400 Subject: lexlua: Support single quotes in C++14 integer literals. --- lexlua/cpp.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lexlua/cpp.lua') diff --git a/lexlua/cpp.lua b/lexlua/cpp.lua index b38e0120e..91a04f650 100644 --- a/lexlua/cpp.lua +++ b/lexlua/cpp.lua @@ -46,7 +46,11 @@ local block_comment = '/*' * (lexer.any - '*/')^0 * P('*/')^-1 lex:add_rule('comment', token(lexer.COMMENT, line_comment + block_comment)) -- Numbers. -lex:add_rule('number', token(lexer.NUMBER, lexer.float + lexer.integer)) +local dec = lexer.digit^1 * ("'" * lexer.digit^1)^0 +local hex = '0' * S('xX') * lexer.xdigit^1 * ("'" * lexer.xdigit^1)^0 +local bin = '0' * S('bB') * S('01')^1 * ("'" * S('01')^1)^0 +local integer = S('+-')^-1 * (hex + bin + dec) +lex:add_rule('number', token(lexer.NUMBER, lexer.float + integer)) -- Preprocessor. local preproc_word = word_match[[ -- cgit v1.2.3