This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*- #
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Rouge
|
||||
module Lexers
|
||||
class CMHG < RegexLexer
|
||||
title "CMHG"
|
||||
desc "RISC OS C module header generator source file"
|
||||
tag 'cmhg'
|
||||
filenames '*.cmhg'
|
||||
|
||||
def self.preproc_keyword
|
||||
@preproc_keyword ||= %w(
|
||||
define elif else endif error if ifdef ifndef include line pragma undef warning
|
||||
)
|
||||
end
|
||||
|
||||
state :root do
|
||||
rule %r/;[^\n]*/, Comment
|
||||
rule %r/^([ \t]*)(#[ \t]*(?:(?:#{CMHG.preproc_keyword.join('|')})(?:[ \t].*)?)?)(?=\n)/ do
|
||||
groups Text, Comment::Preproc
|
||||
end
|
||||
rule %r/[-a-z]+:/, Keyword::Declaration
|
||||
rule %r/[a-z_]\w+/i, Name::Entity
|
||||
rule %r/"[^"]*"/, Literal::String
|
||||
rule %r/(?:&|0x)\h+/, Literal::Number::Hex
|
||||
rule %r/\d+/, Literal::Number
|
||||
rule %r/[,\/()]/, Punctuation
|
||||
rule %r/[ \t]+/, Text
|
||||
rule %r/\n+/, Text
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user