mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-09 05:58:15 +08:00
485 lines
11 KiB
JavaScript
485 lines
11 KiB
JavaScript
import {
|
|
__commonJS
|
|
} from "./chunk-2TUXWMP5.js";
|
|
|
|
// node_modules/highlight.js/lib/languages/perl.js
|
|
var require_perl = __commonJS({
|
|
"node_modules/highlight.js/lib/languages/perl.js"(exports, module) {
|
|
function source(re) {
|
|
if (!re) return null;
|
|
if (typeof re === "string") return re;
|
|
return re.source;
|
|
}
|
|
function concat(...args) {
|
|
const joined = args.map((x) => source(x)).join("");
|
|
return joined;
|
|
}
|
|
function either(...args) {
|
|
const joined = "(" + args.map((x) => source(x)).join("|") + ")";
|
|
return joined;
|
|
}
|
|
function perl(hljs) {
|
|
const KEYWORDS = [
|
|
"abs",
|
|
"accept",
|
|
"alarm",
|
|
"and",
|
|
"atan2",
|
|
"bind",
|
|
"binmode",
|
|
"bless",
|
|
"break",
|
|
"caller",
|
|
"chdir",
|
|
"chmod",
|
|
"chomp",
|
|
"chop",
|
|
"chown",
|
|
"chr",
|
|
"chroot",
|
|
"close",
|
|
"closedir",
|
|
"connect",
|
|
"continue",
|
|
"cos",
|
|
"crypt",
|
|
"dbmclose",
|
|
"dbmopen",
|
|
"defined",
|
|
"delete",
|
|
"die",
|
|
"do",
|
|
"dump",
|
|
"each",
|
|
"else",
|
|
"elsif",
|
|
"endgrent",
|
|
"endhostent",
|
|
"endnetent",
|
|
"endprotoent",
|
|
"endpwent",
|
|
"endservent",
|
|
"eof",
|
|
"eval",
|
|
"exec",
|
|
"exists",
|
|
"exit",
|
|
"exp",
|
|
"fcntl",
|
|
"fileno",
|
|
"flock",
|
|
"for",
|
|
"foreach",
|
|
"fork",
|
|
"format",
|
|
"formline",
|
|
"getc",
|
|
"getgrent",
|
|
"getgrgid",
|
|
"getgrnam",
|
|
"gethostbyaddr",
|
|
"gethostbyname",
|
|
"gethostent",
|
|
"getlogin",
|
|
"getnetbyaddr",
|
|
"getnetbyname",
|
|
"getnetent",
|
|
"getpeername",
|
|
"getpgrp",
|
|
"getpriority",
|
|
"getprotobyname",
|
|
"getprotobynumber",
|
|
"getprotoent",
|
|
"getpwent",
|
|
"getpwnam",
|
|
"getpwuid",
|
|
"getservbyname",
|
|
"getservbyport",
|
|
"getservent",
|
|
"getsockname",
|
|
"getsockopt",
|
|
"given",
|
|
"glob",
|
|
"gmtime",
|
|
"goto",
|
|
"grep",
|
|
"gt",
|
|
"hex",
|
|
"if",
|
|
"index",
|
|
"int",
|
|
"ioctl",
|
|
"join",
|
|
"keys",
|
|
"kill",
|
|
"last",
|
|
"lc",
|
|
"lcfirst",
|
|
"length",
|
|
"link",
|
|
"listen",
|
|
"local",
|
|
"localtime",
|
|
"log",
|
|
"lstat",
|
|
"lt",
|
|
"ma",
|
|
"map",
|
|
"mkdir",
|
|
"msgctl",
|
|
"msgget",
|
|
"msgrcv",
|
|
"msgsnd",
|
|
"my",
|
|
"ne",
|
|
"next",
|
|
"no",
|
|
"not",
|
|
"oct",
|
|
"open",
|
|
"opendir",
|
|
"or",
|
|
"ord",
|
|
"our",
|
|
"pack",
|
|
"package",
|
|
"pipe",
|
|
"pop",
|
|
"pos",
|
|
"print",
|
|
"printf",
|
|
"prototype",
|
|
"push",
|
|
"q|0",
|
|
"qq",
|
|
"quotemeta",
|
|
"qw",
|
|
"qx",
|
|
"rand",
|
|
"read",
|
|
"readdir",
|
|
"readline",
|
|
"readlink",
|
|
"readpipe",
|
|
"recv",
|
|
"redo",
|
|
"ref",
|
|
"rename",
|
|
"require",
|
|
"reset",
|
|
"return",
|
|
"reverse",
|
|
"rewinddir",
|
|
"rindex",
|
|
"rmdir",
|
|
"say",
|
|
"scalar",
|
|
"seek",
|
|
"seekdir",
|
|
"select",
|
|
"semctl",
|
|
"semget",
|
|
"semop",
|
|
"send",
|
|
"setgrent",
|
|
"sethostent",
|
|
"setnetent",
|
|
"setpgrp",
|
|
"setpriority",
|
|
"setprotoent",
|
|
"setpwent",
|
|
"setservent",
|
|
"setsockopt",
|
|
"shift",
|
|
"shmctl",
|
|
"shmget",
|
|
"shmread",
|
|
"shmwrite",
|
|
"shutdown",
|
|
"sin",
|
|
"sleep",
|
|
"socket",
|
|
"socketpair",
|
|
"sort",
|
|
"splice",
|
|
"split",
|
|
"sprintf",
|
|
"sqrt",
|
|
"srand",
|
|
"stat",
|
|
"state",
|
|
"study",
|
|
"sub",
|
|
"substr",
|
|
"symlink",
|
|
"syscall",
|
|
"sysopen",
|
|
"sysread",
|
|
"sysseek",
|
|
"system",
|
|
"syswrite",
|
|
"tell",
|
|
"telldir",
|
|
"tie",
|
|
"tied",
|
|
"time",
|
|
"times",
|
|
"tr",
|
|
"truncate",
|
|
"uc",
|
|
"ucfirst",
|
|
"umask",
|
|
"undef",
|
|
"unless",
|
|
"unlink",
|
|
"unpack",
|
|
"unshift",
|
|
"untie",
|
|
"until",
|
|
"use",
|
|
"utime",
|
|
"values",
|
|
"vec",
|
|
"wait",
|
|
"waitpid",
|
|
"wantarray",
|
|
"warn",
|
|
"when",
|
|
"while",
|
|
"write",
|
|
"x|0",
|
|
"xor",
|
|
"y|0"
|
|
];
|
|
const REGEX_MODIFIERS = /[dualxmsipngr]{0,12}/;
|
|
const PERL_KEYWORDS = {
|
|
$pattern: /[\w.]+/,
|
|
keyword: KEYWORDS.join(" ")
|
|
};
|
|
const SUBST = {
|
|
className: "subst",
|
|
begin: "[$@]\\{",
|
|
end: "\\}",
|
|
keywords: PERL_KEYWORDS
|
|
};
|
|
const METHOD = {
|
|
begin: /->\{/,
|
|
end: /\}/
|
|
// contains defined later
|
|
};
|
|
const VAR = {
|
|
variants: [
|
|
{
|
|
begin: /\$\d/
|
|
},
|
|
{
|
|
begin: concat(
|
|
/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,
|
|
// negative look-ahead tries to avoid matching patterns that are not
|
|
// Perl at all like $ident$, @ident@, etc.
|
|
`(?![A-Za-z])(?![@$%])`
|
|
)
|
|
},
|
|
{
|
|
begin: /[$%@][^\s\w{]/,
|
|
relevance: 0
|
|
}
|
|
]
|
|
};
|
|
const STRING_CONTAINS = [
|
|
hljs.BACKSLASH_ESCAPE,
|
|
SUBST,
|
|
VAR
|
|
];
|
|
const REGEX_DELIMS = [
|
|
/!/,
|
|
/\//,
|
|
/\|/,
|
|
/\?/,
|
|
/'/,
|
|
/"/,
|
|
// valid but infrequent and weird
|
|
/#/
|
|
// valid but infrequent and weird
|
|
];
|
|
const PAIRED_DOUBLE_RE = (prefix, open, close = "\\1") => {
|
|
const middle = close === "\\1" ? close : concat(close, open);
|
|
return concat(
|
|
concat("(?:", prefix, ")"),
|
|
open,
|
|
/(?:\\.|[^\\\/])*?/,
|
|
middle,
|
|
/(?:\\.|[^\\\/])*?/,
|
|
close,
|
|
REGEX_MODIFIERS
|
|
);
|
|
};
|
|
const PAIRED_RE = (prefix, open, close) => {
|
|
return concat(
|
|
concat("(?:", prefix, ")"),
|
|
open,
|
|
/(?:\\.|[^\\\/])*?/,
|
|
close,
|
|
REGEX_MODIFIERS
|
|
);
|
|
};
|
|
const PERL_DEFAULT_CONTAINS = [
|
|
VAR,
|
|
hljs.HASH_COMMENT_MODE,
|
|
hljs.COMMENT(
|
|
/^=\w/,
|
|
/=cut/,
|
|
{
|
|
endsWithParent: true
|
|
}
|
|
),
|
|
METHOD,
|
|
{
|
|
className: "string",
|
|
contains: STRING_CONTAINS,
|
|
variants: [
|
|
{
|
|
begin: "q[qwxr]?\\s*\\(",
|
|
end: "\\)",
|
|
relevance: 5
|
|
},
|
|
{
|
|
begin: "q[qwxr]?\\s*\\[",
|
|
end: "\\]",
|
|
relevance: 5
|
|
},
|
|
{
|
|
begin: "q[qwxr]?\\s*\\{",
|
|
end: "\\}",
|
|
relevance: 5
|
|
},
|
|
{
|
|
begin: "q[qwxr]?\\s*\\|",
|
|
end: "\\|",
|
|
relevance: 5
|
|
},
|
|
{
|
|
begin: "q[qwxr]?\\s*<",
|
|
end: ">",
|
|
relevance: 5
|
|
},
|
|
{
|
|
begin: "qw\\s+q",
|
|
end: "q",
|
|
relevance: 5
|
|
},
|
|
{
|
|
begin: "'",
|
|
end: "'",
|
|
contains: [hljs.BACKSLASH_ESCAPE]
|
|
},
|
|
{
|
|
begin: '"',
|
|
end: '"'
|
|
},
|
|
{
|
|
begin: "`",
|
|
end: "`",
|
|
contains: [hljs.BACKSLASH_ESCAPE]
|
|
},
|
|
{
|
|
begin: /\{\w+\}/,
|
|
relevance: 0
|
|
},
|
|
{
|
|
begin: "-?\\w+\\s*=>",
|
|
relevance: 0
|
|
}
|
|
]
|
|
},
|
|
{
|
|
className: "number",
|
|
begin: "(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
|
|
relevance: 0
|
|
},
|
|
{
|
|
// regexp container
|
|
begin: "(\\/\\/|" + hljs.RE_STARTERS_RE + "|\\b(split|return|print|reverse|grep)\\b)\\s*",
|
|
keywords: "split return print reverse grep",
|
|
relevance: 0,
|
|
contains: [
|
|
hljs.HASH_COMMENT_MODE,
|
|
{
|
|
className: "regexp",
|
|
variants: [
|
|
// allow matching common delimiters
|
|
{ begin: PAIRED_DOUBLE_RE("s|tr|y", either(...REGEX_DELIMS)) },
|
|
// and then paired delmis
|
|
{ begin: PAIRED_DOUBLE_RE("s|tr|y", "\\(", "\\)") },
|
|
{ begin: PAIRED_DOUBLE_RE("s|tr|y", "\\[", "\\]") },
|
|
{ begin: PAIRED_DOUBLE_RE("s|tr|y", "\\{", "\\}") }
|
|
],
|
|
relevance: 2
|
|
},
|
|
{
|
|
className: "regexp",
|
|
variants: [
|
|
{
|
|
// could be a comment in many languages so do not count
|
|
// as relevant
|
|
begin: /(m|qr)\/\//,
|
|
relevance: 0
|
|
},
|
|
// prefix is optional with /regex/
|
|
{ begin: PAIRED_RE("(?:m|qr)?", /\//, /\//) },
|
|
// allow matching common delimiters
|
|
{ begin: PAIRED_RE("m|qr", either(...REGEX_DELIMS), /\1/) },
|
|
// allow common paired delmins
|
|
{ begin: PAIRED_RE("m|qr", /\(/, /\)/) },
|
|
{ begin: PAIRED_RE("m|qr", /\[/, /\]/) },
|
|
{ begin: PAIRED_RE("m|qr", /\{/, /\}/) }
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
className: "function",
|
|
beginKeywords: "sub",
|
|
end: "(\\s*\\(.*?\\))?[;{]",
|
|
excludeEnd: true,
|
|
relevance: 5,
|
|
contains: [hljs.TITLE_MODE]
|
|
},
|
|
{
|
|
begin: "-\\w\\b",
|
|
relevance: 0
|
|
},
|
|
{
|
|
begin: "^__DATA__$",
|
|
end: "^__END__$",
|
|
subLanguage: "mojolicious",
|
|
contains: [
|
|
{
|
|
begin: "^@@.*",
|
|
end: "$",
|
|
className: "comment"
|
|
}
|
|
]
|
|
}
|
|
];
|
|
SUBST.contains = PERL_DEFAULT_CONTAINS;
|
|
METHOD.contains = PERL_DEFAULT_CONTAINS;
|
|
return {
|
|
name: "Perl",
|
|
aliases: [
|
|
"pl",
|
|
"pm"
|
|
],
|
|
keywords: PERL_KEYWORDS,
|
|
contains: PERL_DEFAULT_CONTAINS
|
|
};
|
|
}
|
|
module.exports = perl;
|
|
}
|
|
});
|
|
|
|
export {
|
|
require_perl
|
|
};
|
|
//# sourceMappingURL=chunk-EDM5WUHT.js.map
|