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

- old
+ new

@@ -33,64 +33,64 @@ end end state :root do # lua allows a file to start with a shebang - rule %r(#!(.*?)$), 'Comment.Preproc' - rule //, 'Text', :base + rule %r(#!(.*?)$), Comment::Preproc + rule //, Text, :base end state :base do - rule %r(--\[(=*)\[.*?\]\1\])ms, 'Comment.Multiline' - rule %r(--.*$), 'Comment.Single' + rule %r(--\[(=*)\[.*?\]\1\])ms, Comment::Multiline + rule %r(--.*$), Comment::Single - rule %r((?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?'), 'Literal.Number.Float' - rule %r((?i)\d+e[+-]?\d+), 'Literal.Number.Float' - rule %r((?i)0x[0-9a-f]*), 'Literal.Number.Hex' - rule %r(\d+), 'Literal.Number.Integer' + rule %r((?i)(\d*\.\d+|\d+\.\d*)(e[+-]?\d+)?'), Num::Float + rule %r((?i)\d+e[+-]?\d+), Num::Float + rule %r((?i)0x[0-9a-f]*), Num::Hex + rule %r(\d+), Num::Integer - rule %r(\n), 'Text' - rule %r([^\S\n]), 'Text' + rule %r(\n), Text + rule %r([^\S\n]), Text # multiline strings - rule %r(\[(=*)\[.*?\]\1\])ms, 'Literal.String' + rule %r(\[(=*)\[.*?\]\1\])ms, Str - rule %r((==|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#])), 'Operator' - rule %r([\[\]\{\}\(\)\.,:;]), 'Punctuation' - rule %r((and|or|not)\b), 'Operator.Word' + rule %r((==|~=|<=|>=|\.\.\.|\.\.|[=+\-*/%^<>#])), Operator + rule %r([\[\]\{\}\(\)\.,:;]), Punctuation + rule %r((and|or|not)\b), Operator::Word - rule %r((break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\b), 'Keyword' - rule %r((local)\b), 'Keyword.Declaration' - rule %r((true|false|nil)\b), 'Keyword.Constant' + rule %r((break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\b), Keyword + rule %r((local)\b), Keyword::Declaration + rule %r((true|false|nil)\b), Keyword::Constant - rule %r((function)\b), 'Keyword', :function_name + rule %r((function)\b), Keyword, :function_name rule %r([A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)?) do |m| name = m[0] if self.builtins.include?(name) - token 'Name.Builtin' + token Name::Builtin elsif name =~ /\./ a, b = name.split('.', 2) - token 'Name', a - token 'Punctuation', '.' - token 'Name', b + token Name, a + token Punctuation, '.' + token Name, b else - token 'Name' + token Name end end - rule %r('), 'Literal.String.Single', :escape_sqs - rule %r("), 'Literal.String.Double', :escape_dqs + rule %r('), Str::Single, :escape_sqs + rule %r("), Str::Double, :escape_dqs end state :function_name do - rule /\s+/, 'Text' + rule /\s+/, Text rule %r((?:([A-Za-z_][A-Za-z0-9_]*)(\.))?([A-Za-z_][A-Za-z0-9_]*)) do - group 'Name.Class'; group 'Punctuation'; group 'Name.Function' + group Name::Class; group Punctuation; group Name::Function pop! end # inline function - rule %r(\(), 'Punctuation', :pop! + rule %r(\(), Punctuation, :pop! end state :escape_sqs do mixin :string_escape mixin :sqs @@ -100,26 +100,26 @@ mixin :string_escape mixin :dqs end state :string_escape do - rule %r(\\([abfnrtv\\"']|\d{1,3})), 'Literal.String.Escape' + rule %r(\\([abfnrtv\\"']|\d{1,3})), Str::Escape end state :sqs do - rule %r('), 'Literal.String', :pop! + rule %r('), Str, :pop! mixin :string end state :dqs do - rule %r("), 'Literal.String', :pop! + rule %r("), Str, :pop! mixin :string end # Lua is 8-bit clean, every character is valid in a string state :string do - rule /./, 'Literal.String' + rule /./, Str end end end -end \ No newline at end of file +end