lib/rouge/lexers/c.rb in rouge-1.10.1 vs lib/rouge/lexers/c.rb in rouge-1.11.0

- old
+ new

@@ -17,10 +17,13 @@ def self.keywords @keywords ||= Set.new %w( auto break case const continue default do else enum extern for goto if register restricted return sizeof static struct switch typedef union volatile virtual while + + _Alignas _Alignof _Atomic _Generic _Imaginary + _Noreturn _Static_assert _Thread_local ) end def self.keywords_type @keywords_type ||= Set.new %w( @@ -36,10 +39,12 @@ uint_least8_t uint_least16_t uint_least32_t uint_least64_t int_fast8_t int_fast16_t int_fast32_t int_fast64_t uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t intptr_t uintptr_t intmax_t uintmax_t + + char16_t char32_t ) end def self.reserved @reserved ||= Set.new %w( @@ -94,11 +99,11 @@ mixin :whitespace end state :statements do mixin :whitespace - rule /L?"/, Str, :string - rule %r(L?'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char + rule /(u8|u|U|L)?"/, Str, :string + rule %r((u8|u|U|L)?'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char rule %r((\d+[.]\d*|[.]?\d+)e[+-]?\d+[lu]*)i, Num::Float rule %r(\d+e[+-]?\d+[lu]*)i, Num::Float rule /0x[0-9a-f]+[lu]*/i, Num::Hex rule /0[0-7]+[lu]*/i, Num::Oct rule /\d+[lu]*/i, Num::Integer