Sha256: 9df2b3eb95e0119cbb3e3b2e7d4f571d24bfa19733fcd1b83fb7083a621c1673

Contents?: true

Size: 1.77 KB

Versions: 16

Compression:

Stored size: 1.77 KB

Contents

# -*- 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

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rouge-3.18.0 lib/rouge/lexers/turtle.rb
rouge-3.17.0 lib/rouge/lexers/turtle.rb
rouge-3.16.0 lib/rouge/lexers/turtle.rb
rouge-3.15.0 lib/rouge/lexers/turtle.rb
rouge-3.14.0 lib/rouge/lexers/turtle.rb
rouge-3.13.0 lib/rouge/lexers/turtle.rb
rouge-3.12.0 lib/rouge/lexers/turtle.rb
rouge-3.11.1 lib/rouge/lexers/turtle.rb
rouge-3.11.0 lib/rouge/lexers/turtle.rb
rouge-3.10.0 lib/rouge/lexers/turtle.rb
rouge-3.9.0 lib/rouge/lexers/turtle.rb
rouge-3.8.0 lib/rouge/lexers/turtle.rb
rouge-3.7.0 lib/rouge/lexers/turtle.rb
rouge-3.6.0 lib/rouge/lexers/turtle.rb
rouge-3.5.1 lib/rouge/lexers/turtle.rb
rouge-3.5.0 lib/rouge/lexers/turtle.rb