Sha256: d4995de7e53f647d0462ec9b336eb4703d964c1f3353b594b5f50296fca7c3da

Contents?: true

Size: 1.73 KB

Versions: 4

Compression:

Stored size: 1.73 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 *%w(*.ttl *.trig)
      mimetypes *%w(
        text/turtle
        application/trig
      )

      state :root do
        rule /@base\b/, Keyword::Declaration
        rule /@prefix\b/, Keyword::Declaration
        rule /true\b/, Keyword::Constant
        rule /false\b/, Keyword::Constant

        rule /""".*?"""/m, Literal::String
        rule /"([^"\\]|\\.)*"/, Literal::String
        rule /'''.*?'''/m, Literal::String
        rule /'([^'\\]|\\.)*'/, Literal::String

        rule /#.*$/, Comment::Single

        rule /@[^\s,.; ]+/, Name::Attribute

        rule /[+-]?[0-9]+\.[0-9]*E[+-]?[0-9]+/, Literal::Number::Float
        rule /[+-]?\.[0-9]+E[+-]?[0-9]+/, Literal::Number::Float
        rule /[+-]?[0-9]+E[+-]?[0-9]+/, Literal::Number::Float

        rule /[+-]?[0-9]*\.[0-9]+?/, Literal::Number::Float

        rule /[+-]?[0-9]+/, Literal::Number::Integer

        rule /\./, Punctuation
        rule /,/, Punctuation
        rule /;/, Punctuation
        rule /\(/, Punctuation
        rule /\)/, Punctuation
        rule /\{/, Punctuation
        rule /\}/, Punctuation
        rule /\[/, Punctuation
        rule /\]/, Punctuation
        rule /\^\^/, Punctuation

        rule /<[^>]*>/, Name::Label

        rule /base\b/i, Keyword::Declaration
        rule /prefix\b/i, Keyword::Declaration
        rule /GRAPH\b/, Keyword
        rule /a\b/, Keyword

        rule /\s+/, Text::Whitespace

        rule /[^:;<>#\@"\(\).\[\]\{\} ]+:/, Name::Namespace
        rule /[^:;<>#\@"\(\).\[\]\{\} ]+/, Name
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
rouge-3.4.1 lib/rouge/lexers/turtle.rb
rouge-3.4.0 lib/rouge/lexers/turtle.rb
rouge-alda-3.3.0 lib/rouge/lexers/turtle.rb
rouge-3.3.0 lib/rouge/lexers/turtle.rb