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