From e0bb853014a7b11477e8e0693b4375cbeed4b364 Mon Sep 17 00:00:00 2001 From: Alexandr Opak Date: Fri, 29 Jan 2021 13:04:37 +0100 Subject: fix parsing integer values with '_' at the end --- lib/psych/scalar_scanner.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/psych/scalar_scanner.rb b/lib/psych/scalar_scanner.rb index d565a33..47f83b6 100644 --- a/lib/psych/scalar_scanner.rb +++ b/lib/psych/scalar_scanner.rb @@ -14,10 +14,10 @@ module Psych |\.(nan|NaN|NAN)(?# not a number))$/x # Taken from http://yaml.org/type/int.html - INTEGER = /^(?:[-+]?0b[0-1_,]+ (?# base 2) - |[-+]?0[0-7_,]+ (?# base 8) - |[-+]?(?:0|[1-9][0-9_,]*) (?# base 10) - |[-+]?0x[0-9a-fA-F_,]+ (?# base 16))$/x + INTEGER = /^(?:[-+]?0b[0-1_,]+ (?# base 2) + |[-+]?0[0-7_,]+ (?# base 8) + |[-+]?(?:\d|[1-9][0-9_,]*[^_]) (?# base 10) + |[-+]?0x[0-9a-fA-F_,]+ (?# base 16))$/x attr_reader :class_loader -- cgit v1.2.1 From 8f71222bf3c73f910da467e75d4c7231005bc8b0 Mon Sep 17 00:00:00 2001 From: Alexandr Opak Date: Fri, 29 Jan 2021 14:10:04 +0100 Subject: add more tests --- lib/psych/scalar_scanner.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/psych/scalar_scanner.rb b/lib/psych/scalar_scanner.rb index 47f83b6..f9805a4 100644 --- a/lib/psych/scalar_scanner.rb +++ b/lib/psych/scalar_scanner.rb @@ -14,10 +14,10 @@ module Psych |\.(nan|NaN|NAN)(?# not a number))$/x # Taken from http://yaml.org/type/int.html - INTEGER = /^(?:[-+]?0b[0-1_,]+ (?# base 2) - |[-+]?0[0-7_,]+ (?# base 8) - |[-+]?(?:\d|[1-9][0-9_,]*[^_]) (?# base 10) - |[-+]?0x[0-9a-fA-F_,]+ (?# base 16))$/x + INTEGER = /^(?:[-+]?0b[0-1_,]+ (?# base 2) + |[-+]?0[0-7_,]+ (?# base 8) + |[-+]?(?:0|[1-9]([0-9]|,[0-9]|_[0-9])*) (?# base 10) + |[-+]?0x[0-9a-fA-F_,]+ (?# base 16))$/x attr_reader :class_loader -- cgit v1.2.1 From 64cc239557d83058cde9af686900270fc173e105 Mon Sep 17 00:00:00 2001 From: opak Date: Tue, 1 Jun 2021 10:11:04 +0200 Subject: Update lib/psych/scalar_scanner.rb Co-authored-by: Olle Jonsson --- lib/psych/scalar_scanner.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/psych/scalar_scanner.rb b/lib/psych/scalar_scanner.rb index f9805a4..37e9313 100644 --- a/lib/psych/scalar_scanner.rb +++ b/lib/psych/scalar_scanner.rb @@ -16,7 +16,7 @@ module Psych # Taken from http://yaml.org/type/int.html INTEGER = /^(?:[-+]?0b[0-1_,]+ (?# base 2) |[-+]?0[0-7_,]+ (?# base 8) - |[-+]?(?:0|[1-9]([0-9]|,[0-9]|_[0-9])*) (?# base 10) + |[-+]?(?:0|[1-9](?:[0-9]|,[0-9]|_[0-9])*) (?# base 10) |[-+]?0x[0-9a-fA-F_,]+ (?# base 16))$/x attr_reader :class_loader -- cgit v1.2.1