diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 11:33:32 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 11:33:32 +0000 |
commit | 1f403ad2197fc7442409f434ee574f3e6b46fb73 (patch) | |
tree | 0299c6dd11d5edfa918a29b6456bc1875f1d288c /tests/snippets/julia | |
parent | Initial commit. (diff) | |
download | pygments-1f403ad2197fc7442409f434ee574f3e6b46fb73.tar.xz pygments-1f403ad2197fc7442409f434ee574f3e6b46fb73.zip |
Adding upstream version 2.14.0+dfsg.upstream/2.14.0+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/snippets/julia')
-rw-r--r-- | tests/snippets/julia/test_keywords.txt | 101 | ||||
-rw-r--r-- | tests/snippets/julia/test_macros.txt | 56 | ||||
-rw-r--r-- | tests/snippets/julia/test_names.txt | 148 | ||||
-rw-r--r-- | tests/snippets/julia/test_numbers.txt | 261 | ||||
-rw-r--r-- | tests/snippets/julia/test_operators.txt | 172 | ||||
-rw-r--r-- | tests/snippets/julia/test_strings.txt | 225 | ||||
-rw-r--r-- | tests/snippets/julia/test_symbols.txt | 78 | ||||
-rw-r--r-- | tests/snippets/julia/test_types.txt | 196 | ||||
-rw-r--r-- | tests/snippets/julia/test_unicode.txt | 37 |
9 files changed, 1274 insertions, 0 deletions
diff --git a/tests/snippets/julia/test_keywords.txt b/tests/snippets/julia/test_keywords.txt new file mode 100644 index 0000000..10166d6 --- /dev/null +++ b/tests/snippets/julia/test_keywords.txt @@ -0,0 +1,101 @@ +# Test keywords are identified + +---input--- +mutable struct MutableType end +struct ImmutableType end +abstract type AbstractMyType end +primitive type MyPrimitive 32 end +(abstract, mutable, type) = true, π, missing + +abstract type AbstractMyType end +primitive type MyPrimitive 32 end +mutable struct MutableType end + +---tokens--- +'mutable' Keyword +' ' Text.Whitespace +'struct' Keyword +' ' Text +'MutableType' Keyword.Type +' ' Text.Whitespace +'end' Keyword +'\n' Text.Whitespace + +'struct' Keyword +' ' Text +'ImmutableType' Keyword.Type +' ' Text.Whitespace +'end' Keyword +'\n' Text.Whitespace + +'abstract' Keyword +' ' Text.Whitespace +'type' Keyword +' ' Text +'AbstractMyType' Keyword.Type +' ' Text.Whitespace +'end' Keyword +'\n' Text.Whitespace + +'primitive' Keyword +' ' Text.Whitespace +'type' Keyword +' ' Text +'MyPrimitive' Keyword.Type +' ' Text.Whitespace +'32' Literal.Number.Integer +' ' Text.Whitespace +'end' Keyword +'\n' Text.Whitespace + +'(' Punctuation +'abstract' Name +',' Punctuation +' ' Text.Whitespace +'mutable' Name +',' Punctuation +' ' Text.Whitespace +'type' Name +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'true' Name.Builtin +',' Punctuation +' ' Text.Whitespace +'π' Name.Builtin +',' Punctuation +' ' Text.Whitespace +'missing' Name.Builtin +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'abstract' Keyword +' ' Text.Whitespace +'type' Keyword +' ' Text +'AbstractMyType' Keyword.Type +' ' Text.Whitespace +'end' Keyword +'\n' Text.Whitespace + +'primitive' Keyword +' \t' Text.Whitespace +'type' Keyword +' ' Text +'MyPrimitive' Keyword.Type +' ' Text.Whitespace +'32' Literal.Number.Integer +' ' Text.Whitespace +'end' Keyword +'\n' Text.Whitespace + +'mutable' Keyword +' ' Text.Whitespace +'struct' Keyword +' ' Text +'MutableType' Keyword.Type +' ' Text.Whitespace +'end' Keyword +'\n' Text.Whitespace diff --git a/tests/snippets/julia/test_macros.txt b/tests/snippets/julia/test_macros.txt new file mode 100644 index 0000000..43d67e0 --- /dev/null +++ b/tests/snippets/julia/test_macros.txt @@ -0,0 +1,56 @@ +# Test that macros are parsed, including ones which are defined as symbols + +---input--- +@generated function +@. a + b +@~ a + b +@± a + b +@mymacro(a, b) +@+¹ᵀ a + +---tokens--- +'@generated' Name.Decorator +' ' Text.Whitespace +'function' Keyword +'\n' Text.Whitespace + +'@.' Name.Decorator +' ' Text.Whitespace +'a' Name +' ' Text.Whitespace +'+' Operator +' ' Text.Whitespace +'b' Name +'\n' Text.Whitespace + +'@~' Name.Decorator +' ' Text.Whitespace +'a' Name +' ' Text.Whitespace +'+' Operator +' ' Text.Whitespace +'b' Name +'\n' Text.Whitespace + +'@±' Name.Decorator +' ' Text.Whitespace +'a' Name +' ' Text.Whitespace +'+' Operator +' ' Text.Whitespace +'b' Name +'\n' Text.Whitespace + +'@mymacro' Name.Decorator +'(' Punctuation +'a' Name +',' Punctuation +' ' Text.Whitespace +'b' Name +')' Punctuation +'\n' Text.Whitespace + +'@+¹ᵀ' Name.Decorator +' ' Text.Whitespace +'a' Name +'\n' Text.Whitespace diff --git a/tests/snippets/julia/test_names.txt b/tests/snippets/julia/test_names.txt new file mode 100644 index 0000000..62c0b55 --- /dev/null +++ b/tests/snippets/julia/test_names.txt @@ -0,0 +1,148 @@ +# Test that the range of Julia variable names are correctly identified + +---input--- +a # single character variable +a_simple_name +_leading_underscore +5implicit_mul +6_more_mul +nums1 +nums_2 +nameswith! +multiple!! +embedded!_inthemiddle +embed!1 +prime_suffix′ +for_each # starts with keyword substring + +# variables with characters > \u00A1 +ð # category Ll +Aʺ # category Lm -- \U02BA (MODIFIER LETTER DOUBLE PRIME), not \U2033 (DOUBLE PRIME) +א # category Lo +Ð # category Lu +A̅ # category Mn -- \U0305 (COMBINING OVERLINE) +ⅿ # category Nl -- \U217F (SMALL ROMAN NUMERAL ONE THOUSAND) +A₁ # category No +A² # category No +€ # category Sc +© # category So + +# number-like names +𝟙 # category Nd +𝟏 # category Nd + +---tokens--- +'a' Name +' ' Text.Whitespace +'# single character variable' Comment +'\n' Text.Whitespace + +'a_simple_name' Name +'\n' Text.Whitespace + +'_leading_underscore' Name +'\n' Text.Whitespace + +'5' Literal.Number.Integer +'implicit_mul' Name +'\n' Text.Whitespace + +'6' Literal.Number.Integer +'_more_mul' Name +'\n' Text.Whitespace + +'nums1' Name +'\n' Text.Whitespace + +'nums_2' Name +'\n' Text.Whitespace + +'nameswith!' Name +'\n' Text.Whitespace + +'multiple!!' Name +'\n' Text.Whitespace + +'embedded!_inthemiddle' Name +'\n' Text.Whitespace + +'embed!1' Name +'\n' Text.Whitespace + +'prime_suffix′' Name +'\n' Text.Whitespace + +'for_each' Name +' ' Text.Whitespace +'# starts with keyword substring' Comment +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'# variables with characters > \\u00A1' Comment +'\n' Text.Whitespace + +'ð' Name +' ' Text.Whitespace +'# category Ll' Comment +'\n' Text.Whitespace + +'Aʺ' Name +' ' Text.Whitespace +'# category Lm -- \\U02BA (MODIFIER LETTER DOUBLE PRIME), not \\U2033 (DOUBLE PRIME)' Comment +'\n' Text.Whitespace + +'א' Name +' ' Text.Whitespace +'# category Lo' Comment +'\n' Text.Whitespace + +'Ð' Name +' ' Text.Whitespace +'# category Lu' Comment +'\n' Text.Whitespace + +'A̅' Name +' ' Text.Whitespace +'# category Mn -- \\U0305 (COMBINING OVERLINE)' Comment +'\n' Text.Whitespace + +'ⅿ' Name +' ' Text.Whitespace +'# category Nl -- \\U217F (SMALL ROMAN NUMERAL ONE THOUSAND)' Comment +'\n' Text.Whitespace + +'A₁' Name +' ' Text.Whitespace +'# category No' Comment +'\n' Text.Whitespace + +'A²' Name +' ' Text.Whitespace +'# category No' Comment +'\n' Text.Whitespace + +'€' Name +' ' Text.Whitespace +'# category Sc' Comment +'\n' Text.Whitespace + +'©' Name +' ' Text.Whitespace +'# category So' Comment +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'# number-like names' Comment +'\n' Text.Whitespace + +'𝟙' Name +' ' Text.Whitespace +'# category Nd' Comment +'\n' Text.Whitespace + +'𝟏' Name +' ' Text.Whitespace +'# category Nd' Comment +'\n' Text.Whitespace diff --git a/tests/snippets/julia/test_numbers.txt b/tests/snippets/julia/test_numbers.txt new file mode 100644 index 0000000..66f1fd0 --- /dev/null +++ b/tests/snippets/julia/test_numbers.txt @@ -0,0 +1,261 @@ +# Tests identification of number forms + +---input--- +# floats + 1e1 1e+1 1e-1 +1.1e1 1.1e+1 1.1e-1 .1e1 .1_1e1 1_1.1e1 1.1_1e1 1.1_11e1 +1.1E1 1.1E+1 1.1E-1 .1E1 .1_1E1 1_1.1E1 1.1_1E1 1.1_11E1 +1.1f1 1.1f+1 1.1f-1 .1f1 .1_1f1 1_1.1f1 1.1_1f1 1.1_11f1 +1E1 1E+1 1E-1 +1f1 1f+1 1f-1 +.1 1. 1.1 1.1_1 1.1_11 .1_1 .1_11 1_1.1_1 +# hex floats +0x1p1 0xa_bp10 0x01_ap11 0x01_abp1 +0x1.1p1 0xA.Bp10 0x0.1_Ap9 0x0_1.Ap1 0x0_1.A_Bp9 + +# integers +1 01 10_1 10_11 + +# non-decimal +0xf 0xf_0 0xfff_000 +0o7 0o7_0 0o777_000 +0b1 0b1_0 0b111_000 + +# invalid in Julia - out of range values +0xg 0o8 0b2 0x1pA +# invalid in Julia - no trailing underscores +1_ 1.1_ 0xf_ 0o7_ 0b1_ 0xF_p1 +# parsed as juxtaposed numeral + variable in Julia (no underscores in exponents) +1e1_1 1E1_1 1f1_1 0xfp1_1 + +# not floats -- range-like expression parts +1..1 ..1 1.. + +---tokens--- +'# floats' Comment +'\n' Text.Whitespace + +' ' Text.Whitespace +'1e1' Literal.Number.Float +' ' Text.Whitespace +'1e+1' Literal.Number.Float +' ' Text.Whitespace +'1e-1' Literal.Number.Float +'\n' Text.Whitespace + +'1.1e1' Literal.Number.Float +' ' Text.Whitespace +'1.1e+1' Literal.Number.Float +' ' Text.Whitespace +'1.1e-1' Literal.Number.Float +' ' Text.Whitespace +'.1e1' Literal.Number.Float +' ' Text.Whitespace +'.1_1e1' Literal.Number.Float +' ' Text.Whitespace +'1_1.1e1' Literal.Number.Float +' ' Text.Whitespace +'1.1_1e1' Literal.Number.Float +' ' Text.Whitespace +'1.1_11e1' Literal.Number.Float +'\n' Text.Whitespace + +'1.1E1' Literal.Number.Float +' ' Text.Whitespace +'1.1E+1' Literal.Number.Float +' ' Text.Whitespace +'1.1E-1' Literal.Number.Float +' ' Text.Whitespace +'.1E1' Literal.Number.Float +' ' Text.Whitespace +'.1_1E1' Literal.Number.Float +' ' Text.Whitespace +'1_1.1E1' Literal.Number.Float +' ' Text.Whitespace +'1.1_1E1' Literal.Number.Float +' ' Text.Whitespace +'1.1_11E1' Literal.Number.Float +'\n' Text.Whitespace + +'1.1f1' Literal.Number.Float +' ' Text.Whitespace +'1.1f+1' Literal.Number.Float +' ' Text.Whitespace +'1.1f-1' Literal.Number.Float +' ' Text.Whitespace +'.1f1' Literal.Number.Float +' ' Text.Whitespace +'.1_1f1' Literal.Number.Float +' ' Text.Whitespace +'1_1.1f1' Literal.Number.Float +' ' Text.Whitespace +'1.1_1f1' Literal.Number.Float +' ' Text.Whitespace +'1.1_11f1' Literal.Number.Float +'\n' Text.Whitespace + +'1E1' Literal.Number.Float +' ' Text.Whitespace +'1E+1' Literal.Number.Float +' ' Text.Whitespace +'1E-1' Literal.Number.Float +'\n' Text.Whitespace + +'1f1' Literal.Number.Float +' ' Text.Whitespace +'1f+1' Literal.Number.Float +' ' Text.Whitespace +'1f-1' Literal.Number.Float +'\n' Text.Whitespace + +'.1' Literal.Number.Float +' ' Text.Whitespace +'1.' Literal.Number.Float +' ' Text.Whitespace +'1.1' Literal.Number.Float +' ' Text.Whitespace +'1.1_1' Literal.Number.Float +' ' Text.Whitespace +'1.1_11' Literal.Number.Float +' ' Text.Whitespace +'.1_1' Literal.Number.Float +' ' Text.Whitespace +'.1_11' Literal.Number.Float +' ' Text.Whitespace +'1_1.1_1' Literal.Number.Float +'\n' Text.Whitespace + +'# hex floats' Comment +'\n' Text.Whitespace + +'0x1p1' Literal.Number.Float +' ' Text.Whitespace +'0xa_bp10' Literal.Number.Float +' ' Text.Whitespace +'0x01_ap11' Literal.Number.Float +' ' Text.Whitespace +'0x01_abp1' Literal.Number.Float +'\n' Text.Whitespace + +'0x1.1p1' Literal.Number.Float +' ' Text.Whitespace +'0xA.Bp10' Literal.Number.Float +' ' Text.Whitespace +'0x0.1_Ap9' Literal.Number.Float +' ' Text.Whitespace +'0x0_1.Ap1' Literal.Number.Float +' ' Text.Whitespace +'0x0_1.A_Bp9' Literal.Number.Float +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'# integers' Comment +'\n' Text.Whitespace + +'1' Literal.Number.Integer +' ' Text.Whitespace +'01' Literal.Number.Integer +' ' Text.Whitespace +'10_1' Literal.Number.Integer +' ' Text.Whitespace +'10_11' Literal.Number.Integer +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'# non-decimal' Comment +'\n' Text.Whitespace + +'0xf' Literal.Number.Hex +' ' Text.Whitespace +'0xf_0' Literal.Number.Hex +' ' Text.Whitespace +'0xfff_000' Literal.Number.Hex +'\n' Text.Whitespace + +'0o7' Literal.Number.Oct +' ' Text.Whitespace +'0o7_0' Literal.Number.Oct +' ' Text.Whitespace +'0o777_000' Literal.Number.Oct +'\n' Text.Whitespace + +'0b1' Literal.Number.Bin +' ' Text.Whitespace +'0b1_0' Literal.Number.Bin +' ' Text.Whitespace +'0b111_000' Literal.Number.Bin +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'# invalid in Julia - out of range values' Comment +'\n' Text.Whitespace + +'0' Literal.Number.Integer +'xg' Name +' ' Text.Whitespace +'0' Literal.Number.Integer +'o8' Name +' ' Text.Whitespace +'0' Literal.Number.Integer +'b2' Name +' ' Text.Whitespace +'0x1' Literal.Number.Hex +'pA' Name +'\n' Text.Whitespace + +'# invalid in Julia - no trailing underscores' Comment +'\n' Text.Whitespace + +'1' Literal.Number.Integer +'_' Name +' ' Text.Whitespace +'1.1' Literal.Number.Float +'_' Name +' ' Text.Whitespace +'0xf' Literal.Number.Hex +'_' Name +' ' Text.Whitespace +'0o7' Literal.Number.Oct +'_' Name +' ' Text.Whitespace +'0b1' Literal.Number.Bin +'_' Name +' ' Text.Whitespace +'0xF' Literal.Number.Hex +'_p1' Name +'\n' Text.Whitespace + +'# parsed as juxtaposed numeral + variable in Julia (no underscores in exponents)' Comment +'\n' Text.Whitespace + +'1e1' Literal.Number.Float +'_1' Name +' ' Text.Whitespace +'1E1' Literal.Number.Float +'_1' Name +' ' Text.Whitespace +'1f1' Literal.Number.Float +'_1' Name +' ' Text.Whitespace +'0xfp1' Literal.Number.Float +'_1' Name +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'# not floats -- range-like expression parts' Comment +'\n' Text.Whitespace + +'1' Literal.Number.Integer +'..' Operator +'1' Literal.Number.Integer +' ' Text.Whitespace +'..' Operator +'1' Literal.Number.Integer +' ' Text.Whitespace +'1' Literal.Number.Integer +'..' Operator +'\n' Text.Whitespace diff --git a/tests/snippets/julia/test_operators.txt b/tests/snippets/julia/test_operators.txt new file mode 100644 index 0000000..c3c0f9f --- /dev/null +++ b/tests/snippets/julia/test_operators.txt @@ -0,0 +1,172 @@ +# Test that operators --- dotted and unicode --- are identified correctly. + +---input--- +a += b.c +a .÷= .~b.c +a = !b ⋆ c! +a = b ? c : d ⊕ e +a = √(5) +a -> (a...) .+ 1 +a \ b +1..2 +a = a === b +a <: T +a >: T +a::T +[adjoint]' +(identity)'' +adjoint''' +transpose'ᵀ +suffixed +¹ operator +suffixed +¹²³ operator + +---tokens--- +'a' Name +' ' Text.Whitespace +'+=' Operator +' ' Text.Whitespace +'b' Name +'.' Operator +'c' Name +'\n' Text.Whitespace + +'a' Name +' ' Text.Whitespace +'.÷=' Operator +' ' Text.Whitespace +'.~' Operator +'b' Name +'.' Operator +'c' Name +'\n' Text.Whitespace + +'a' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'!' Operator +'b' Name +' ' Text.Whitespace +'⋆' Operator +' ' Text.Whitespace +'c!' Name +'\n' Text.Whitespace + +'a' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'b' Name +' ' Text.Whitespace +'?' Operator +' ' Text.Whitespace +'c' Name +' ' Text.Whitespace +':' Operator +' ' Text.Whitespace +'d' Name +' ' Text.Whitespace +'⊕' Operator +' ' Text.Whitespace +'e' Name +'\n' Text.Whitespace + +'a' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'√' Operator +'(' Punctuation +'5' Literal.Number.Integer +')' Punctuation +'\n' Text.Whitespace + +'a' Name +' ' Text.Whitespace +'->' Operator +' ' Text.Whitespace +'(' Punctuation +'a' Name +'...' Operator +')' Punctuation +' ' Text.Whitespace +'.+' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +'\n' Text.Whitespace + +'a' Name +' ' Text.Whitespace +'\\' Operator +' ' Text.Whitespace +'b' Name +'\n' Text.Whitespace + +'1' Literal.Number.Integer +'..' Operator +'2' Literal.Number.Integer +'\n' Text.Whitespace + +'a' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'a' Name +' ' Text.Whitespace +'===' Operator +' ' Text.Whitespace +'b' Name +'\n' Text.Whitespace + +'a' Keyword.Type +' ' Text.Whitespace +'<:' Operator +' ' Text.Whitespace +'T' Keyword.Type +'\n' Text.Whitespace + +'a' Keyword.Type +' ' Text.Whitespace +'>:' Operator +' ' Text.Whitespace +'T' Keyword.Type +'\n' Text.Whitespace + +'a' Name +'::' Operator +'T' Keyword.Type +'\n' Text.Whitespace + +'[' Punctuation +'adjoint' Name +']' Punctuation +"'" Operator +'\n' Text.Whitespace + +'(' Punctuation +'identity' Name +')' Punctuation +"''" Operator +'\n' Text.Whitespace + +'adjoint' Name +"'''" Operator +'\n' Text.Whitespace + +'transpose' Name +"'ᵀ" Operator +'\n' Text.Whitespace + +'suffixed' Name +' ' Text.Whitespace +'+¹' Operator +' ' Text.Whitespace +'operator' Name +'\n' Text.Whitespace + +'suffixed' Name +' ' Text.Whitespace +'+¹²³' Operator +' ' Text.Whitespace +'operator' Name +'\n' Text.Whitespace diff --git a/tests/snippets/julia/test_strings.txt b/tests/snippets/julia/test_strings.txt new file mode 100644 index 0000000..d5f91bf --- /dev/null +++ b/tests/snippets/julia/test_strings.txt @@ -0,0 +1,225 @@ +# Tests string forms + +---input--- +"global function" +"An $interpolated variable" +"An $(a + 1) expression" +"""a""" +""" +global function +de e f +"inner string" +""" +raw"\\ a \" $interp $(1 + 1) \"" +raw""" +"inner string" +$interp +$(1 + 1) +""" +# commented "string" + +@sprintf "%0.2f" var +v"1.0" +var"#nonstandard#" + +r"^[abs]+$"m +arbi"trary"suff +arbi"trary"1234 + +`global function` +`abc \` \$ $interpolated` +`abc $(a + 1)` +```a``` +``` +global function +"thing" ` \$ +`now` $(now()) +``` +# commented `command` + +arbi`trary`suff +arbi`trary`1234 + +---tokens--- +'"' Literal.String +'global function' Literal.String +'"' Literal.String +'\n' Text.Whitespace + +'"' Literal.String +'An ' Literal.String +'$interpolated' Literal.String.Interpol +' variable' Literal.String +'"' Literal.String +'\n' Text.Whitespace + +'"' Literal.String +'An ' Literal.String +'$' Literal.String.Interpol +'(' Punctuation +'a' Name +' ' Text.Whitespace +'+' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +')' Punctuation +' expression' Literal.String +'"' Literal.String +'\n' Text.Whitespace + +'"""' Literal.String +'a' Literal.String +'"""' Literal.String +'\n' Text.Whitespace + +'"""' Literal.String +'\nglobal function\nde e f\n' Literal.String + +'"' Literal.String +'inner string' Literal.String +'"' Literal.String +'\n' Literal.String + +'"""' Literal.String +'\n' Text.Whitespace + +'raw' Literal.String.Affix +'"' Literal.String +'\\\\ a ' Literal.String +'\\"' Literal.String.Escape +' $interp $(1 + 1) ' Literal.String +'\\"' Literal.String.Escape +'"' Literal.String +'\n' Text.Whitespace + +'raw' Literal.String.Affix +'"""' Literal.String +'\n"inner string"\n$interp\n$(1 + 1)\n' Literal.String + +'"""' Literal.String +'\n' Text.Whitespace + +'# commented "string"' Comment +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'@sprintf' Name.Decorator +' ' Text.Whitespace +'"' Literal.String +'%0.2f' Literal.String.Interpol +'"' Literal.String +' ' Text.Whitespace +'var' Name +'\n' Text.Whitespace + +'v' Literal.String.Affix +'"' Literal.String +'1.0' Literal.String +'"' Literal.String +'\n' Text.Whitespace + +'var' Literal.String.Affix +'"' Literal.String +'#nonstandard#' Literal.String +'"' Literal.String +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'r' Literal.String.Affix +'"' Literal.String.Regex +'^[abs]+$' Literal.String.Regex +'"' Literal.String.Regex +'m' Literal.String.Affix +'\n' Text.Whitespace + +'arbi' Literal.String.Affix +'"' Literal.String +'trary' Literal.String +'"' Literal.String +'suff' Literal.String.Affix +'\n' Text.Whitespace + +'arbi' Literal.String.Affix +'"' Literal.String +'trary' Literal.String +'"' Literal.String +'1234' Literal.String.Affix +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'`' Literal.String.Backtick +'global function' Literal.String.Backtick +'`' Literal.String.Backtick +'\n' Text.Whitespace + +'`' Literal.String.Backtick +'abc ' Literal.String.Backtick +'\\`' Literal.String.Escape +' ' Literal.String.Backtick +'\\$' Literal.String.Escape +' ' Literal.String.Backtick +'$interpolated' Literal.String.Interpol +'`' Literal.String.Backtick +'\n' Text.Whitespace + +'`' Literal.String.Backtick +'abc ' Literal.String.Backtick +'$' Literal.String.Interpol +'(' Punctuation +'a' Name +' ' Text.Whitespace +'+' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +')' Punctuation +'`' Literal.String.Backtick +'\n' Text.Whitespace + +'```' Literal.String.Backtick +'a' Literal.String.Backtick +'```' Literal.String.Backtick +'\n' Text.Whitespace + +'```' Literal.String.Backtick +'\nglobal function\n"thing" ' Literal.String.Backtick +'`' Literal.String.Backtick +' ' Literal.String.Backtick +'\\$' Literal.String.Escape +'\n' Literal.String.Backtick + +'`' Literal.String.Backtick +'now' Literal.String.Backtick +'`' Literal.String.Backtick +' ' Literal.String.Backtick +'$' Literal.String.Interpol +'(' Punctuation +'now' Name +'(' Punctuation +')' Punctuation +')' Punctuation +'\n' Literal.String.Backtick + +'```' Literal.String.Backtick +'\n' Text.Whitespace + +'# commented `command`' Comment +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'arbi' Literal.String.Affix +'`' Literal.String.Backtick +'trary' Literal.String.Backtick +'`' Literal.String.Backtick +'suff' Literal.String.Affix +'\n' Text.Whitespace + +'arbi' Literal.String.Affix +'`' Literal.String.Backtick +'trary' Literal.String.Backtick +'`' Literal.String.Backtick +'1234' Literal.String.Affix +'\n' Text.Whitespace diff --git a/tests/snippets/julia/test_symbols.txt b/tests/snippets/julia/test_symbols.txt new file mode 100644 index 0000000..37b4f83 --- /dev/null +++ b/tests/snippets/julia/test_symbols.txt @@ -0,0 +1,78 @@ +# Tests that symbols are parsed as special literals + +---input--- +:abc_123 +:abc_def +:α +Val{:mysymbol} + +# non-symbols +a:b +1:b +1.:b +a::T +a<:T +a>:T +UInt(1):UInt(2) + +---tokens--- +':abc_123' Literal.String.Symbol +'\n' Text.Whitespace + +':abc_def' Literal.String.Symbol +'\n' Text.Whitespace + +':α' Literal.String.Symbol +'\n' Text.Whitespace + +'Val' Keyword.Type +'{' Punctuation +':mysymbol' Literal.String.Symbol +'}' Punctuation +'\n' Text.Whitespace + +'\n' Text.Whitespace + +'# non-symbols' Comment +'\n' Text.Whitespace + +'a' Name +':' Operator +'b' Name +'\n' Text.Whitespace + +'1' Literal.Number.Integer +':' Operator +'b' Name +'\n' Text.Whitespace + +'1.' Literal.Number.Float +':' Operator +'b' Name +'\n' Text.Whitespace + +'a' Name +'::' Operator +'T' Keyword.Type +'\n' Text.Whitespace + +'a' Keyword.Type +'<:' Operator +'T' Keyword.Type +'\n' Text.Whitespace + +'a' Keyword.Type +'>:' Operator +'T' Keyword.Type +'\n' Text.Whitespace + +'UInt' Keyword.Type +'(' Punctuation +'1' Literal.Number.Integer +')' Punctuation +':' Operator +'UInt' Keyword.Type +'(' Punctuation +'2' Literal.Number.Integer +')' Punctuation +'\n' Text.Whitespace diff --git a/tests/snippets/julia/test_types.txt b/tests/snippets/julia/test_types.txt new file mode 100644 index 0000000..16267fd --- /dev/null +++ b/tests/snippets/julia/test_types.txt @@ -0,0 +1,196 @@ +# Tests identifying names which must be types from context + +---input--- +Union{} +MyType{Nothing, Any} +f(::Union{T,S}) where S where T = 1 +f(::T) where {T} = 1 +f(::Type{<:T}) = 1 +f(::AT) where AT <: AbstractArray{MyType,1} = 1 +f(::Val{:named}) = 1 +f(::typeof(sin)) = 1 +MyInt <: Integer +Number >: MyInt +AT{T,1} <: B +B>:AT{T,1} +A <: f(B) +g(C) <: T + +---tokens--- +'Union' Keyword.Type +'{' Punctuation +'}' Punctuation +'\n' Text.Whitespace + +'MyType' Keyword.Type +'{' Punctuation +'Nothing' Keyword.Type +',' Punctuation +' ' Text.Whitespace +'Any' Keyword.Type +'}' Punctuation +'\n' Text.Whitespace + +'f' Name +'(' Punctuation +'::' Operator +'Union' Keyword.Type +'{' Punctuation +'T' Keyword.Type +',' Punctuation +'S' Keyword.Type +'}' Punctuation +')' Punctuation +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'S' Keyword.Type +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'T' Keyword.Type +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +'\n' Text.Whitespace + +'f' Name +'(' Punctuation +'::' Operator +'T' Keyword.Type +')' Punctuation +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'{' Punctuation +'T' Keyword.Type +'}' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +'\n' Text.Whitespace + +'f' Name +'(' Punctuation +'::' Operator +'Type' Keyword.Type +'{' Punctuation +'<:' Operator +'T' Keyword.Type +'}' Punctuation +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +'\n' Text.Whitespace + +'f' Name +'(' Punctuation +'::' Operator +'AT' Keyword.Type +')' Punctuation +' ' Text.Whitespace +'where' Keyword +' ' Text.Whitespace +'AT' Keyword.Type +' ' Text.Whitespace +'<:' Operator +' ' Text.Whitespace +'AbstractArray' Keyword.Type +'{' Punctuation +'MyType' Keyword.Type +',' Punctuation +'1' Literal.Number.Integer +'}' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +'\n' Text.Whitespace + +'f' Name +'(' Punctuation +'::' Operator +'Val' Keyword.Type +'{' Punctuation +':named' Literal.String.Symbol +'}' Punctuation +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +'\n' Text.Whitespace + +'f' Name +'(' Punctuation +'::' Operator +'typeof' Name +'(' Punctuation +'sin' Name +')' Punctuation +')' Punctuation +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'1' Literal.Number.Integer +'\n' Text.Whitespace + +'MyInt' Keyword.Type +' ' Text.Whitespace +'<:' Operator +' ' Text.Whitespace +'Integer' Keyword.Type +'\n' Text.Whitespace + +'Number' Keyword.Type +' ' Text.Whitespace +'>:' Operator +' ' Text.Whitespace +'MyInt' Keyword.Type +'\n' Text.Whitespace + +'AT' Keyword.Type +'{' Punctuation +'T' Keyword.Type +',' Punctuation +'1' Literal.Number.Integer +'}' Punctuation +' ' Text.Whitespace +'<:' Operator +' ' Text.Whitespace +'B' Keyword.Type +'\n' Text.Whitespace + +'B' Keyword.Type +'>:' Operator +'AT' Keyword.Type +'{' Punctuation +'T' Keyword.Type +',' Punctuation +'1' Literal.Number.Integer +'}' Punctuation +'\n' Text.Whitespace + +'A' Keyword.Type +' ' Text.Whitespace +'<:' Operator +' ' Text.Whitespace +'f' Name +'(' Punctuation +'B' Name +')' Punctuation +'\n' Text.Whitespace + +'g' Name +'(' Punctuation +'C' Name +')' Punctuation +' ' Text.Whitespace +'<:' Operator +' ' Text.Whitespace +'T' Keyword.Type +'\n' Text.Whitespace diff --git a/tests/snippets/julia/test_unicode.txt b/tests/snippets/julia/test_unicode.txt new file mode 100644 index 0000000..6b2508a --- /dev/null +++ b/tests/snippets/julia/test_unicode.txt @@ -0,0 +1,37 @@ +# Test that unicode character, √, in an expression is recognized + +---input--- +s = √((1/n) * sum(count .^ 2) - mu .^2) + +---tokens--- +'s' Name +' ' Text.Whitespace +'=' Operator +' ' Text.Whitespace +'√' Operator +'(' Punctuation +'(' Punctuation +'1' Literal.Number.Integer +'/' Operator +'n' Name +')' Punctuation +' ' Text.Whitespace +'*' Operator +' ' Text.Whitespace +'sum' Name +'(' Punctuation +'count' Name +' ' Text.Whitespace +'.^' Operator +' ' Text.Whitespace +'2' Literal.Number.Integer +')' Punctuation +' ' Text.Whitespace +'-' Operator +' ' Text.Whitespace +'mu' Name +' ' Text.Whitespace +'.^' Operator +'2' Literal.Number.Integer +')' Punctuation +'\n' Text.Whitespace |