| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416 | 
							- /*
 
- Language: Julia
 
- Description: Julia is a high-level, high-performance, dynamic programming language.
 
- Author: Kenta Sato <bicycle1885@gmail.com>
 
- Contributors: Alex Arslan <ararslan@comcast.net>, Fredrik Ekre <ekrefredrik@gmail.com>
 
- Website: https://julialang.org
 
- */
 
- function julia(hljs) {
 
-   // Since there are numerous special names in Julia, it is too much trouble
 
-   // to maintain them by hand. Hence these names (i.e. keywords, literals and
 
-   // built-ins) are automatically generated from Julia 1.5.2 itself through
 
-   // the following scripts for each.
 
-   // ref: https://docs.julialang.org/en/v1/manual/variables/#Allowed-Variable-Names
 
-   var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*';
 
-   // # keyword generator, multi-word keywords handled manually below (Julia 1.5.2)
 
-   // import REPL.REPLCompletions
 
-   // res = String["in", "isa", "where"]
 
-   // for kw in collect(x.keyword for x in REPLCompletions.complete_keyword(""))
 
-   //     if !(contains(kw, " ") || kw == "struct")
 
-   //         push!(res, kw)
 
-   //     end
 
-   // end
 
-   // sort!(unique!(res))
 
-   // foreach(x -> println("\'", x, "\',"), res)
 
-   var KEYWORD_LIST = [
 
-     'baremodule',
 
-     'begin',
 
-     'break',
 
-     'catch',
 
-     'ccall',
 
-     'const',
 
-     'continue',
 
-     'do',
 
-     'else',
 
-     'elseif',
 
-     'end',
 
-     'export',
 
-     'false',
 
-     'finally',
 
-     'for',
 
-     'function',
 
-     'global',
 
-     'if',
 
-     'import',
 
-     'in',
 
-     'isa',
 
-     'let',
 
-     'local',
 
-     'macro',
 
-     'module',
 
-     'quote',
 
-     'return',
 
-     'true',
 
-     'try',
 
-     'using',
 
-     'where',
 
-     'while',
 
-   ];
 
-   // # literal generator (Julia 1.5.2)
 
-   // import REPL.REPLCompletions
 
-   // res = String["true", "false"]
 
-   // for compl in filter!(x -> isa(x, REPLCompletions.ModuleCompletion) && (x.parent === Base || x.parent === Core),
 
-   //                     REPLCompletions.completions("", 0)[1])
 
-   //     try
 
-   //         v = eval(Symbol(compl.mod))
 
-   //         if !(v isa Function || v isa Type || v isa TypeVar || v isa Module || v isa Colon)
 
-   //             push!(res, compl.mod)
 
-   //         end
 
-   //     catch e
 
-   //     end
 
-   // end
 
-   // sort!(unique!(res))
 
-   // foreach(x -> println("\'", x, "\',"), res)
 
-   var LITERAL_LIST = [
 
-     'ARGS',
 
-     'C_NULL',
 
-     'DEPOT_PATH',
 
-     'ENDIAN_BOM',
 
-     'ENV',
 
-     'Inf',
 
-     'Inf16',
 
-     'Inf32',
 
-     'Inf64',
 
-     'InsertionSort',
 
-     'LOAD_PATH',
 
-     'MergeSort',
 
-     'NaN',
 
-     'NaN16',
 
-     'NaN32',
 
-     'NaN64',
 
-     'PROGRAM_FILE',
 
-     'QuickSort',
 
-     'RoundDown',
 
-     'RoundFromZero',
 
-     'RoundNearest',
 
-     'RoundNearestTiesAway',
 
-     'RoundNearestTiesUp',
 
-     'RoundToZero',
 
-     'RoundUp',
 
-     'VERSION|0',
 
-     'devnull',
 
-     'false',
 
-     'im',
 
-     'missing',
 
-     'nothing',
 
-     'pi',
 
-     'stderr',
 
-     'stdin',
 
-     'stdout',
 
-     'true',
 
-     'undef',
 
-     'π',
 
-     'ℯ',
 
-   ];
 
-   // # built_in generator (Julia 1.5.2)
 
-   // import REPL.REPLCompletions
 
-   // res = String[]
 
-   // for compl in filter!(x -> isa(x, REPLCompletions.ModuleCompletion) && (x.parent === Base || x.parent === Core),
 
-   //                     REPLCompletions.completions("", 0)[1])
 
-   //     try
 
-   //         v = eval(Symbol(compl.mod))
 
-   //         if (v isa Type || v isa TypeVar) && (compl.mod != "=>")
 
-   //             push!(res, compl.mod)
 
-   //         end
 
-   //     catch e
 
-   //     end
 
-   // end
 
-   // sort!(unique!(res))
 
-   // foreach(x -> println("\'", x, "\',"), res)
 
-   var BUILT_IN_LIST = [
 
-     'AbstractArray',
 
-     'AbstractChannel',
 
-     'AbstractChar',
 
-     'AbstractDict',
 
-     'AbstractDisplay',
 
-     'AbstractFloat',
 
-     'AbstractIrrational',
 
-     'AbstractMatrix',
 
-     'AbstractRange',
 
-     'AbstractSet',
 
-     'AbstractString',
 
-     'AbstractUnitRange',
 
-     'AbstractVecOrMat',
 
-     'AbstractVector',
 
-     'Any',
 
-     'ArgumentError',
 
-     'Array',
 
-     'AssertionError',
 
-     'BigFloat',
 
-     'BigInt',
 
-     'BitArray',
 
-     'BitMatrix',
 
-     'BitSet',
 
-     'BitVector',
 
-     'Bool',
 
-     'BoundsError',
 
-     'CapturedException',
 
-     'CartesianIndex',
 
-     'CartesianIndices',
 
-     'Cchar',
 
-     'Cdouble',
 
-     'Cfloat',
 
-     'Channel',
 
-     'Char',
 
-     'Cint',
 
-     'Cintmax_t',
 
-     'Clong',
 
-     'Clonglong',
 
-     'Cmd',
 
-     'Colon',
 
-     'Complex',
 
-     'ComplexF16',
 
-     'ComplexF32',
 
-     'ComplexF64',
 
-     'CompositeException',
 
-     'Condition',
 
-     'Cptrdiff_t',
 
-     'Cshort',
 
-     'Csize_t',
 
-     'Cssize_t',
 
-     'Cstring',
 
-     'Cuchar',
 
-     'Cuint',
 
-     'Cuintmax_t',
 
-     'Culong',
 
-     'Culonglong',
 
-     'Cushort',
 
-     'Cvoid',
 
-     'Cwchar_t',
 
-     'Cwstring',
 
-     'DataType',
 
-     'DenseArray',
 
-     'DenseMatrix',
 
-     'DenseVecOrMat',
 
-     'DenseVector',
 
-     'Dict',
 
-     'DimensionMismatch',
 
-     'Dims',
 
-     'DivideError',
 
-     'DomainError',
 
-     'EOFError',
 
-     'Enum',
 
-     'ErrorException',
 
-     'Exception',
 
-     'ExponentialBackOff',
 
-     'Expr',
 
-     'Float16',
 
-     'Float32',
 
-     'Float64',
 
-     'Function',
 
-     'GlobalRef',
 
-     'HTML',
 
-     'IO',
 
-     'IOBuffer',
 
-     'IOContext',
 
-     'IOStream',
 
-     'IdDict',
 
-     'IndexCartesian',
 
-     'IndexLinear',
 
-     'IndexStyle',
 
-     'InexactError',
 
-     'InitError',
 
-     'Int',
 
-     'Int128',
 
-     'Int16',
 
-     'Int32',
 
-     'Int64',
 
-     'Int8',
 
-     'Integer',
 
-     'InterruptException',
 
-     'InvalidStateException',
 
-     'Irrational',
 
-     'KeyError',
 
-     'LinRange',
 
-     'LineNumberNode',
 
-     'LinearIndices',
 
-     'LoadError',
 
-     'MIME',
 
-     'Matrix',
 
-     'Method',
 
-     'MethodError',
 
-     'Missing',
 
-     'MissingException',
 
-     'Module',
 
-     'NTuple',
 
-     'NamedTuple',
 
-     'Nothing',
 
-     'Number',
 
-     'OrdinalRange',
 
-     'OutOfMemoryError',
 
-     'OverflowError',
 
-     'Pair',
 
-     'PartialQuickSort',
 
-     'PermutedDimsArray',
 
-     'Pipe',
 
-     'ProcessFailedException',
 
-     'Ptr',
 
-     'QuoteNode',
 
-     'Rational',
 
-     'RawFD',
 
-     'ReadOnlyMemoryError',
 
-     'Real',
 
-     'ReentrantLock',
 
-     'Ref',
 
-     'Regex',
 
-     'RegexMatch',
 
-     'RoundingMode',
 
-     'SegmentationFault',
 
-     'Set',
 
-     'Signed',
 
-     'Some',
 
-     'StackOverflowError',
 
-     'StepRange',
 
-     'StepRangeLen',
 
-     'StridedArray',
 
-     'StridedMatrix',
 
-     'StridedVecOrMat',
 
-     'StridedVector',
 
-     'String',
 
-     'StringIndexError',
 
-     'SubArray',
 
-     'SubString',
 
-     'SubstitutionString',
 
-     'Symbol',
 
-     'SystemError',
 
-     'Task',
 
-     'TaskFailedException',
 
-     'Text',
 
-     'TextDisplay',
 
-     'Timer',
 
-     'Tuple',
 
-     'Type',
 
-     'TypeError',
 
-     'TypeVar',
 
-     'UInt',
 
-     'UInt128',
 
-     'UInt16',
 
-     'UInt32',
 
-     'UInt64',
 
-     'UInt8',
 
-     'UndefInitializer',
 
-     'UndefKeywordError',
 
-     'UndefRefError',
 
-     'UndefVarError',
 
-     'Union',
 
-     'UnionAll',
 
-     'UnitRange',
 
-     'Unsigned',
 
-     'Val',
 
-     'Vararg',
 
-     'VecElement',
 
-     'VecOrMat',
 
-     'Vector',
 
-     'VersionNumber',
 
-     'WeakKeyDict',
 
-     'WeakRef',
 
-   ];
 
-   var KEYWORDS = {
 
-     $pattern: VARIABLE_NAME_RE,
 
-     keyword: KEYWORD_LIST,
 
-     literal: LITERAL_LIST,
 
-     built_in: BUILT_IN_LIST,
 
-   };
 
-   // placeholder for recursive self-reference
 
-   var DEFAULT = {
 
-     keywords: KEYWORDS, illegal: /<\//
 
-   };
 
-   // ref: https://docs.julialang.org/en/v1/manual/integers-and-floating-point-numbers/
 
-   var NUMBER = {
 
-     className: 'number',
 
-     // supported numeric literals:
 
-     //  * binary literal (e.g. 0x10)
 
-     //  * octal literal (e.g. 0o76543210)
 
-     //  * hexadecimal literal (e.g. 0xfedcba876543210)
 
-     //  * hexadecimal floating point literal (e.g. 0x1p0, 0x1.2p2)
 
-     //  * decimal literal (e.g. 9876543210, 100_000_000)
 
-     //  * floating pointe literal (e.g. 1.2, 1.2f, .2, 1., 1.2e10, 1.2e-10)
 
-     begin: /(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,
 
-     relevance: 0
 
-   };
 
-   var CHAR = {
 
-     className: 'string',
 
-     begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
 
-   };
 
-   var INTERPOLATION = {
 
-     className: 'subst',
 
-     begin: /\$\(/, end: /\)/,
 
-     keywords: KEYWORDS
 
-   };
 
-   var INTERPOLATED_VARIABLE = {
 
-     className: 'variable',
 
-     begin: '\\$' + VARIABLE_NAME_RE
 
-   };
 
-   // TODO: neatly escape normal code in string literal
 
-   var STRING = {
 
-     className: 'string',
 
-     contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
 
-     variants: [
 
-       { begin: /\w*"""/, end: /"""\w*/, relevance: 10 },
 
-       { begin: /\w*"/, end: /"\w*/ }
 
-     ]
 
-   };
 
-   var COMMAND = {
 
-     className: 'string',
 
-     contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
 
-     begin: '`', end: '`'
 
-   };
 
-   var MACROCALL = {
 
-     className: 'meta',
 
-     begin: '@' + VARIABLE_NAME_RE
 
-   };
 
-   var COMMENT = {
 
-     className: 'comment',
 
-     variants: [
 
-       { begin: '#=', end: '=#', relevance: 10 },
 
-       { begin: '#', end: '$' }
 
-     ]
 
-   };
 
-   DEFAULT.name = 'Julia';
 
-   DEFAULT.contains = [
 
-     NUMBER,
 
-     CHAR,
 
-     STRING,
 
-     COMMAND,
 
-     MACROCALL,
 
-     COMMENT,
 
-     hljs.HASH_COMMENT_MODE,
 
-     {
 
-       className: 'keyword',
 
-       begin:
 
-         '\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b'
 
-     },
 
-     {begin: /<:/}  // relevance booster
 
-   ];
 
-   INTERPOLATION.contains = DEFAULT.contains;
 
-   return DEFAULT;
 
- }
 
- module.exports = julia;
 
 
  |