90 lines
2.0 KiB
HTML
90 lines
2.0 KiB
HTML
|
<h2>Comments</h2>
|
|||
|
<pre><code>#!/usr/local/bin/lua
|
|||
|
--
|
|||
|
-- Single line comment
|
|||
|
--[[ Multi line
|
|||
|
comment ]]
|
|||
|
--[====[ Multi line
|
|||
|
comment ]====]</code></pre>
|
|||
|
|
|||
|
<h2>Strings</h2>
|
|||
|
<pre><code>""
|
|||
|
"Foo\"bar"
|
|||
|
"Foo\
|
|||
|
bar \z
|
|||
|
baz"
|
|||
|
''
|
|||
|
'Foo\'bar'
|
|||
|
'Foo\
|
|||
|
bar \z
|
|||
|
baz'
|
|||
|
[[Multi "line"
|
|||
|
string]]
|
|||
|
[==[Multi [["line"]]
|
|||
|
string]==]</code></pre>
|
|||
|
|
|||
|
<h2>Numbers</h2>
|
|||
|
<pre><code>3
|
|||
|
345
|
|||
|
0xff
|
|||
|
0xBEBADA
|
|||
|
3, 3., 3.1, .3,
|
|||
|
3e12, 3.e-41, 3.1E+1, .3e1
|
|||
|
0x0.1E
|
|||
|
0xA23p-4
|
|||
|
0X1.921FB54442D18P+1</code></pre>
|
|||
|
|
|||
|
<h2>Full example</h2>
|
|||
|
<pre><code>function To_Functable(t, fn)
|
|||
|
return setmetatable(t,
|
|||
|
{
|
|||
|
__index = function(t, k) return fn(k) end,
|
|||
|
__call = function(t, k) return t[k] end
|
|||
|
})
|
|||
|
end
|
|||
|
|
|||
|
-- Functable bottles of beer implementation
|
|||
|
|
|||
|
spell_out = {
|
|||
|
"One", "Two", "Three", "Four", "Five",
|
|||
|
"Six", "Seven", "Eight", "Nine", "Ten",
|
|||
|
[0] = "No more",
|
|||
|
[-1] = "Lots more"
|
|||
|
}
|
|||
|
|
|||
|
spell_out = To_Functable(spell_out, function(i) return i end)
|
|||
|
|
|||
|
bottles = To_Functable({"Just one bottle of beer"},
|
|||
|
function(i)
|
|||
|
return spell_out(i) .. " bottles of beer"
|
|||
|
end)
|
|||
|
|
|||
|
function line1(i)
|
|||
|
return bottles(i) .. " on the wall, " .. bottles(i) .. "\n"
|
|||
|
end
|
|||
|
|
|||
|
line2 = To_Functable({[0] = "Go to the store, Buy some more,\n"},
|
|||
|
function(i)
|
|||
|
return "Take one down and pass it around,\n"
|
|||
|
end)
|
|||
|
|
|||
|
function line3(i)
|
|||
|
return bottles(i) .. " on the wall.\n"
|
|||
|
end
|
|||
|
|
|||
|
function song(n)
|
|||
|
for i = n, 0, -1 do
|
|||
|
io.write(line1(i), line2(i), line3(i - 1), "\n")
|
|||
|
end
|
|||
|
end</code></pre>
|
|||
|
|
|||
|
<h2>Known failures</h2>
|
|||
|
<p>There are certain edge cases where Prism will fail.
|
|||
|
There are always such cases in every regex-based syntax highlighter.
|
|||
|
However, Prism dares to be open and honest about them.
|
|||
|
If a failure is listed here, it doesn’t mean it will never be fixed. This is more of a “known bugs” list, just with a certain type of bug.
|
|||
|
</p>
|
|||
|
|
|||
|
<h3>Functions with a single string parameter not using parentheses are not highlighted</h3>
|
|||
|
<pre><code>foobar"param";</code></pre>
|