lib/rouge/lexers/puppet.rb in rouge-0.4.0 vs lib/rouge/lexers/puppet.rb in rouge-0.5.0

- old
+ new

@@ -33,94 +33,94 @@ id = /[a-z]\w*/ cap_id = /[A-Z]\w*/ qualname = /(::)?(#{id}::)*\w+/ state :whitespace do - rule /\s+/m, 'Text' - rule /#.*?\n/, 'Comment' + rule /\s+/m, Text + rule /#.*?\n/, Comment end state :root do mixin :whitespace - rule /[$]#{qualname}/, 'Name.Variable' + rule /[$]#{qualname}/, Name::Variable rule /(#{id})(?=\s*[=+]>)/m do |m| if self.class.metaparameters.include? m[0] - token 'Keyword.Pseudo' + token Keyword::Pseudo else - token 'Name.Property' + token Name::Property end end - rule /(#{qualname})(?=\s*[(])/m, 'Name.Function' - rule cap_id, 'Name.Class' + rule /(#{qualname})(?=\s*[(])/m, Name::Function + rule cap_id, Name::Class - rule /[+=|~-]>|<[|~-]/, 'Punctuation' - rule /[:}();\[\]]/, 'Punctuation' + rule /[+=|~-]>|<[|~-]/, Punctuation + rule /[:}();\[\]]/, Punctuation # HACK for case statements and selectors - rule /{/, 'Punctuation', :regex_allowed - rule /,/, 'Punctuation', :regex_allowed + rule /{/, Punctuation, :regex_allowed + rule /,/, Punctuation, :regex_allowed - rule /(in|and|or)\b/, 'Operator.Word' - rule /[=!<>]=/, 'Operator' - rule /[=!]~/, 'Operator', :regex_allowed - rule %r([<>!+*/-]), 'Operator' + rule /(in|and|or)\b/, Operator::Word + rule /[=!<>]=/, Operator + rule /[=!]~/, Operator, :regex_allowed + rule %r([<>!+*/-]), Operator rule /(class|include)(\s*)(#{qualname})/ do - group 'Keyword'; group 'Text' - group 'Name.Class' + group Keyword; group Text + group Name::Class end - rule /node\b/, 'Keyword', :regex_allowed + rule /node\b/, Keyword, :regex_allowed - rule /'(\\[\\']|[^'])*'/m, 'Literal.String.Single' - rule /"/, 'Literal.String.Double', :dquotes + rule /'(\\[\\']|[^'])*'/m, Str::Single + rule /"/, Str::Double, :dquotes - rule /\d+([.]\d+)?(e[+-]\d+)?/, 'Literal.Number' + rule /\d+([.]\d+)?(e[+-]\d+)?/, Num # a valid regex. TODO: regexes are only allowed # in certain places in puppet. rule qualname do |m| if self.class.keywords.include? m[0] - token 'Keyword' + token Keyword elsif self.class.constants.include? m[0] - token 'Keyword.Constant' + token Keyword::Constant else - token 'Name' + token Name end end end state :regex_allowed do mixin :whitespace - rule %r(/), 'Literal.String.Regex', :regex + rule %r(/), Str::Regex, :regex rule(//) { pop! } end state :regex do - rule %r(/), 'Literal.String.Regex', :pop! - rule /\\./, 'Literal.String.Escape' - rule /[(){}]/, 'Literal.String.Interpol' - rule /\[/, 'Literal.String.Interpol', :regex_class - rule /./, 'Literal.String.Regex' + rule %r(/), Str::Regex, :pop! + rule /\\./, Str::Escape + rule /[(){}]/, Str::Interpol + rule /\[/, Str::Interpol, :regex_class + rule /./, Str::Regex end state :regex_class do - rule /\]/, 'Literal.String.Interpol', :pop! - rule /(?<!\[)-(?=\])/, 'Literal.String.Regex' - rule /-/, 'Literal.String.Interpol' - rule /\\./, 'Literal.String.Escape' - rule /[^\\\]-]+/, 'Literal.String.Regex' + rule /\]/, Str::Interpol, :pop! + rule /(?<!\[)-(?=\])/, Str::Regex + rule /-/, Str::Interpol + rule /\\./, Str::Escape + rule /[^\\\]-]+/, Str::Regex end state :dquotes do - rule /"/, 'Literal.String.Double', :pop! - rule /[^$\\"]+/m, 'Literal.String.Double' - rule /\\./m, 'Literal.String.Escape' - rule /[$]#{qualname}/, 'Name.Variable' - rule /[$][{]#{qualname}[}]/, 'Name.Variable' + rule /"/, Str::Double, :pop! + rule /[^$\\"]+/m, Str::Double + rule /\\./m, Str::Escape + rule /[$]#{qualname}/, Name::Variable + rule /[$][{]#{qualname}[}]/, Name::Variable end end end end