This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# -*- coding: utf-8 -*- #
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Rouge
|
||||
module Lexers
|
||||
class CSVS < RegexLexer
|
||||
tag 'csvs'
|
||||
title "csvs"
|
||||
desc 'The CSV Schema Language (digital-preservation.github.io)'
|
||||
filenames '*.csvs'
|
||||
|
||||
state :root do
|
||||
rule %r/\s+/m, Text
|
||||
|
||||
rule %r(//[\S\t ]*), Comment::Single
|
||||
rule %r(/\*[^*]*\*/)m, Comment::Multiline
|
||||
|
||||
rule %r/(version)( )(\d+\.\d+)/ do
|
||||
groups Keyword, Text::Whitespace, Num::Float
|
||||
end
|
||||
|
||||
rule %r/T?\d{2}:\d{2}:\d{2}(\.\d{5})?(Z|(?:[-+]\d{2}:\d{2}))?/, Literal::Date
|
||||
rule %r/\d{4}-\d{2}-\d{2}/, Literal::Date
|
||||
rule %r/\d{2}\/\d{2}\/\d{4}/, Literal::Date
|
||||
|
||||
rule %r((\d+[.]?\d*|\d*[.]\d+)(e[+-]?[0-9]+)?)i, Num::Float
|
||||
rule %r/\d+/, Num::Integer
|
||||
|
||||
rule %r/@\w+/, Keyword::Pseudo
|
||||
|
||||
rule %r/[-.\w]+:/, Name::Variable
|
||||
rule %r/^"[^"]+"/, Name::Variable
|
||||
rule %r/\$([-.\w]+|("[^"]+"))\/?/, Name::Variable
|
||||
|
||||
rule %r/[A-Z]+/i, Keyword
|
||||
|
||||
rule %r/"[^"]*"/, Str::Double
|
||||
rule %r/'[^\r\n\f']'/, Str::Char
|
||||
|
||||
rule %r/[,()*]/, Punctuation
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user