lib/rouge/lexers/cpp.rb in rouge-1.3.1 vs lib/rouge/lexers/cpp.rb in rouge-1.3.2

- old
+ new

@@ -1,8 +1,8 @@ module Rouge module Lexers - Lexer.load_const :C, 'c.rb' + load_const :C, 'c.rb' class Cpp < C desc "The C++ programming language" tag 'cpp' @@ -35,11 +35,20 @@ prepend :root do # Offload C++ extensions, http://offload.codeplay.com/ rule /(?:__offload|__blockingoffload|__outer)\b/, Keyword::Pseudo end + # digits with optional inner quotes + # see www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf + dq = /\d('?\d)*/ + prepend :statements do rule /class\b/, Keyword, :classname + rule %r((#{dq}[.]#{dq}?|[.]#{dq})(e[+-]?#{dq}[lu]*)?)i, Num::Float + rule %r(#{dq}e[+-]?#{dq}[lu]*)i, Num::Float + rule /0x\h('?\h)*[lu]*/i, Num::Hex + rule /0[0-7]('?[0-7])*[lu]*/i, Num::Oct + rule /#{dq}[lu]*/i, Num::Integer end state :classname do rule id, Name::Class, :pop!