This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# -*- coding: utf-8 -*- #
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Rouge
|
||||
module Lexers
|
||||
class Turtle < RegexLexer
|
||||
title "Turtle/TriG"
|
||||
desc "Terse RDF Triple Language, TriG"
|
||||
tag 'turtle'
|
||||
filenames '*.ttl', '*.trig'
|
||||
mimetypes 'text/turtle', 'application/trig'
|
||||
|
||||
state :root do
|
||||
rule %r/@base\b/, Keyword::Declaration
|
||||
rule %r/@prefix\b/, Keyword::Declaration
|
||||
rule %r/true\b/, Keyword::Constant
|
||||
rule %r/false\b/, Keyword::Constant
|
||||
|
||||
rule %r/""".*?"""/m, Literal::String
|
||||
rule %r/"([^"\\]|\\.)*"/, Literal::String
|
||||
rule %r/'''.*?'''/m, Literal::String
|
||||
rule %r/'([^'\\]|\\.)*'/, Literal::String
|
||||
|
||||
rule %r/#.*$/, Comment::Single
|
||||
|
||||
rule %r/@[^\s,.;]+/, Name::Attribute
|
||||
|
||||
rule %r/[+-]?[0-9]+\.[0-9]*E[+-]?[0-9]+/, Literal::Number::Float
|
||||
rule %r/[+-]?\.[0-9]+E[+-]?[0-9]+/, Literal::Number::Float
|
||||
rule %r/[+-]?[0-9]+E[+-]?[0-9]+/, Literal::Number::Float
|
||||
|
||||
rule %r/[+-]?[0-9]*\.[0-9]+?/, Literal::Number::Float
|
||||
|
||||
rule %r/[+-]?[0-9]+/, Literal::Number::Integer
|
||||
|
||||
rule %r/\./, Punctuation
|
||||
rule %r/,/, Punctuation
|
||||
rule %r/;/, Punctuation
|
||||
rule %r/\(/, Punctuation
|
||||
rule %r/\)/, Punctuation
|
||||
rule %r/\{/, Punctuation
|
||||
rule %r/\}/, Punctuation
|
||||
rule %r/\[/, Punctuation
|
||||
rule %r/\]/, Punctuation
|
||||
rule %r/\^\^/, Punctuation
|
||||
|
||||
rule %r/<[^>]*>/, Name::Label
|
||||
|
||||
rule %r/base\b/i, Keyword::Declaration
|
||||
rule %r/prefix\b/i, Keyword::Declaration
|
||||
rule %r/GRAPH\b/, Keyword
|
||||
rule %r/a\b/, Keyword
|
||||
|
||||
rule %r/\s+/, Text::Whitespace
|
||||
|
||||
rule %r/[^:;<>#\@"\(\).\[\]\{\} ]*:/, Name::Namespace
|
||||
rule %r/[^:;<>#\@"\(\).\[\]\{\} ]+/, Name
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user