crystal top-level property

Language crystal
final

Implementation

final crystal = Language(
  id: "crystal",
  refs: {
    '~contains~0~contains~0~variants~6~contains~0': Mode(
      begin: "<",
      end: ">",
      contains: [
        ModeReference('~contains~0~contains~0~variants~6~contains~0'),
      ],
    ),
    '~contains~0~contains~0~variants~5~contains~0': Mode(
      begin: "\\{",
      end: "\\}",
      contains: [
        ModeReference('~contains~0~contains~0~variants~5~contains~0'),
      ],
    ),
    '~contains~0~contains~0~variants~4~contains~0': Mode(
      begin: "\\[",
      end: "\\]",
      contains: [
        ModeReference('~contains~0~contains~0~variants~4~contains~0'),
      ],
    ),
    '~contains~0~contains~0~variants~3~contains~0': Mode(
      begin: "\\(",
      end: "\\)",
      contains: [
        ModeReference('~contains~0~contains~0~variants~3~contains~0'),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~9': Mode(
      className: "class",
      beginKeywords: "lib enum union",
      end: "\$|;",
      illegal: "=",
      contains: [
        HASH_COMMENT_MODE,
        Mode(
          scope: "title",
          begin: "[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",
          relevance: 0,
        ),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~8': Mode(
      className: "class",
      beginKeywords: "class module struct",
      end: "\$|;",
      illegal: "=",
      contains: [
        HASH_COMMENT_MODE,
        Mode(
          scope: "title",
          begin: "[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",
          relevance: 0,
        ),
        Mode(
          begin: "<",
        ),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~6': Mode(
      className: "variable",
      begin: "(\\\$\\W)|((\\\$|@@?)(\\w+))(?=[^@\$?])(?![A-Za-z])(?![@\$?'])",
    ),
    '~contains~0~contains~0~contains~1~contains~5': Mode(
      className: "meta",
      begin: "@\\[",
      end: "\\]",
      contains: [
        Mode(
          scope: "string",
          begin: "\"",
          end: "\"",
          illegal: "\\n",
          contains: [
            BACKSLASH_ESCAPE,
          ],
          className: "string",
        ),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~4': Mode(
      begin:
          "(?!%\\})(!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||\\x7e|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*",
      keywords: "case if select unless until when while",
      contains: [
        Mode(
          className: "regexp",
          contains: [
            BACKSLASH_ESCAPE,
            ModeReference('~contains~0~contains~0~contains~1'),
          ],
          variants: [
            Mode(
              begin: "//[a-z]*",
              relevance: 0,
            ),
            Mode(
              begin: "/(?!\\/)",
              end: "/[a-z]*",
            ),
          ],
        ),
      ],
      relevance: 0,
    ),
    '~contains~0~contains~0~contains~1~contains~3~variants~3~contains~0': Mode(
      begin: "<",
      end: ">",
      contains: [
        ModeReference(
            '~contains~0~contains~0~contains~1~contains~3~variants~3~contains~0'),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~3~variants~2~contains~0': Mode(
      begin: "\\{",
      end: "\\}",
      contains: [
        ModeReference(
            '~contains~0~contains~0~contains~1~contains~3~variants~2~contains~0'),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~3~variants~1~contains~0': Mode(
      begin: "\\[",
      end: "\\]",
      contains: [
        ModeReference(
            '~contains~0~contains~0~contains~1~contains~3~variants~1~contains~0'),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~3~variants~0~contains~0': Mode(
      begin: "\\(",
      end: "\\)",
      contains: [
        ModeReference(
            '~contains~0~contains~0~contains~1~contains~3~variants~0~contains~0'),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~3': Mode(
      className: "regexp",
      contains: [
        BACKSLASH_ESCAPE,
        ModeReference('~contains~0~contains~0~contains~1'),
      ],
      variants: [
        Mode(
          begin: "%r\\(",
          end: "\\)",
          contains: [
            ModeReference(
                '~contains~0~contains~0~contains~1~contains~3~variants~0~contains~0'),
          ],
        ),
        Mode(
          begin: "%r\\[",
          end: "\\]",
          contains: [
            ModeReference(
                '~contains~0~contains~0~contains~1~contains~3~variants~1~contains~0'),
          ],
        ),
        Mode(
          begin: "%r\\{",
          end: "\\}",
          contains: [
            ModeReference(
                '~contains~0~contains~0~contains~1~contains~3~variants~2~contains~0'),
          ],
        ),
        Mode(
          begin: "%r<",
          end: ">",
          contains: [
            ModeReference(
                '~contains~0~contains~0~contains~1~contains~3~variants~3~contains~0'),
          ],
        ),
        Mode(
          begin: "%r\\|",
          end: "\\|",
        ),
      ],
      relevance: 0,
    ),
    '~contains~0~contains~0~contains~1~contains~2~variants~3~contains~0': Mode(
      begin: "<",
      end: ">",
      contains: [
        ModeReference(
            '~contains~0~contains~0~contains~1~contains~2~variants~3~contains~0'),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~2~variants~2~contains~0': Mode(
      begin: "\\{",
      end: "\\}",
      contains: [
        ModeReference(
            '~contains~0~contains~0~contains~1~contains~2~variants~2~contains~0'),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~2~variants~1~contains~0': Mode(
      begin: "\\[",
      end: "\\]",
      contains: [
        ModeReference(
            '~contains~0~contains~0~contains~1~contains~2~variants~1~contains~0'),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~2~variants~0~contains~0': Mode(
      begin: "\\(",
      end: "\\)",
      contains: [
        ModeReference(
            '~contains~0~contains~0~contains~1~contains~2~variants~0~contains~0'),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~2': Mode(
      className: "string",
      variants: [
        Mode(
          begin: "%q\\(",
          end: "\\)",
          contains: [
            ModeReference(
                '~contains~0~contains~0~contains~1~contains~2~variants~0~contains~0'),
          ],
        ),
        Mode(
          begin: "%q\\[",
          end: "\\]",
          contains: [
            ModeReference(
                '~contains~0~contains~0~contains~1~contains~2~variants~1~contains~0'),
          ],
        ),
        Mode(
          begin: "%q\\{",
          end: "\\}",
          contains: [
            ModeReference(
                '~contains~0~contains~0~contains~1~contains~2~variants~2~contains~0'),
          ],
        ),
        Mode(
          begin: "%q<",
          end: ">",
          contains: [
            ModeReference(
                '~contains~0~contains~0~contains~1~contains~2~variants~3~contains~0'),
          ],
        ),
        Mode(
          begin: "%q\\|",
          end: "\\|",
        ),
        Mode(
          begin: "<<-'\\w+'\$",
          end: "^\\s*\\w+\$",
        ),
      ],
      relevance: 0,
    ),
    '~contains~0~contains~0~contains~1~contains~15': Mode(
      className: "number",
      variants: [
        Mode(
          begin: "\\b0b([01_]+)(_?[ui](8|16|32|64|128))?",
        ),
        Mode(
          begin: "\\b0o([0-7_]+)(_?[ui](8|16|32|64|128))?",
        ),
        Mode(
          begin: "\\b0x([A-Fa-f0-9_]+)(_?[ui](8|16|32|64|128))?",
        ),
        Mode(
          begin:
              "\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_?[-+]?[0-9_]*)?(_?f(32|64))?(?!_)",
        ),
        Mode(
          begin: "\\b([1-9][0-9_]*|0)(_?[ui](8|16|32|64|128))?",
        ),
      ],
      relevance: 0,
    ),
    '~contains~0~contains~0~contains~1~contains~14': Mode(
      className: "symbol",
      begin: ":",
      contains: [
        ModeReference('~contains~0~contains~0'),
        Mode(
          begin:
              "[a-zA-Z_]\\w*[!?=]?|[-+\\x7e]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",
        ),
      ],
      relevance: 0,
    ),
    '~contains~0~contains~0~contains~1~contains~13': Mode(
      className: "symbol",
      begin: "[a-zA-Z_]\\w*(!|\\?)?:",
      relevance: 0,
    ),
    '~contains~0~contains~0~contains~1~contains~12': Mode(
      className: "function",
      beginKeywords: "fun macro",
      end: "\\B\\b",
      contains: [
        Mode(
          scope: "title",
          begin:
              "[a-zA-Z_]\\w*[!?=]?|[-+\\x7e]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",
          relevance: 0,
          endsParent: true,
        ),
      ],
      relevance: 2,
    ),
    '~contains~0~contains~0~contains~1~contains~11': Mode(
      className: "function",
      beginKeywords: "def",
      end: "\\B\\b",
      contains: [
        Mode(
          scope: "title",
          begin:
              "[a-zA-Z_]\\w*[!?=]?|[-+\\x7e]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",
          relevance: 0,
          endsParent: true,
        ),
      ],
    ),
    '~contains~0~contains~0~contains~1~contains~10': Mode(
      beginKeywords: "annotation",
      end: "\$|;",
      illegal: "=",
      contains: [
        HASH_COMMENT_MODE,
        Mode(
          scope: "title",
          begin: "[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",
          relevance: 0,
        ),
      ],
      relevance: 2,
    ),
    '~contains~0~contains~0~contains~1': Mode(
      className: "subst",
      begin: "#\\{",
      end: "\\}",
      keywords: {
        "\$pattern": "[a-zA-Z_]\\w*[!?=]?",
        "keyword":
            "abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",
        "literal": "false nil true"
      },
      contains: [
        ModeReference('~contains~0'),
        ModeReference('~contains~0~contains~0'),
        ModeReference('~contains~0~contains~0~contains~1~contains~2'),
        ModeReference('~contains~0~contains~0~contains~1~contains~3'),
        ModeReference('~contains~0~contains~0~contains~1~contains~4'),
        ModeReference('~contains~0~contains~0~contains~1~contains~5'),
        ModeReference('~contains~0~contains~0~contains~1~contains~6'),
        HASH_COMMENT_MODE,
        ModeReference('~contains~0~contains~0~contains~1~contains~8'),
        ModeReference('~contains~0~contains~0~contains~1~contains~9'),
        ModeReference('~contains~0~contains~0~contains~1~contains~10'),
        ModeReference('~contains~0~contains~0~contains~1~contains~11'),
        ModeReference('~contains~0~contains~0~contains~1~contains~12'),
        ModeReference('~contains~0~contains~0~contains~1~contains~13'),
        ModeReference('~contains~0~contains~0~contains~1~contains~14'),
        ModeReference('~contains~0~contains~0~contains~1~contains~15'),
      ],
    ),
    '~contains~0~contains~0': Mode(
      className: "string",
      contains: [
        BACKSLASH_ESCAPE,
        ModeReference('~contains~0~contains~0~contains~1'),
      ],
      variants: [
        Mode(
          begin: "'",
          end: "'",
        ),
        Mode(
          begin: "\"",
          end: "\"",
        ),
        Mode(
          begin: "`",
          end: "`",
        ),
        Mode(
          begin: "%[Qwi]?\\(",
          end: "\\)",
          contains: [
            ModeReference('~contains~0~contains~0~variants~3~contains~0'),
          ],
        ),
        Mode(
          begin: "%[Qwi]?\\[",
          end: "\\]",
          contains: [
            ModeReference('~contains~0~contains~0~variants~4~contains~0'),
          ],
        ),
        Mode(
          begin: "%[Qwi]?\\{",
          end: "\\}",
          contains: [
            ModeReference('~contains~0~contains~0~variants~5~contains~0'),
          ],
        ),
        Mode(
          begin: "%[Qwi]?<",
          end: ">",
          contains: [
            ModeReference('~contains~0~contains~0~variants~6~contains~0'),
          ],
        ),
        Mode(
          begin: "%[Qwi]?\\|",
          end: "\\|",
        ),
        Mode(
          begin: "<<-\\w+\$",
          end: "^\\s*\\w+\$",
        ),
      ],
      relevance: 0,
    ),
    '~contains~0': Mode(
      className: "template-variable",
      variants: [
        Mode(
          begin: "\\{\\{",
          end: "\\}\\}",
        ),
        Mode(
          begin: "\\{%",
          end: "%\\}",
        ),
      ],
      keywords: {
        "\$pattern": "[a-zA-Z_]\\w*[!?=]?",
        "keyword":
            "abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",
        "literal": "false nil true"
      },
      contains: [
        ModeReference('~contains~0~contains~0'),
        ModeReference('~contains~0~contains~0~contains~1~contains~2'),
        ModeReference('~contains~0~contains~0~contains~1~contains~3'),
        ModeReference('~contains~0~contains~0~contains~1~contains~4'),
        ModeReference('~contains~0~contains~0~contains~1~contains~5'),
        ModeReference('~contains~0~contains~0~contains~1~contains~6'),
        HASH_COMMENT_MODE,
        ModeReference('~contains~0~contains~0~contains~1~contains~8'),
        ModeReference('~contains~0~contains~0~contains~1~contains~9'),
        ModeReference('~contains~0~contains~0~contains~1~contains~10'),
        ModeReference('~contains~0~contains~0~contains~1~contains~11'),
        ModeReference('~contains~0~contains~0~contains~1~contains~12'),
        ModeReference('~contains~0~contains~0~contains~1~contains~13'),
        ModeReference('~contains~0~contains~0~contains~1~contains~14'),
        ModeReference('~contains~0~contains~0~contains~1~contains~15'),
      ],
    ),
  },
  name: "Crystal",
  aliases: ["cr"],
  keywords: {
    "\$pattern": "[a-zA-Z_]\\w*[!?=]?",
    "keyword":
        "abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",
    "literal": "false nil true"
  },
  contains: [
    ModeReference('~contains~0'),
    ModeReference('~contains~0~contains~0'),
    ModeReference('~contains~0~contains~0~contains~1~contains~2'),
    ModeReference('~contains~0~contains~0~contains~1~contains~3'),
    ModeReference('~contains~0~contains~0~contains~1~contains~4'),
    ModeReference('~contains~0~contains~0~contains~1~contains~5'),
    ModeReference('~contains~0~contains~0~contains~1~contains~6'),
    HASH_COMMENT_MODE,
    ModeReference('~contains~0~contains~0~contains~1~contains~8'),
    ModeReference('~contains~0~contains~0~contains~1~contains~9'),
    ModeReference('~contains~0~contains~0~contains~1~contains~10'),
    ModeReference('~contains~0~contains~0~contains~1~contains~11'),
    ModeReference('~contains~0~contains~0~contains~1~contains~12'),
    ModeReference('~contains~0~contains~0~contains~1~contains~13'),
    ModeReference('~contains~0~contains~0~contains~1~contains~14'),
    ModeReference('~contains~0~contains~0~contains~1~contains~15'),
  ],
);