import {
  a as s,
  c as l
} from "./chunk-IO47FP3U.js";

// ../node_modules/highlight.js/lib/languages/angelscript.js
var r = l((o, t) => {
  function c(e) {
    var n = {
      className: "built_in",
      begin: "\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)"
    }, a = {
      className: "symbol",
      begin: "[a-zA-Z0-9_]+@"
    }, i = {
      className: "keyword",
      begin: "<",
      end: ">",
      contains: [n, a]
    };
    return n.contains = [i], a.contains = [i], {
      name: "AngelScript",
      aliases: ["asc"],
      keywords: "for in|0 break continue while do|0 return if else case switch namespace is cast or and xor not get|0 in inout|10 out override set|0 private public const default|0 final shared external mixin|10 enum typedef funcdef this super import from interface abstract|0 try catch protected explicit property",
      // avoid close detection with C# and JS
      illegal: "(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",
      contains: [
        {
          // 'strings'
          className: "string",
          begin: "'",
          end: "'",
          illegal: "\\n",
          contains: [e.BACKSLASH_ESCAPE],
          relevance: 0
        },
        // """heredoc strings"""
        {
          className: "string",
          begin: '"""',
          end: '"""'
        },
        {
          // "strings"
          className: "string",
          begin: '"',
          end: '"',
          illegal: "\\n",
          contains: [e.BACKSLASH_ESCAPE],
          relevance: 0
        },
        e.C_LINE_COMMENT_MODE,
        // single-line comments
        e.C_BLOCK_COMMENT_MODE,
        // comment blocks
        {
          // metadata
          className: "string",
          begin: "^\\s*\\[",
          end: "\\]"
        },
        {
          // interface or namespace declaration
          beginKeywords: "interface namespace",
          end: /\{/,
          illegal: "[;.\\-]",
          contains: [
            {
              // interface or namespace name
              className: "symbol",
              begin: "[a-zA-Z0-9_]+"
            }
          ]
        },
        {
          // class declaration
          beginKeywords: "class",
          end: /\{/,
          illegal: "[;.\\-]",
          contains: [
            {
              // class name
              className: "symbol",
              begin: "[a-zA-Z0-9_]+",
              contains: [
                {
                  begin: "[:,]\\s*",
                  contains: [
                    {
                      className: "symbol",
                      begin: "[a-zA-Z0-9_]+"
                    }
                  ]
                }
              ]
            }
          ]
        },
        n,
        // built-in types
        a,
        // object handles
        {
          // literals
          className: "literal",
          begin: "\\b(null|true|false)"
        },
        {
          // numbers
          className: "number",
          relevance: 0,
          begin: "(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"
        }
      ]
    };
  }
  s(c, "angelscript");
  t.exports = c;
});

export {
  r as a
};
