aboutsummaryrefslogtreecommitdiff
path: root/node_modules/highlight.js/lib/languages/julia.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/highlight.js/lib/languages/julia.js')
-rw-r--r--node_modules/highlight.js/lib/languages/julia.js177
1 files changed, 177 insertions, 0 deletions
diff --git a/node_modules/highlight.js/lib/languages/julia.js b/node_modules/highlight.js/lib/languages/julia.js
new file mode 100644
index 000000000..ef3ef71d1
--- /dev/null
+++ b/node_modules/highlight.js/lib/languages/julia.js
@@ -0,0 +1,177 @@
+module.exports = function(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 (v0.3.0 and v0.4.1)
+ // itself through following scripts for each.
+
+ var KEYWORDS = {
+ // # keyword generator
+ // println("in")
+ // for kw in Base.REPLCompletions.complete_keyword("")
+ // println(kw)
+ // end
+ keyword:
+ 'in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export ' +
+ 'finally for function global if immutable import importall let local macro module quote return try type ' +
+ 'typealias using while',
+
+ // # literal generator
+ // println("true")
+ // println("false")
+ // for name in Base.REPLCompletions.completions("", 0)[1]
+ // try
+ // s = symbol(name)
+ // v = eval(s)
+ // if !isa(v, Function) &&
+ // !isa(v, DataType) &&
+ // !isa(v, IntrinsicFunction) &&
+ // !issubtype(typeof(v), Tuple) &&
+ // !isa(v, Union) &&
+ // !isa(v, Module) &&
+ // !isa(v, TypeConstructor) &&
+ // !isa(v, TypeVar) &&
+ // !isa(v, Colon)
+ // println(name)
+ // end
+ // end
+ // end
+ literal:
+ // v0.3
+ 'true false ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 ' +
+ 'InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort ' +
+ 'RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown ' +
+ 'RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 ' +
+ 'eulergamma golden im nothing pi γ π φ ' +
+ // v0.4 (diff)
+ 'Inf64 NaN64 RoundNearestTiesAway RoundNearestTiesUp ',
+
+ // # built_in generator:
+ // for name in Base.REPLCompletions.completions("", 0)[1]
+ // try
+ // v = eval(symbol(name))
+ // if isa(v, DataType) || isa(v, TypeConstructor) || isa(v, TypeVar)
+ // println(name)
+ // end
+ // end
+ // end
+ built_in:
+ // v0.3
+ 'ANY ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe ' +
+ 'Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char ' +
+ 'CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 ' +
+ 'Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType ' +
+ 'DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError ' +
+ 'EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 ' +
+ 'Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 ' +
+ 'InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError ' +
+ 'LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister ' +
+ 'Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange ' +
+ 'OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 ' +
+ 'Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set ' +
+ 'SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString ' +
+ 'SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular ' +
+ 'Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket ' +
+ 'Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange ' +
+ 'Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip ' +
+ // v0.4 (diff)
+ 'AbstractChannel AbstractFloat AbstractString AssertionError Base64DecodePipe Base64EncodePipe BufferStream ' +
+ 'CapturedException CartesianIndex CartesianRange Channel Cintmax_t CompositeException Cstring Cuintmax_t ' +
+ 'Cwstring Date DateTime Dims Enum GenSym GlobalRef HTML InitError InvalidStateException Irrational LinSpace ' +
+ 'LowerTriangular NullException Nullable OutOfMemoryError Pair PartialQuickSort Pipe RandomDevice ' +
+ 'ReadOnlyMemoryError ReentrantLock Ref RemoteException SegmentationFault SerializationState SimpleVector ' +
+ 'TCPSocket Text Tuple UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UnicodeError Union UpperTriangular ' +
+ 'Val Void WorkerConfig AbstractMatrix AbstractSparseMatrix AbstractSparseVector AbstractVecOrMat AbstractVector ' +
+ 'DenseMatrix DenseVecOrMat DenseVector Matrix SharedMatrix SharedVector StridedArray StridedMatrix ' +
+ 'StridedVecOrMat StridedVector VecOrMat Vector '
+ };
+
+ // ref: http://julia.readthedocs.org/en/latest/manual/variables/#allowed-variable-names
+ var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*';
+
+ // placeholder for recursive self-reference
+ var DEFAULT = { lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\// };
+
+ var TYPE_ANNOTATION = {
+ className: 'type',
+ begin: /::/
+ };
+
+ var SUBTYPE = {
+ className: 'type',
+ begin: /<:/
+ };
+
+ // ref: http://julia.readthedocs.org/en/latest/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.contains = [
+ NUMBER,
+ CHAR,
+ TYPE_ANNOTATION,
+ SUBTYPE,
+ STRING,
+ COMMAND,
+ MACROCALL,
+ COMMENT,
+ hljs.HASH_COMMENT_MODE
+ ];
+ INTERPOLATION.contains = DEFAULT.contains;
+
+ return DEFAULT;
+}; \ No newline at end of file