automizy-email-editor
Version:
Design mobile friendly HTML emails in your application.
3,130 lines • 123 kB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Code Prettifier</title>
<script>(function () {
var sourceBaseUrl = /[&?]distrib/.test(location.search)
? "../distrib/google-code-prettify/" : "../src/";
var sources = [
"prettify.js",
"lang-css.js",
"lang-erlang.js",
"lang-go.js",
"lang-hs.js",
"lang-lisp.js",
"lang-lua.js",
"lang-ml.js",
"lang-proto.js",
"lang-rust.js",
"lang-scala.js",
"lang-sql.js",
"lang-wiki.js",
"lang-vhdl.js",
"lang-vb.js",
"lang-yaml.js",
];
var styles = [
"prettify.css"
];
if (window.console) {
console.log("sourceBaseUrl=" + sourceBaseUrl);
}
for (var i = 0; i < sources.length; ++i) {
document.write(
"<script src=\"" + sourceBaseUrl + sources[i] + "\"><\/script>");
}
document.write(
"<script src=\"test_base.js\" type=\"text/javascript\"><\/script>");
for (var i = 0; i < styles.length; ++i) {
document.write(
"<link rel=\"stylesheet\" href=\"" + sourceBaseUrl + styles[i] + "\">");
}
})();
window.onload = (function() {
var attempt = function() {
var go = window["go"];
var prettyPrint = window["prettyPrint"];
var goldens = window["goldens"];
if(go && prettyPrint && goldens) {
go(goldens);
} else {
setTimeout(attempt, 20);
}
};
return attempt;
})();
</script>
<link rel="stylesheet" type="text/css" href="test_styles.css" />
</head>
<body bgcolor="white">
<div id="timing"></div>
<div id="errorReport" style="white-space: pre"></div>
<h1>Bash</h1>
<pre class="prettyprint" id="bash">#!/bin/bash
# Fibonacci numbers
# Writes an infinite series to stdout, one entry per line
function fib() {
local a=1
local b=1
while true ; do
echo $a
local tmp=$a
a=$(( $a + $b ))
b=$tmp
done
}
# output the 10th element of the series and halt
fib | head -10 | tail -1
</pre>
<h1>Bash w/ language specified</h1>
<pre class="prettyprint lang-sh linenums" id="bash_lang">#!/bin/bash
# Fibonacci numbers
# Writes an infinite series to stdout, one entry per line
function fib() {
local a=1
local b=1
while true ; do
echo $a
local tmp=$a
a=$(( $a + $b ))
b=$tmp
done
}
# output the 10th element of the series and halt
fib | /usr/bin/*head -10 | tail -1
</pre>
<h1>Issue 165</h1>
<pre class="prettyprint lang-sh" id="issue_165"># Comment
local $x = ${#x[@]} # Previous is not a comment
# A comment</pre>
<h1>C</h1>
<pre class="prettyprint" id="C">
#include <stdio.h>
/* the n-th fibonacci number.
*/
unsigned int fib(unsigned int n) {
unsigned int a = 1, b = 1;
unsigned int tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
main() {
printf("%u", fib(10));
}
</pre>
<h1>C w/ language specified</h1>
<pre class="prettyprint lang-c" id="C_lang">
#include <stdio.h>
/* the n<sup>th</sup> fibonacci number. */
uint32 fib(unsigned int n) {
uint32 a = 1, b = 1;
uint32 tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
void main() {
size_t size = sizeof(wchar_t);
ASSERT_EQ(size, 1);
printf("%u", fib(10));
}
#define ZERO 0 /* a
multiline comment */
</pre>
<h1>C++</h1>
<pre class="prettyprint" id="Cpp">
#include <iostream>
using namespace std;
//! fibonacci numbers with gratuitous use of templates.
//! \param n an index into the fibonacci series
//! \param fib0 element 0 of the series
//! \return the nth element of the fibonacci series
template <class T>
T fib(unsigned int n, const T& fib0) {
T a(fib0), b(fib0);
for (; n; --n) {
T tmp(a);
a += b;
b = tmp;
}
return a;
}
int main(int argc, char **argv) {
cout << fib(10, 1U);
}
</pre>
<h1>C++ w/ language specified</h1>
<pre class="prettyprint lang-cc" id="Cpp_lang">
#include <iostream>
using namespace std;
//! fibonacci numbers with gratuitous use of templates.
//! \param n an index into the fibonacci series
//! \param fib0 element 0 of the series
//! \return the nth element of the fibonacci series
template <class T>
T fib(int n, const T& fib0) {
T a(fib0), b(fib0);
while (--n >= 0) {
T tmp(a);
a += b;
b = tmp;
}
return a;
}
int main(int argc, char **argv) {
cout << fib(10, 1U);
}
</pre>
<h1>Java</h1>
<pre class="prettyprint" id="java">
package foo;
import java.util.Iterator;
/**
* the fibonacci series implemented as an Iterable.
*/
public final class Fibonacci implements Iterable<Integer> {
/** the next and previous members of the series. */
private int a = 1, b = 1;
@Override
public Iterator<Integer> iterator() {
return new Iterator<Integer>() {
/** the series is infinite. */
public boolean hasNext() { return true; }
public Integer next() {
int tmp = a;
a += b;
b = tmp;
return a;
}
public void remove() { throw new UnsupportedOperationException(); }
};
}
/**
* the n<sup>th</sup> element of the given series.
* @throws NoSuchElementException if there are less than n elements in the
* given Iterable's {@link Iterable#iterator iterator}.
*/
public static <T>
T nth(int n, Iterable<T> iterable) {
Iterator<? extends T> it = iterable.iterator();
while (--n > 0) {
it.next();
}
return it.next();
}
public static void main(String[] args) {
System.out.print(nth(10, new Fibonacci()));
}
}
</pre>
<h1>Java w/ language specified<small>(first line shown is line 12)</small></h1>
<pre class="prettyprint lang-java linenums:12" id="java_lang">
package foo;
import java.util.Iterator;
/**
* the fibonacci series implemented as an Iterable.
*/
public final class Fibonacci implements Iterable<Integer> {
/** the next and previous members of the series. */
private int a = 1, b = 1;
@Override
public Iterator<Integer> iterator() {
return new Iterator<Integer>() {
/** the series is infinite. */
public boolean hasNext() { return true; }
public Integer next() {
int tmp = a;
a += b;
b = tmp;
return a;
}
public void remove() { throw new UnsupportedOperationException(); }
};
}
/**
* the n<sup>th</sup> element of the given series.
* @throws NoSuchElementException if there are less than n elements in the
* given Iterable's {@link Iterable#iterator iterator}.
*/
public static <T>
T nth(int n, Iterable<T> iterable) {
Iterator<? extends T> in = iterable.iterator();
while (--n > 0) {
in.next();
}
return in.next();
}
public static void main(String[] args) {
System.out.print(nth(10, new Fibonacci()));
}
}
# not a java comment
# not keywords: static_cast and namespace
</pre>
<h1>Javascript</h1>
<pre class="prettyprint" id="javascript">
/**
* nth element in the fibonacci series.
* @param n >= 0
* @return the nth element, >= 0.
*/
function fib(n) {
var a = 1, b = 1;
var tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
document.write(fib(10));
</pre>
<h1>Issue 12 - Javascript Regular Expressions</h1>
<pre class="prettyprint" id="issue12">
/foo/; // a slash starting a line treated as a regexp beginning
"foo".match(/fo+$/);
// this line comment not treated as a regular expressions
"foo /bar/".test(/"baz"/); // test string and regexp boundaries
var division = /\b\d+\/\d+/g; // test char sets and escaping of specials
var allSpecials = /([^\(\)\[\]\{\}\-\?\+\*\.\^\$\/]+)\\/;
var slashInCharset = /[^/]/g, notCloseSq = /[^\]]/;
// test that slash used in numeric context treated as an operator
1 / 2;
1. / x;
x / y;
(x) / y;
1 /* foo */ / 2;
1 /* foo *// 2;
1/2;
1./x;
x/y;
(x)/y;
// test split over two lines. line comment should not fool it
1//
/2;
x++/y;
x--/y;
x[y] / z;
f() / n;
// test that slash after non postfix operator is start of regexp
log('matches = ' + /foo/.test(foo));
// test keyword preceders
return /a regexp/;
division = notreturn / not_a_regexp / 2; // keyword suffix does not match
// & not used as prefix operator in javascript but this should still work
&/foo/;
extends = /extends/;
</pre>
<h1>Issue 12 - Javascript Regular Expressions w/ language specified</h1>
<pre class="prettyprint lang-js" id="issue12_lang">
/foo/; // a slash starting a line treated as a regexp beginning
"foo".match(/fo+$/);
// this line comment not treated as a regular expressions
"foo /bar/".test(/"baz"/); // test string and regexp boundaries
var division = /\b\d+\/\d+/g; // test char sets and escaping of specials
var allSpecials = /([^\(\)\[\]\{\}\-\?\+\*\.\^\$\/]+)\\/;
var slashInCharset = /[^/]/g, notCloseSq = /[^\]]/;
// test that slash used in numeric context treated as an operator
1 / 2;
1. / x;
x / y;
(x) / y;
1 /* foo */ / 2;
1 /* foo *// 2;
1/2;
1./x;
x/y;
(x)/y;
// test split over two lines. line comment should not fool it
1//
/2;
x++/y;
x--/y;
x[y] / z;
f() / n;
// test that slash after non postfix operator is start of regexp
log('matches = ' + /foo/.test(foo));
// test keyword preceders
return /a regexp/;
division = notreturn / not_a_regexp / 2; // keyword suffix does not match
// & not used as prefix operator in javascript but this should still work
&/foo/;
extends = /extends/;
</pre>
<h1>Coffee</h1>
<pre class="prettyprint lang-coffee" id="coffee">
class Animal
constructor: (@name) ->
move: (meters, loc) ->
alert @name + " moved " + meters + "m."
travel: (path...) ->
for place in path
@move place.distance, place.location
class Horse extends Animal
###
@param name Horse name
@param jumper Jumping ability
###
constructor: (name, jumper) ->
super name
@capable = jumper
step: ->
alert '''
Step,
step...
'''
jump: ->
@capable
move: (meters, where) ->
switch where
when "ground"
@step()
super meters
when "hurdle"
super meters if @jump()
# Create horse
tom = new Horse "Tommy", yes
street =
location: "ground"
distance: 12
car =
location: "hurdle"
distance: 2
###
Tell him to travel:
1. through the street
2. over the car
###
tom.travel street, car
</pre>
<h1>Perl</h1>
<pre class="prettyprint" id="perl">
#!/usr/bin/perl
use strict;
use integer;
# the nth element of the fibonacci series
# param n - an int >= 0
# return an int >= 0
sub fib($) {
my $n = shift, $a = 1, $b = 1;
($a, $b) = ($a + $b, $a) until (--$n < 0);
return $a;
}
print fib(10);
</pre>
<h1>Python</h1>
<pre class="prettyprint" id="python">
#!/usr/bin/python2.4
def fib():
'''
a generator that produces the elements of the fibonacci series
'''
a = 1
b = 1
while True:
a, b = a + b, a
yield a
def nth(series, n):
'''
returns the nth element of a series,
consuming the earlier elements of the series
'''
for x in series:
n = n - 1
if n <= 0: return x
print nth(fib(), 10)
</pre>
<h1>Python w/ language specified</h1>
<pre class="prettyprint lang-py" id="python_lang">
#!/usr/bin/python2.4
def fib():
'''
a generator that produces the fibonacci series's elements
'''
a = 1
b = 1
while True:
a, b = a + b, a
yield a
def nth(series, n):
'''
returns the nth element of a series,
consuming the series' earlier elements.
'''
for x in series:
n -= 1
if n <= 0: return x
print nth(fib(), 10)
/* not a comment and not keywords: null char true */
</pre>
<h1>SQL w/ language specified</h1>
<pre class="prettyprint lang-sql" id="sql_lang">
/* A multi-line
* comment */
'Another string /* Isn\'t a comment',
"A string */"
-- A line comment
SELECT * FROM users WHERE id IN (1, 2.0, +30e-1);
-- keywords are case-insensitive.
-- Note: user-table is a single identifier, not a pair of keywords
select * from user-table where id in (x, y, z);
</pre>
<h1>XML</h1>
<pre class="prettyprint" id="xml">
<!DOCTYPE series PUBLIC "fibonacci numbers">
<series.root base="1" step="s(n-2) + s(n-1)">
<element i="0">1</element>
<element i="1">1</element>
<element i="2">2</element>
<element i="3">3</element>
<element i="4">5</element>
<element i="5">8</element>
...
</series.root>
</pre>
<h1>HTML</h1>
<pre class="prettyprint" id="html">
<html>
<head>
<title>Fibonacci number</title>
<style><!-- BODY { text-decoration: blink } --></style>
<script src="foo.js"></script>
<script src="bar.js"></script>
</head>
<body>
<noscript>
<dl>
<dt>Fibonacci numbers</dt>
<dd>1</dd>
<dd>1</dd>
<dd>2</dd>
<dd>3</dd>
<dd>5</dd>
<dd>8</dd>
&hellip;
</dl>
</noscript>
<script type="text/javascript"><!--
function fib(n) {
var a = 1, b = 1;
var tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
document.writeln(fib(10));
// -->
</script>
</body>
</html>
</pre>
<h1>HTML w/ language specified</h1>
<pre class="prettyprint lang-html" id="html_lang">
Fibonacci Numbers
<noscript>
<dl style="list-style: disc">
<dt>Fibonacci numbers</dt>
<dd>1</dd>
<dd>1</dd>
<dd>2</dd>
<dd>3</dd>
<dd>5</dd>
<dd>8</dd>
&hellip;
</dl>
</noscript>
<script type="text/javascript"><!--
function fib(n) {
var a = 1, b = 1;
var tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
document.writeln(fib(10));
// -->
</script>
</pre>
<h1>HTML using XMP</h1>
<xmp class="prettyprint" id="htmlXmp"
><html>
<head>
<title>Fibonacci number</title>
</head>
<body>
<noscript>
<dl>
<dt>Fibonacci numbers</dt>
<dd>1</dd>
<dd>1</dd>
<dd>2</dd>
<dd>3</dd>
<dd>5</dd>
<dd>8</dd>
…
</dl>
</noscript>
<script type="text/javascript"><!--
function fib(n) {
var a = 1, b = 1;
var tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
document.writeln(fib(10));
// -->
</script>
</body>
</html>
</xmp>
<h1>XHTML</h1>
<pre class="prettyprint" id="xhtml"
><xhtml>
<head>
<title>Fibonacci number</title>
</head>
<body onload="alert(fib(10))">
<script type="text/javascript"><![CDATA[
function fib(n) {
var a = 1, b = 1;
var tmp;
while (--n >= 0) {
tmp = a;
a += b;
b = tmp;
}
return a;
}
]]>
</script>
</body>
</xhtml>
</pre>
<h1>PHP</h1>
<pre class="prettyprint" id="PHP">
<html>
<head>
<title><?= 'Fibonacci numbers' ?></title>
<?php
// PHP has a plethora of comment types
/* What is a
"plethora"? */
function fib($n) {
# I don't know.
$a = 1;
$b = 1;
while (--$n >= 0) {
echo "$a\n";
$tmp = $a;
$a += $b;
$b = $tmp;
}
}
?>
</head>
<body>
<?= fib(10) ?>
</body>
</html>
</pre>
<h1>XSL (Issue 19)</h1>
<pre class="prettyprint" id="xsl">
<!-- Test elements and attributes with namespaces -->
<xsl:stylesheet xml:lang="en">
<xsl:template match=".">
<xsl:text>Hello World</xsl:text>
</xsl:template>
</xsl:stylesheet>
</pre>
<h1>Whitespace</h1>
<pre class=prettyprint id="whitespace"></pre>
<h1>Misc</h1>
<pre class=prettyprint id="misc1">// ends with line comment token
//</pre>
<h1>User submitted testcase for Bug 4</h1>
<p>
Javascript Snippets wrapped in HTML SCRIPT tags hides/destroys inner content
</p>
<pre class=prettyprint id="issue4">
<script type="text/javascript">
var savedTarget=null; // The target layer (effectively vidPane)
var orgCursor=null; // The original mouse style so we can restore it
var dragOK=false; // True if we're allowed to move the element under mouse
var dragXoffset=0; // How much we've moved the element on the horozontal
var dragYoffset=0; // How much we've moved the element on the verticle
vidPaneID = document.getElementById('vidPane'); // Our movable layer
vidPaneID.style.top='75px'; // Starting location horozontal
vidPaneID.style.left='75px'; // Starting location verticle
<script>
</pre>
<p>The fact that the script tag was not closed properly was causing
PR_splitSourceNodes to end without emitting the script contents.</p>
<h1>Bug 8 - tabs mangled</h1>
<p>If tabs are used to indent code inside <pre> IE6 and 7 won't honor them
after the script runs.
Code indented with tabs will be shown aligned to the left margin instead of
the proper indenting shown in Firefox.
I'm using Revision 20 of prettify.js, IE 6.0.29.00 in English and IE
7.0.5730.11 in Spanish.
</p>
<pre class=prettyprint id="issue8">
<b>one</b>	<b>Two</b>	<b>three</b>	Four	<b>five</b>	|
Six	<b>seven</b>	Eight	nine	Ten	|
<b>eleven</b>	Twelve	<b>thirteen</b>	Fourteen	fifteen	|
</pre>
<h1>Bug 14a - does not recognize <code><br></code> as newline</h1>
<pre class="prettyprint" id="issue14a"
>//comment<br />int main(int argc, char **argv)
{}</pre>
<h1>Bug 14b - comments not ignored</h1>
<pre class="prettyprint" id="issue14b"
><!-- There's an <!-- BOO!! --><acronym title="tag soup">HTML</acronym> comment in my comment -->
<p>And another one inside the end tag</p<!-- GOTCHA!! -->>
</pre>
<h1>Bug 20 - missing blank lines</h1>
<pre class="prettyprint" id="issue20"
><html>
<head></pre>
<h1>Bug 21 - code doesn't copy and paste well in IE</h1>
<pre class="prettyprint" id="issue21"
><html>
<head>
<title>Test</title>
</head>
</html></pre>
<p>To test this bug, disable overriding of _pr_isIE6 in test_base.js
by putting #testcopypaste on the end of the URL and reloading the
page, then copy and paste the above into Notepad.</p>
<h1>Bug 22 - Line numbers and other non-code spans in code</h1>
<pre class="prettyprint" id="issue22"
><span class=nocode>01: </span>// This is a line of code
<span class=nocode>02: </span>/* Multiline comments can
<span class=nocode>03: </span> * span over and around
<span class=nocode>04: </span> * line markers
<span class="nocode annot">And can even be interrupted</span>
<span class="nocode annot">by inline code annotations</span>
<span class=nocode>05: </span> */
<span class=nocode>06: </span>class MyClass extends Foo {
<span class=nocode>07: </span> public static void main(String... argv) {
<span class=nocode>08: </span> System.out.print("Hello World");
<span class=nocode>09: </span> }
<span class=nocode>10: </span>}</pre>
<h1>Bug 24 - Lua Syntax Highlighting</h1>
<pre class="prettyprint lang-lua" id="issue24">
os=require("os")
math=require("math")
-- Examples from the language reference
a = 'alo\n123"'
a = "alo\n123\""
a = '\97lo\10\04923"'
a = [[alo
123"]]
a = [==[
alo
123"]==]
3 3.0 3.1416 314.16e-2 0.31416E1 0xff 0x56
-- Some comments that demonstrate long brackets
double_quoted = "Not a long bracket [=["
--[=[ quoting out
[[ foo ]]
[==[does not end comment either]==]
]=]
past_end_of_comment
--]=]
-- Example code courtesy Joseph Harmbruster
#
do
local function ssgeneral(t, n, before)
for _, h in ipairs(incs) do
for i = h + 1, n do
local v = t[i]
for j = i - h, 1, -h do
local testval = t[j]
if not before(v, testval) then break end
t[i] = testval; i = j
end
t[i] = v
end
end
return t
end
function shellsort(t, before, n)
n = n or #t
if not before or before == "<" then return ssup(t, n)
elseif before == ">" then return ssdown(t, n)
else return ssgeneral(t, n, before)
end
end
return shellsort
end</pre>
<h1>Bug 27 - VBScript w/ language specified</h1>
<pre class="prettyprint lang-vb" id="issue27">
Imports System
Class [class]
Shared Sub [shared](ByVal [boolean] As Boolean)
If [boolean] Then
Console.WriteLine("true")
Else
Console.WriteLine("false")
End If
End Sub
End Class
' Comment
‘ Second Line comment with a smart quote _
continued line using VB6 syntax.
Module [module]
Sub Main()
[class].[shared](True)
' This prints out: ".
Console.WriteLine("""")
' This prints out: a"b.
Console.WriteLine("a""b")
' This prints out: a.
Console.WriteLine("a"c)
' This prints out: ".
Console.WriteLine(""""c)
REM an old-style comment
REMOVE(not_a_comment)
End Sub
End Module
Dim d As Date
d = # 8/23/1970 3:45:39AM #
d = # 8/23/1970 #
d = # 3:45:39AM #
d = # 3:45:39 #
d = # 13:45:39 #
d = # 13:45:39PM #
Dim n As Float
n = (0.0, .99F, 1.0E-2D, 1.0E+3D, .5E4, 1E3R, 4D)
Dim i As Integer
i = (0, 123, 45L, &HA0I, &O177S)
</pre>
<h1>Bug 30 - Haskell w/ language specified</h1>
<pre class="prettyprint lang-hs" id="issue30">
-- A comment
Not(--"a comment")
Also.not(--(A.comment))
module Foo(bar) where
import Blah
import BlahBlah(blah)
import Monads(Exception(..), FIO(..),unFIO,handle,runFIO,fixFIO,fio,
write,writeln,HasNext(..),HasOutput(..))
{- nested comments
- don't work {-yet-} -}
instance Thingy Foo where
a = b
data Foo :: (* -> * -> *) -> * > * -> * where
Nil :: Foo a b c
Cons :: a b c -> Foo abc -> Foo a b c
str = "Foo\\Bar"
char = 'x'
Not.A.Char = 'too long' -- Don't barf. Show that 't is a lexical error.
(ident, ident', Fo''o.b'ar)
(0, 12, 0x45, 0xA7, 0o177, 0O377, 0.1, 1.0, 1e3, 0.5E-3, 1.0E+45)
</pre>
<h1>Bug 33 - OCaml and F#</h1>
<pre class="prettyprint lang-ml" id="issue33">
(*
* Print the 10th fibonacci number
*)
//// A line comment
"A string";;
(0, 125, 0xa0, -1.0, 1e6, 1.2e-3);; // number literals
#if fibby
let
rec fib = function (0, a, _) -> a
| (n, a, b) -> fib(n - 1, a + b, a)
in
print_int(fib(10, 1, 1));;
#endif
let zed = 'z'
let f' x' = x' + 1
</pre>
<p>Still TODO: handle nested <code>(* (* comments *) *)</code> properly.</p>
<h1>Bug 42 - Lisp Syntax Highlighting</h1>
<pre class="prettyprint lang-el" id="issue42"
>; -*- mode: lisp -*-
(defun back-six-lines () (interactive) (forward-line -6))
(defun forward-six-lines () (interactive) (forward-line 6))
(global-set-key "\M-l" 'goto-line)
(global-set-key "\C-z" 'advertised-undo)
(global-set-key [C-insert] 'clipboard-kill-ring-save)
(global-set-key [S-insert] 'clipboard-yank)
(global-set-key [C-up] 'back-six-lines)
(global-set-key [C-down] 'forward-six-lines)
(setq visible-bell t)
(setq user-mail-address "foo@bar.com")
(setq default-major-mode 'text-mode)
(setenv "TERM" "emacs")
(c-set-offset 'case-label 2)
(setq c-basic-offset 2)
(setq perl-indent-level 0x2)
(setq delete-key-deletes-forward t)
(setq indent-tabs-mode nil)
;; Text mode
(add-hook 'text-mode-hook
'(lambda ()
(turn-on-auto-fill)
)
)
;; Fundamental mode
(add-hook 'fundamental-mode-hook
'(lambda ()
(turn-on-auto-fill)
)
)
;; Define and cond are keywords in scheme
(define (sqt x) (sqrt-iter 1.0 2.0 x))
</pre>
<h1>Bug 45 - Square brackets in strings</h1>
<pre class="prettyprint" id="issue45">
throw new RuntimeException("Element [" + element.getName() +
"] missing attribute.");
variable++;
</pre>
<h1>Protocol Buffers</h1>
<pre class="prettyprint lang-proto" id="proto"
>message SearchRequest {
required string query = 1;
optional int32 page_number = 2;
optional int32 result_per_page = 3 [default = 10];
enum Corpus {
UNIVERSAL = 0;
WEB = 1;
IMAGES = 2;
LOCAL = 3;
NEWS = 4;
PRODUCTS = 5;
VIDEO = 6;
}
optional Corpus corpus = 4 [default = UNIVERSAL];
}</pre>
<h1>Wiki syntax w/ language specified</h1>
<pre class="prettyprint lang-wiki" id="wiki">
#summary hello world
#labels HelloWorld WikiWord Hiya
[http://www.google.com/?q=WikiSyntax+site:code.google.com WikiSyntax]
Lorem Ipsum `while (1) print("blah blah");`
* Bullet
* Points
* NestedBullet
==DroningOnAndOn==
{{{
// Some EmbeddedSourceCode
void main() {
Print('hello world');
}
}}}
{{{
<!-- Embedded XML -->
<foo bar="baz"><boo /><foo>
}}}
</pre>
<h1>CSS w/ language specified</h1>
<pre class="prettyprint lang-css" id="css">
<!--
@charset('UTF-8');
/** A url that is not quoted. */
@import(url(/more-styles.css));
HTML { content-before: 'hello\20'; content-after: 'w\6f rld';
-moz-spiff: inherit !important }
/* Test units on numbers. */
BODY { margin-bottom: 4px; margin-left: 3in; margin-bottom: 0; margin-top: 5% }
/** Test number literals and quoted values. */
TABLE.foo TR.bar A#visited { color: #001123; font-family: "monospace" }
/** bolder is not a name, so should be plain. !IMPORTANT is a keyword
* regardless of case.
*/
blink { text-decoration: BLINK !IMPORTANT; font-weight: bolder }
/* Empty url() was causing infinite recursion */
a { background-image: url(); }
p#featured{background:#fea}
-->
</pre>
<h1>Issue 79 CSS highlighting</h1>
<pre class="prettyprint" id="issue79">
<style type='text/css'>
/* desert scheme ported from vim to google prettify */
code.prettyprint { display: block; padding: 2px; border: 1px solid #888;
background-color: #333; }
.str { color: #ffa0a0; } /* string - pink */
.kwd { color: #f0e68c; font-weight: bold; }
.com { color: #87ceeb; } /* comment - skyblue */
.typ { color: #98fb98; } /* type - lightgreen */
.lit { color: #cd5c5c; } /* literal - darkred */
.pun { color: #fff; } /* punctuation */
.pln { color: #fff; } /* plaintext */
.tag { color: #f0e68c; font-weight: bold; } /* html/xml tag - lightyellow*/
.atn { color: #bdb76b; font-weight: bold; } /* attribute name - khaki*/
.atv { color: #ffa0a0; } /* attribute value - pink */
.dec { color: #98fb98; } /* decimal - lightgreen */
</style>
</pre>
<h1>Issue 84 NBSPs</h1>
<pre class="prettyprint lang-java" id="issue84">super("&nbsp;");</pre>
<h1>Issue 86</h1>
<p><code class="prettyprint" id="issue86_0">#One
Two words</code></p>
<p><code class="prettyprint known_ie6_failure" id="issue86_1" style="white-space: pre">#One
Two lines</code></p>
<pre class="prettyprint" id="issue86_2">#One
Two lines</pre>
<pre><code class="prettyprint known_ie6_failure" id="issue86_3">#One
Two lines</code></pre>
<xmp class="prettyprint" id="issue86_4">#One
Two lines</xmp>
<p><code class="prettyprint" id="issue86_5">#One<br>
Two lines</code></p>
<h1>Issue 92 -- capital letters in tag names</h1>
<pre class="prettyprint" id="issue92">
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>Simple placemark</name>
<description Lang="en">Attached to the ground. Intelligently places itself
at the height of the underlying terrain.</description>
<Point>
<coordinates>-122.0822035425683,37.42228990140251,0</coordinates>
</Point>
</Placemark>
</kml>
</pre>
<h1>Issue 93 -- C# verbatim strings</h1>
<pre class="prettyprint lang-cs" id="issue93">
// The normal string syntax
string a = "C:\\";
// is equivalent to a verbatim string
string b = @"C:\";
</pre>
<h1>VHDL mode</h1>
<pre class="prettyprint lang-vhdl" id="vhdl">
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
-- A line comment
entity foo_entity is
generic (-- comment after punc
a : natural := 42;
x : real := 16#ab.cd#-3
);
port (
clk_i : in std_logic;
b_i : in natural range 0 to 100;
c_o : out std_logic_vector(5 downto 0);
\a "name"\ : out integer -- extended identifier
);
end entity foo_entity;
architecture foo_architecture of foo_entity is
signal bar_s : std_logic_vector(2 downto 0);
begin
bar_s <= b"101";
dummy_p : process (clk_i)
begin
if b_i = 1 then
c_o <= (others => '0');
elsif rising_edge(clk_i) then
c_o <= "1011" & bar_s(1 downto 0);
end if;
end process dummy_p;
end architecture foo_architecture;
</pre>
<h1>YAML mode</h1>
<pre class="prettyprint lang-yaml" id="yaml1">
application: mirah-lang
version: 1
# Here's a comment
handlers:
- url: /red/*
servlet: mysite.server.TeamServlet
init_params:
teamColor: red
bgColor: "#CC0000"
name: redteam
- url: /blue/*
servlet: mysite.server.TeamServlet
init_params:
teamColor: blue
bgColor: "#0000CC"
name: blueteam
- url: /register/*
jsp: /register/start.jsp
- url: *.special
filter: mysite.server.LogFilterImpl
init_params:
logType: special
</pre>
<pre class="prettyprint lang-yaml" id="yaml2">
%YAML 1.1
---
!!map {
? !!str ""
: !!str "value",
? !!str "explicit key"
: !!str "value",
? !!str "simple key"
: !!str "value",
? !!seq [
!!str "collection",
!!str "simple",
!!str "key"
]
: !!str "value"
}</pre>
<h1>Scala mode</h1>
<pre class="prettyprint lang-scala" id="scala">
/* comment 1 */
/*
comment 2
*/
/* comment / * comment 3 **/
// strings
"Hello, World!", "\n",
`an-identifier`, `\n`,
'A', '\n',
'aSymbol,
"""Hello,
World""", """Hello,\nWorld""",
"""Hello, "World"!""",
"""Hello, \"World\""""
// Numbers
0
0123
0xa0
0XA0L
123
123.45
1.50F
0.50
.50
123e-1
123.45e+1
1.50e2
0.50e-6
.50e+42f
// Values
false, true, null, this;
// Keywords
class MyClass;
import foo.bar;
package baz;
// From scala-lang.org/node/242
def act() {
var pongCount = 0
loop {
react {
case Ping =>
if (pongCount % 1000 == 0)
Console.println("Pong: ping "+pongCount)
sender ! Pong
pongCount = pongCount + 1
case Stop =>
Console.println("Pong: stop")
exit()
}
}
}
</pre>
<h1>Go mode</h1>
<pre class="prettyprint lang-go" id="go">
package main /* Package of which this program is part. */
import fmt "fmt" // Package implementing formatted I/O.
func main() {
fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界\n") // Semicolon inserted here
}
/* " */ "foo /* " /*/ */
/* ` */ `foo /* ` /*/ */
</pre>
<h1>Erlang mode</h1>
<pre class="prettyprint lang-erlang" id="erlang">
% Sample comment
-module(my_test).
-include_lib("my_sample_lib.hrl").
-export([
test/2
]).
%% @doc Define a macro
-define(my_macro, Variable).
%% @doc My function
test(Variables, MoreVariables) ->
% Inline comment
{ok,Scanned,_} = my_lib:do_stuff(),
Variable = fun(V) -> {ok, V} end,
try ?my_macro({value, test}) of
{value, Result, _} ->
{ok, Result}
catch
Type:Error ->
{'error', Type, Error}
end.
</pre>
<h1>Rust mode</h1>
<pre class="prettyprint lang-rust" id="rust">
// Single line comment
/* Multi-line (nesting not highlighted properly, sorry)
comment */
#![feature(code_prettification)]
use std::io::{self, Write};
impl<'a, T: 'a + ?Sized> Foo<'a, 'static> for Bar<'b>
where T: Iterator<Item = Box<Fn() -> u32>> {
fn something(&mut self) -> u32 {
if let Some(ref x) = self.foo("multi li\ne
s\tring") {
panic!(r"\things is going wrong!");
panic!(r#"Things is "really" goig\n wront!"#);
panic!(r##"Raw strings are #"#fancy#"#"##);
}
}
}
pub type CowString<'a> = std::cow::Cow<'a, str>;
fn main() {
let (i, r) = (1u8, 'c');
let s = r#"Take a raw egg,
"break" it (or the line),
and beat it"#;
}
</pre>
Test IE by copy/pasting content here.
<textarea cols="80" rows="40"></textarea>
</body>
<script type="text/javascript">
/**
* maps ids of rewritten code to the expected output.
* For brevity, <span class="foo"> has been changed to `FOO and </span>
* has been changed to `END.
*/
var goldens = {
bash: (
'`COM#!/bin/bash`END`PLN\n' +
'\n' +
'`END`COM# Fibonacci numbers`END`PLN\n' +
'`END`COM# Writes an infinite series to stdout, one entry per line`END' +
'`PLN\n' +
'`END`KWDfunction`END`PLN fib`END`PUN()`END`PLN `END`PUN{`END`PLN\n' +
' `END`KWDlocal`END`PLN a`END`PUN=`END`LIT1`END`PLN\n' +
' `END`KWDlocal`END`PLN b`END`PUN=`END`LIT1`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`KWDtrue`END`PLN `END`PUN;`END' +
'`PLN `END`KWDdo`END`PLN\n' +
' echo $a\n' +
' `END`KWDlocal`END`PLN tmp`END`PUN=`END`PLN$a\n' +
' a`END`PUN=`END`PLN$`END`PUN((`END`PLN $a `END`PUN+`END' +
'`PLN $b `END`PUN))`END`PLN\n' +
' b`END`PUN=`END`PLN$tmp\n' +
' `END`KWDdone`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'`END`COM# output the 10th element of the series and halt`END`PLN\n' +
'fib `END`PUN|`END`PLN head `END`PUN-`END`LIT10`END`PLN `END`PUN|`END' +
'`PLN tail `END`PUN-`END`LIT1`END'),
bash_lang: (
'<ol class="linenums">`#`COM#!/bin/bash`END' +
'`#1`PLN `END' +
'`#2`COM# Fibonacci numbers`END' +
'`#3`COM# Writes an infinite series to stdout, one entry per line`END' +
'`#4`KWDfunction`END`PLN fib`END`PUN()`END`PLN `END`PUN{`END' +
'`#5`PLN `END`KWDlocal`END`PLN a`END`PUN=`END`LIT1`END' +
'`#6`PLN `END`KWDlocal`END`PLN b`END`PUN=`END`LIT1`END' +
'`#7`PLN `END`KWDwhile`END`PLN true `END`PUN;`END' +
'`PLN `END`KWDdo`END' +
'`#8`PLN echo $a`END' +
'`#9`PLN `END`KWDlocal`END`PLN tmp`END`PUN=`END`PLN$a`END' +
'`#0`PLN a`END`PUN=`END`PLN$`END`PUN((`END`PLN $a `END`PUN+`END' +
'`PLN $b `END`PUN))`END' +
'`#1`PLN b`END`PUN=`END`PLN$tmp`END' +
'`#2`PLN `END`KWDdone`END' +
'`#3`PUN}`END' +
'`#4`PLN `END' +
'`#5`COM# output the 10th element of the series and halt`END' +
'`#6`PLNfib `END`PUN|`END`PLN `END`PUN/`END`PLNusr`END`PUN/`END`PLNbin`END' +
'`PUN/*`END`PLNhead `END`PUN-`END`LIT10`END`PLN `END`PUN|`END' +
'`PLN tail `END`PUN-`END`LIT1`END</li></ol>'),
issue_165: (
'`COM# Comment`END`PLN\n' +
'`END`KWDlocal`END`PLN $x `END`PUN=`END`PLN $`END`PUN{#`END`PLNx`END`PUN[@]}`END`PLN `END'
+ '`COM# Previous is not a comment`END`PLN\n' +
'`END`COM# A comment`END'),
C: (
'`COM#include`END`PLN `END`STR<stdio.h>`END`PLN\n' +
'\n' +
'`END`COM/* the n-th fibonacci number.\n' +
' *\/`END`PLN\n' +
'`END`KWDunsigned`END`PLN `END`KWDint`END`PLN fib`END`PUN(`END' +
'`KWDunsigned`END`PLN `END`KWDint`END`PLN n`END`PUN)`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`KWDunsigned`END`PLN `END`KWDint`END`PLN a `END`PUN=`END' +
'`PLN `END`LIT1`END`PUN,`END`PLN b `END`PUN=`END`PLN `END`LIT1`END' +
'`PUN;`END`PLN\n' +
' `END`KWDunsigned`END`PLN `END`KWDint`END`PLN tmp`END`PUN;`END' +
'`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END`PUN>=`END' +
'`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' tmp `END`PUN=`END`PLN a`END`PUN;`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'main`END`PUN()`END`PLN `END`PUN{`END`PLN\n' +
' printf`END`PUN(`END`STR"%u"`END`PUN,`END`PLN fib`END`PUN(`END' +
'`LIT10`END`PUN));`END`PLN\n' +
'`END`PUN}`END'),
C_lang: (
'`COM#include`END`PLN `END`STR<stdio.h>`END`PLN\n' +
'\n' +
'`END`COM/* the n`END<sup>`COMth`END<\/sup>`COM fibonacci number. *\/`END`PLN\n' +
'`END`TYPuint32`END`PLN fib`END`PUN(`END' +
'`KWDunsigned`END`PLN `END`TYPint`END`PLN n`END`PUN)`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`TYPuint32`END`PLN a `END`PUN=`END`PLN `END`LIT1`END`PUN,`END' +
'`PLN b `END`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN\n' +
' `END`TYPuint32`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END`PUN>=`END' +
'`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' tmp `END`PUN=`END`PLN a`END`PUN;`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'`END`KWDvoid`END`PLN main`END`PUN()`END`PLN `END`PUN{`END`PLN\n' +
' `END`TYPsize_t`END`PLN size `END`PUN=`END`PLN `END`KWDsizeof`END' +
'`PUN(`END`TYPwchar_t`END`PUN);`END`PLN\n' +
' ASSERT_EQ`END`PUN(`END`PLNsize`END`PUN,`END`PLN `END`LIT1`END' +
'`PUN);`END`PLN\n' +
' printf`END`PUN(`END`STR"%u"`END`PUN,`END`PLN fib`END`PUN(`END' +
'`LIT10`END`PUN));`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'`END`COM#define`END`PLN ZERO `END`LIT0`END`PLN `END`COM/* a\n' +
' multiline comment *\/`END'),
Cpp: (
'`COM#include`END`PLN `END`STR<iostream>`END`PLN\n' +
'\n' +
'`END`KWDusing`END`PLN `END`KWDnamespace`END`PLN std`END`PUN;`END' +
'`PLN\n' +
'\n' +
'`END`COM//! fibonacci numbers with gratuitous use of templates.`END' +
'`PLN\n' +
'`END`COM//! \\param n an index into the fibonacci series`END`PLN\n' +
'`END`COM//! \\param fib0 element 0 of the series`END`PLN\n' +
'`END`COM//! \\return the nth element of the fibonacci series`END' +
'`PLN\n' +
'`END`KWDtemplate`END`PLN `END`PUN<`END`KWDclass`END`PLN T`END' +
'`PUN>`END`PLN\n' +
'T fib`END`PUN(`END`KWDunsigned`END`PLN `END`KWDint`END`PLN n`END' +
'`PUN,`END`PLN `END`KWDconst`END`PLN T`END`PUN&`END`PLN fib0' +
'`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' T a`END`PUN(`END`PLNfib0`END`PUN),`END`PLN b`END`PUN(`END' +
'`PLNfib0`END`PUN);`END`PLN\n' +
' `END`KWDfor`END`PLN `END`PUN(;`END`PLN n`END`PUN;`END' +
'`PLN `END`PUN--`END`PLNn`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' T tmp`END`PUN(`END`PLNa`END`PUN);`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'`END`KWDint`END`PLN main`END`PUN(`END`KWDint`END`PLN argc`END' +
'`PUN,`END`PLN `END`KWDchar`END`PLN `END`PUN**`END`PLNargv`END' +
'`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' cout `END`PUN<<`END`PLN fib`END`PUN(`END`LIT10`END' +
'`PUN,`END`PLN `END`LIT1U`END`PUN);`END`PLN\n' +
'`END`PUN}`END'),
Cpp_lang: (
'`COM#include`END`PLN `END`STR<iostream>`END`PLN\n' +
'\n' +
'`END`KWDusing`END`PLN `END`KWDnamespace`END`PLN std`END`PUN;`END' +
'`PLN\n' +
'\n' +
'`END`COM//! fibonacci numbers with gratuitous use of templates.`END' +
'`PLN\n' +
'`END`COM//! \\param n an index into the fibonacci series`END`PLN\n' +
'`END`COM//! \\param fib0 element 0 of the series`END`PLN\n' +
'`END`COM//! \\return the nth element of the fibonacci series`END' +
'`PLN\n' +
'`END`KWDtemplate`END`PLN `END`PUN<`END`KWDclass`END`PLN T`END' +
'`PUN>`END`PLN\n' +
'T fib`END`PUN(`END`TYPint`END`PLN n`END' +
'`PUN,`END`PLN `END`KWDconst`END`PLN T`END`PUN&`END`PLN fib0' +
'`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' T a`END`PUN(`END`PLNfib0`END`PUN),`END`PLN b`END`PUN(`END' +
'`PLNfib0`END`PUN);`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END`PUN>=`END' +
'`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' T tmp`END`PUN(`END`PLNa`END`PUN);`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'`END`TYPint`END`PLN main`END`PUN(`END`TYPint`END`PLN argc`END' +
'`PUN,`END`PLN `END`KWDchar`END`PLN `END`PUN**`END`PLNargv`END' +
'`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' cout `END`PUN<<`END`PLN fib`END`PUN(`END`LIT10`END' +
'`PUN,`END`PLN `END`LIT1U`END`PUN);`END`PLN\n' +
'`END`PUN}`END'),
java: (
'`KWDpackage`END`PLN foo`END`PUN;`END`PLN\n' +
'\n' +
'`END`KWDimport`END`PLN java`END`PUN.`END`PLNutil`END`PUN.`END' +
'`TYPIterator`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM/**\n' +
' * the fibonacci series implemented as an Iterable.\n' +
' *\/`END`PLN\n' +
'`END`KWDpublic`END`PLN `END`KWDfinal`END`PLN `END`KWDclass`END' +
'`PLN `END`TYPFibonacci`END`PLN `END`KWDimplements`END`PLN `END' +
'`TYPIterable`END`PUN<`END`TYPInteger`END`PUN>`END`PLN `END`' +
'PUN{`END`PLN\n' +
' `END' +
'`COM/** the next and previous members of the series. *\/`END' +
'`PLN\n' +
' `END`KWDprivate`END`PLN `END`KWDint`END`PLN a `END`PUN=`END' +
'`PLN `END`LIT1`END`PUN,`END`PLN b `END`PUN=`END`PLN `END`LIT1`END' +
'`PUN;`END`PLN\n' +
'\n' +
' `END`LIT@Override`END`PLN\n' +
' `END`KWDpublic`END`PLN `END`TYPIterator`END`PUN<`END' +
'`TYPInteger`END`PUN>`END`PLN iterator`END`PUN()`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`KWDreturn`END`PLN `END`KWDnew`END`PLN `END' +
'`TYPIterator`END`PUN<`END`TYPInteger`END`PUN>()`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`COM/** the series is infinite. *\/`END' +
'`PLN\n' +
' `END`KWDpublic`END`PLN `END`KWDboolean`END' +
'`PLN hasNext`END`PUN()`END`PLN `END`PUN{`END`PLN `END' +
'`KWDreturn`END`PLN `END`KWDtrue`END`PUN;`END`PLN `END`PUN}`END' +
'`PLN\n' +
' `END`KWDpublic`END`PLN `END`TYPInteger`END' +
'`PLN `END`KWDnext`END`PUN()`END`PLN `END`PUN{`END`PLN\n' +
' `END`KWDint`END`PLN tmp `END`PUN=`END' +
'`PLN a`END`PUN;`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END' +
'`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END' +
'`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END' +
'`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDpublic`END`PLN `END`KWDvoid`END' +
'`PLN remove`END`PUN()`END`PLN `END`PUN{`END`PLN `END`KWDthrow`END' +
'`PLN `END`KWDnew`END`PLN `END' +
'`TYPUnsupportedOperationException`END`PUN();`END`PLN `END' +
'`PUN}`END`PLN\n' +
' `END`PUN};`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
'\n' +
' `END`COM/**\n' +
' * the n<sup>th</sup> element of the given ' +
'series.\n' +
' * @throws NoSuchElementException if there are less than ' +
'n elements in the\n' +
' * given Iterable\'s {@link Iterable#iterator ' +
'iterator}.\n' +
' *\/`END`PLN\n' +
' `END`KWDpublic`END`PLN `END`KWDstatic`END`PLN `END' +
'`PUN<`END`PLNT`END`PUN>`END`PLN\n' +
' T nth`END`PUN(`END`KWDint`END`PLN n`END`PUN,`END`PLN `END' +
'`TYPIterable`END`PUN<`END`PLNT`END`PUN>`END' +
'`PLN iterable`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' `END`TYPIterator`END`PUN<?`END`PLN `END' +
'`KWDextends`END`PLN T`END`PUN>`END`PLN it `END`PUN=`END' +
'`PLN iterable`END`PUN.`END`PLNiterator`END`PUN();`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END' +
'`PUN>`END`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' it`END`PUN.`END`KWDnext`END`PUN();`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN it`END`PUN.`END`KWDnext`END' +
'`PUN();`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
'\n' +
' `END`KWDpublic`END`PLN `END`KWDstatic`END`PLN `END`KWDvoid`END' +
'`PLN main`END`PUN(`END`TYPString`END`PUN[]`END`PLN args`END' +
'`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' `END`TYPSystem`END`PUN.`END`KWDout`END`PUN.`END' +
'`KWDprint`END`PUN(`END`PLNnth`END`PUN(`END`LIT10`END`PUN,`END' +
'`PLN `END`KWDnew`END`PLN `END`TYPFibonacci`END`PUN()));`END' +
'`PLN\n' +
' `END`PUN}`END`PLN\n' +
'`END`PUN}`END'),
java_lang: (
'<ol class="linenums"><li class="L1" value="12">' +
'`KWDpackage`END`PLN foo`END`PUN;`END' +
'`#2`PLN `END' +
'`#3`KWDimport`END`PLN java`END`PUN.`END`PLNutil`END`PUN.`END' +
'`TYPIterator`END`PUN;`END' +
'`#4`PLN `END' +
'`#5`COM/**`END' +
'`#6`COM * the fibonacci series implemented as an Iterable.`END' +
'`#7`COM *\/`END' +
'`#8`KWDpublic`END`PLN `END`KWDfinal`END`PLN `END`KWDclass`END' +
'`PLN `END`TYPFibonacci`END`PLN `END`KWDimplements`END`PLN `END' +
'`TYPIterable`END`PUN<`END`TYPInteger`END`PUN>`END`PLN `END`' +
'PUN{`END' +
'`#9`PLN `END' +
'`COM/** the next and previous members of the series. *\/`END' +
'' +
'`#0`PLN `END`KWDprivate`END`PLN `END`KWDint`END`PLN a `END`PUN=`END' +
'`PLN `END`LIT1`END`PUN,`END`PLN b `END`PUN=`END`PLN `END`LIT1`END' +
'`PUN;`END' +
'`#1`PLN `END' +
'`#2`PLN `END`LIT@Override`END' +
'`#3`PLN `END`KWDpublic`END`PLN `END`TYPIterator`END`PUN<`END' +
'`TYPInteger`END`PUN>`END`PLN iterator`END`PUN()`END`PLN `END' +
'`PUN{`END' +
'`#4`PLN `END`KWDreturn`END`PLN `END`KWDnew`END`PLN `END' +
'`TYPIterator`END`PUN<`END`TYPInteger`END`PUN>()`END`PLN `END' +
'`PUN{`END' +
'`#5`PLN `END`COM/** the series is infinite. *\/`END' +
'' +
'`#6`PLN `END`KWDpublic`END`PLN `END`KWDboolean`END' +
'`PLN hasNext`END`PUN()`END`PLN `END`PUN{`END`PLN `END' +
'`KWDreturn`END`PLN `END`KWDtrue`END`PUN;`END`PLN `END`PUN}`END' +
'' +
'`#7`PLN `END`KWDpublic`END`PLN `END`TYPInteger`END' +
'`PLN next`END`PUN()`END`PLN `END`PUN{`END' +
'`#8`PLN `END`KWDint`END`PLN tmp `END`PUN=`END' +
'`PLN a`END`PUN;`END' +
'`#9`PLN a `END`PUN+=`END`PLN b`END`PUN;`END' +
'' +
'`#0`PLN b `END`PUN=`END`PLN tmp`END`PUN;`END' +
'' +
'`#1`PLN `END`KWDreturn`END`PLN a`END`PUN;`END' +
'' +
'`#2`PLN `END`PUN}`END' +
'`#3`PLN `END`KWDpublic`END`PLN `END`KWDvoid`END' +
'`PLN remove`END`PUN()`END`PLN `END`PUN{`END`PLN `END`KWDthrow`END' +
'`PLN `END`KWDnew`END`PLN `END' +
'`TYPUnsupportedOperationException`END`PUN();`END`PLN `END' +
'`PUN}`END' +
'`#4`PLN `END`PUN};`END' +
'`#5`PLN `END`PUN}`END' +
'`#6`PLN `END' +
'`#7`PLN `END`COM/**`END' +
'`#8`COM * the n<sup>th</sup> element of the given ' +
'series.`END' +
'`#9`COM * @throws NoSuchElementException if there are less than ' +
'n elements in the`END' +
'`#0`COM * given Iterable\'s {@link Iterable#iterator ' +
'iterator}.`END' +
'`#1`COM *\/`END' +
'`#2`PLN `END`KWDpublic`END`PLN `END`KWDstatic`END`PLN `END' +
'`PUN<`END`PLNT`END`PUN>`END' +
'`#3`PLN T nth`END`PUN(`END`KWDint`END`PLN n`END`PUN,`END`PLN `END' +
'`TYPIterable`END`PUN<`END`PLNT`END`PUN>`END' +
'`PLN iterable`END`PUN)`END`PLN `END`PUN{`END' +
'`#4`PLN `END`TYPIterator`END`PUN<?`END`PLN `END' +
'`KWDextends`END`PLN T`END`PUN>`END`PLN in `END`PUN=`END' +
'`PLN iterable`END`PUN.`END`PLNiterator`END`PUN();`END' +
'`#5`PLN `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END' +
'`PUN>`END`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END' +
'`#6`PLN in`END`PUN.`END`PLNnext`END`PUN();`END' +
'`#7`PLN `END`PUN}`END' +
'`#8`PLN `END`KWDreturn`END`PLN in`END`PUN.`END`PLNnext`END' +
'`PUN();`END' +
'`#9`PLN `END`PUN}`END' +
'`#0`PLN `END' +
'`#1`PLN `END`KWDpublic`END`PLN `END`KWDstatic`END`PLN `END`KWDvoid`END' +
'`PLN main`END`PUN(`END`TYPString`END`PUN[]`END`PLN args`END' +
'`PUN)`END`PLN `END`PUN{`END' +
'`#2`PLN `END`TYPSystem`END`PUN.`END`PLNout`END`PUN.`END' +
'`PLNprint`END`PUN(`END`PLNnth`END`PUN(`END`LIT10`END`PUN,`END' +
'`PLN `END`KWDnew`END`PLN `END`TYPFibonacci`END`PUN()));`END' +
'' +
'`#3`PLN `END`PUN}`END' +
'`#4`PUN}`END' +
'`#5`PLN `END' +
'`#6`PUN#`END`PLN not a java comment`END' +
'`#7`PUN#`END`PLN not keywords`END`PUN:`END' +
'`PLN static_cast and namespace`END</li></ol>'),
javascript: (
'`COM/**\n' +
' * nth element in the fibonacci series.\n' +
' * @param n >= 0\n' +
' * @return the nth element, >= 0.\n' +
' *\/`END`PLN\n' +
'`END`KWDfunction`END`PLN fib`END`PUN(`END`PLNn`END`PUN)`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`KWDvar`END`PLN a `END`PUN=`END`PLN `END`LIT1`END`PUN,`END' +
'`PLN b `END`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN\n' +
' `END`KWDvar`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END`PUN>=`END' +
'`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' tmp `END`PUN=`END`PLN a`END`PUN;`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'document`END`PUN.`END`PLNwrite`END`PUN(`END`PLNfib`END`PUN(`END' +
'`LIT10`END`PUN));`END'),
perl: (
'`COM#!/usr/bin/perl`END`PLN\n' +
'\n' +
'`END`KWDuse`END`PLN strict`END`PUN;`END`PLN\n' +
'`END`KWDuse`END`PLN integer`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM# the nth element of the fibonacci series`END`PLN\n' +
'`END`COM# param n - an int >= 0`END`PLN\n' +
'`END`COM# return an int >= 0`END`PLN\n' +
'`END`KWDsub`END`PLN fib`END`PUN(`END`PLN$`END`PUN)`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`KWDmy`END`PLN $n `END`PUN=`END`PLN shift`END`PUN,`END`PLN ' +
'$a `END`PUN=`END`PLN `END`LIT1`END`PUN,`END`PLN $b `END' +
'`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN\n' +
' `END`PUN(`END`PLN$a`END`PUN,`END`PLN $b`END`PUN)`END' +
'`PLN `END`PUN=`END`PLN `END`PUN(`END`PLN$a `END`PUN+`END' +
'`PLN $b`END`PUN,`END`PLN $a`END`PUN)`END`PLN `END`KWDuntil`END' +
'`PLN `END`PUN(--`END`PLN$n `END`PUN<`END`PLN `END`LIT0`END' +
'`PUN);`END`PLN\n' +
' `END`KWDreturn`END`PLN $a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'`END`KWDprint`END`PLN fib`END`PUN(`END`LIT10`END`PUN);`END'),
python: (
'`COM#!/usr/bin/python2.4`END`PLN\n' +
'\n' +
'`END`KWDdef`END`PLN fib`END`PUN():`END`PLN\n' +
' `END`STR\'\'\'\n' +
' a generator that produces the elements of the fibonacci series' +
'\n' +
' \'\'\'`END`PLN\n' +
'\n' +
' a `END`PUN=`END`PLN `END`LIT1`END`PLN\n' +
' b `END`PUN=`END`PLN `END`LIT1`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`KWDTrue`END`PUN:`END`PLN\n' +
' a`END`PUN,`END`PLN b `END`PUN=`END`PLN a `END`PUN+`END' +
'`PLN b`END`PUN,`END`PLN a\n' +
' `END`KWDyield`END`PLN a\n' +
'\n' +
'`END`KWDdef`END`PLN nth`END`PUN(`END`PLNseries`END`PUN,`END`PLN n`END' +
'`PUN):`END`PLN\n' +
' `END`STR\'\'\'\n' +
' returns the nth element of a series,\n' +
' consuming the earlier elements of the series\n' +
' \'\'\'`END`PLN\n' +
'\n' +
' `END`KWDfor`END`PLN x `END`KWDin`END`PLN series`END`PUN:`END' +
'`PLN\n' +
' n `END`PUN=`END`PLN n `END`PUN-`END`PLN `END`LIT1`END' +
'`PLN\n' +
' `END`KWDif`END`PLN n `END`PUN<=`END`PLN `END' +
'`LIT0`END`PUN:`END`PLN `END`KWDreturn`END`PLN x\n' +
'\n' +
'`END`KWDprint`END`PLN nth`END`PUN(`END`PLNfib`END`PUN(),`END`PLN `END' +
'`LIT10`END`PUN)`END'),
python_lang: (
'`COM#!/usr/bin/python2.4`END`PLN\n' +
'\n' +
'`END`KWDdef`END`PLN fib`END`PUN():`END`PLN\n' +
' `END`STR\'\'\'\n' +
' a generator that produces the fibonacci series\'s elements' +
'\n' +
' \'\'\'`END`PLN\n' +
'\n' +
' a `END`PUN=`END`PLN `END`LIT1`END`PLN\n' +
' b `END`PUN=`END`PLN `END`LIT1`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`KWDTrue`END`PUN:`END`PLN\n' +
' a`END`PUN,`END`PLN b `END`PUN=`END`PLN a `END`PUN+`END' +
'`PLN b`END`PUN,`END`PLN a\n' +
' `END`KWDyield`END`PLN a\n' +
'\n' +
'`END`KWDdef`END`PLN nth`END`PUN(`END`PLNseries`END`PUN,`END`PLN n`END' +
'`PUN):`END`PLN\n' +
' `END`STR\'\'\'\n' +
' returns the nth element of a series,\n' +
' consuming the series\' earlier elements.\n' +
' \'\'\'`END`PLN\n' +
'\n' +
' `END`KWDfor`END`PLN x `END`KWDin`END`PLN series`END`PUN:`END' +
'`PLN\n' +
' n `END`PUN-=`END`PLN `END`LIT1`END' +
'`PLN\n' +
' `END`KWDif`END`PLN n `END`PUN<=`END`PLN `END' +
'`LIT0`END`PUN:`END`PLN `END`KWDreturn`END`PLN x\n' +
'\n' +
'`END`KWDprint`END`PLN nth`END`PUN(`END`PLNfib`END`PUN(),`END`PLN `END' +
'`LIT10`END`PUN)`END`PLN\n' +
'\n' +
'`END`PUN/*`END`PLN `END`KWDnot`END`PLN a comment `END`KWDand`END' +
'`PLN `END`KWDnot`END`PLN keywords`END`PUN:`END' +
'`PLN null char true `END`PUN*\/`END'),
sql_lang: (
'`COM/* A multi-line\n' +
' * comment *\/`END`PLN\n' +
'`END`STR\'Another string /* Isn\\\'t a comment\'`END`PUN,`END`PLN\n' +
'`END`STR"A string *\/"`END`PLN\n' +
'`END`COM-- A line comment`END`PLN\n' +
'`END`KWDSELECT`END`PLN `END`PUN*`END`PLN `END`KWDFROM`END' +
'`PLN users `END`KWDWHERE`END`PLN id `END`KWDIN`END`PLN `END' +
'`PUN(`END`LIT1`END`PUN,`END`PLN `END`LIT2.0`END`PUN,`END`PLN `END' +
'`LIT+30e-1`END`PUN);`END`PLN\n' +
'`END`COM-- keywords are case-insensitive.`END`PLN\n' +
'`END`COM-- Note: user-table is a single identifier, not a pair of' +
' keywords`END`PLN\n' +
'`END`KWDselect`END`PLN `END`PUN*`END`PLN `END`KWDfrom`END' +
'`PLN user-table `END`KWDwhere`END`PLN id `END`KWDin`END`PLN `END' +
'`PUN(`END`PLNx`END`PUN,`END`PLN y`END`PUN,`END`PLN z`END`PUN);`END'
),
xml: (
'`DEC<!DOCTYPE series PUBLIC "fibonacci numbers">`END`PLN\n' +
'\n' +
'`END`TAG<series.root`END`PLN `END`ATNbase`END`PUN=`END' +
'`ATV"1"`END`PLN `END' +
'`ATNstep`END`PUN=`END`ATV"s(n-2) + s(n-1)"`END`TAG>`END' +
'`PLN\n' +
' `END`TAG<element`END`PLN `END`ATNi`END`PUN=`END' +
'`ATV"0"`END' +
'`TAG>`END`PLN1`END`TAG</element>`END' +
'`PLN\n' +
' `END`TAG<element`END`PLN `END`ATNi`END`PUN=`END' +
'`ATV"1"`END' +
'`TAG>`END`PLN1`END`TAG</element>`END' +
'`PLN\n' +
' `END`TAG<element`END`PLN `END`ATNi`END`PUN=`END' +
'`ATV"2"`END' +
'`TAG>`END`PLN2`END`TAG</element>`END' +
'`PLN\n' +
' `END`TAG<element`END`PLN `END`ATNi`END`PUN=`END' +
'`ATV"3"`END' +
'`TAG>`END`PLN3`END`TAG</element>`END' +
'`PLN\n' +
' `END`TAG<element`END`PLN `END`ATNi`END`PUN=`END' +
'`ATV"4"`END' +
'`TAG>`END`PLN5`END`TAG</element>`END' +
'`PLN\n' +
' `END`TAG<element`END`PLN `END`ATNi`END`PUN=`END' +
'`ATV"5"`END' +
'`TAG>`END`PLN8`END`TAG</element>`END' +
'`PLN\n' +
' ...\n' +
'`END`TAG</series.root>`END'),
html: (
'`TAG<html>`END`PLN\n' +
' `END`TAG<head>`END`PLN\n' +
' `END`TAG<title>`END`PLNFibonacci number`END' +
'`TAG</title>`END`PLN\n' +
' `END`TAG<style>`END`COM<!--`END' +
'`PLN BODY `END`PUN{`END`PLN `END`KWDtext-decoration`END`PUN:`END' +
'`PLN blink `END`PUN}`END`PLN `END`COM-->`END`TAG</' +
'style>`END`PLN\n' +
' `END`TAG<script`END`PLN `END`ATNsrc`END`PUN=`END' +
'`ATV"foo.js"`END`TAG></script>`END`PLN\n' +
' `END`TAG<script`END`PLN `END`ATNsrc`END`PUN=`END' +
'`ATV"bar.js"`END`TAG></script>`END`PLN\n' +
' `END`TAG</head>`END`PLN\n' +
' `END`TAG<body>`END`PLN\n' +
' `END`TAG<noscript>`END`PLN\n' +
' `END`TAG<dl>`END`PLN\n' +
' `END`TAG<dt>`END' +
'`PLNFibonacci numbers`END`TAG</dt>`END' +
'`PLN\n' +
' `END`TAG<dd>`END`PLN1`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN1`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN2`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN3`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN5`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN8`END' +
'`TAG</dd>`END`PLN\n' +
' &hellip;\n' +
' `END`TAG</dl>`END`PLN\n' +
' `END`TAG</noscript>`END`PLN\n' +
'\n' +
' `END`TAG<script`END`PLN `END`ATNtype`END`PUN=`END' +
'`ATV"text/javascript"`END`TAG>`END`PUN<!--`END`PLN\n' +
'`END`KWDfunction`END`PLN fib`END`PUN(`END`PLNn`END`PUN)`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`KWDvar`END`PLN a `END`PUN=`END`PLN `END`LIT1`END`PUN,`END' +
'`PLN b `END`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN\n' +
' `END`KWDvar`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END`PUN>=`END' +
'`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' tmp `END`PUN=`END`PLN a`END`PUN;`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'document`END`PUN.`END`PLNwriteln`END`PUN(`END`PLNfib`END`PUN(`END' +
'`LIT10`END`PUN));`END`PLN\n' +
'`END`COM// -->`END`PLN\n' +
' `END`TAG</script>`END`PLN\n' +
' `END`TAG</body>`END`PLN\n' +
'`END`TAG</html>`END'),
html_lang: (
'`PLNFibonacci Numbers\n' +
'\n' +
'`END`TAG<noscript>`END`PLN\n' +
' `END`TAG<dl`END`PLN `END`ATNstyle`END`PUN=`END' +
'`ATV"`END`KWDlist-style`END`PUN:`END`PLN disc`END`ATV"`END' +
'`TAG>`END`PLN\n' +
' `END`TAG<dt>`END' +
'`PLNFibonacci numbers`END`TAG</dt>`END`PLN\n' +
' `END`TAG<dd>`END`PLN1`END`TAG</dd>`END' +
'`PLN\n' +
' `END`TAG<dd>`END`PLN1`END`TAG</dd>`END' +
'`PLN\n' +
' `END`TAG<dd>`END`PLN2`END`TAG</dd>`END' +
'`PLN\n' +
' `END`TAG<dd>`END`PLN3`END`TAG</dd>`END' +
'`PLN\n' +
' `END`TAG<dd>`END`PLN5`END`TAG</dd>`END' +
'`PLN\n' +
' `END`TAG<dd>`END`PLN8`END`TAG</dd>`END' +
'`PLN\n' +
' &hellip;\n' +
' `END`TAG</dl>`END`PLN\n' +
'`END`TAG</noscript>`END`PLN\n' +
'\n' +
'`END`TAG<script`END`PLN `END`ATNtype`END`PUN=`END' +
'`ATV"text/javascript"`END`TAG>`END`PUN<!--`END`PLN\n' +
'`END`KWDfunction`END`PLN fib`END`PUN(`END`PLNn`END`PUN)`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`KWDvar`END`PLN a `END`PUN=`END`PLN `END`LIT1`END`PUN,`END' +
'`PLN b `END`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN\n' +
' `END`KWDvar`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END`PUN>=`END' +
'`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' tmp `END`PUN=`END`PLN a`END`PUN;`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'document`END`PUN.`END`PLNwriteln`END`PUN(`END`PLNfib`END`PUN(`END' +
'`LIT10`END`PUN));`END`PLN\n' +
'`END`COM// -->`END`PLN\n' +
'`END`TAG</script>`END'),
htmlXmp: (
'`TAG<html>`END`PLN\n' +
' `END`TAG<head>`END`PLN\n' +
' `END`TAG<title>`END`PLNFibonacci number`END' +
'`TAG</title>`END`PLN\n' +
' `END`TAG</head>`END`PLN\n' +
' `END`TAG<body>`END`PLN\n' +
' `END`TAG<noscript>`END`PLN\n' +
' `END`TAG<dl>`END`PLN\n' +
' `END`TAG<dt>`END' +
'`PLNFibonacci numbers`END`TAG</dt>`END`PLN\n' +
' `END`TAG<dd>`END`PLN1`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN1`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN2`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN3`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN5`END' +
'`TAG</dd>`END`PLN\n' +
' `END`TAG<dd>`END`PLN8`END' +
'`TAG</dd>`END`PLN\n' +
' &hellip;\n' +
' `END`TAG</dl>`END`PLN\n' +
' `END`TAG</noscript>`END`PLN\n' +
'\n' +
' `END`TAG<script`END`PLN `END`ATNtype`END`PUN=`END' +
'`ATV"text/javascript"`END`TAG>`END`PUN<!--`END`PLN\n' +
'`END`KWDfunction`END`PLN fib`END`PUN(`END`PLNn`END`PUN)`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`KWDvar`END`PLN a `END`PUN=`END`PLN `END`LIT1`END`PUN,`END' +
'`PLN b `END`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN\n' +
' `END`KWDvar`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END`PUN>=`END' +
'`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' tmp `END`PUN=`END`PLN a`END`PUN;`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'document`END`PUN.`END`PLNwriteln`END`PUN(`END`PLNfib`END`PUN(`END' +
'`LIT10`END`PUN));`END`PLN\n' +
'`END`COM// -->`END`PLN\n' +
' `END`TAG</script>`END`PLN\n' +
' `END`TAG</body>`END`PLN\n' +
'`END`TAG</html>`END'),
xhtml: (
'`TAG<xhtml>`END`PLN\n' +
' `END`TAG<head>`END`PLN\n' +
' `END`TAG<title>`END' +
'`PLNFibonacci number`END`TAG</title>`END' +
'`PLN\n' +
' `END`TAG</head>`END`PLN\n' +
' `END`TAG<body`END`PLN `END`ATNonload`END`PUN=`END' +
'`ATV"`END`PLNalert`END`PUN(`END`PLNfib`END`PUN(`END`LIT10`END' +
'`PUN))`END`ATV"`END`TAG>`END`PLN\n' +
' `END`TAG<script`END`PLN `END`ATNtype`END' +
'`PUN=`END`ATV"text/javascript"`END`TAG>`END' +
'`PUN<![`END`PLNCDATA`END`PUN[`END`PLN\n' +
'`END`KWDfunction`END`PLN fib`END`PUN(`END`PLNn`END`PUN)`END`PLN `END' +
'`PUN{`END`PLN\n' +
' `END`KWDvar`END`PLN a `END`PUN=`END`PLN `END`LIT1`END`PUN,`END' +
'`PLN b `END`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN\n' +
' `END`KWDvar`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END`PLNn `END`PUN>=`END' +
'`PLN `END`LIT0`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' tmp `END`PUN=`END`PLN a`END`PUN;`END`PLN\n' +
' a `END`PUN+=`END`PLN b`END`PUN;`END`PLN\n' +
' b `END`PUN=`END`PLN tmp`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDreturn`END`PLN a`END`PUN;`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'`END`PUN]]>`END`PLN\n' +
' `END`TAG</script>`END`PLN\n' +
' `END`TAG</body>`END`PLN\n' +
'`END`TAG</xhtml>`END'),
PHP: (
'`TAG<html>`END`PLN\n' +
' `END`TAG<head>`END`PLN\n' +
' `END`TAG<title>`END`PUN<?=`END' +
'`PLN `END' +
'`STR\'Fibonacci numbers\'`END`PLN `END' +
'`PUN?>`END`TAG</title>`END`PLN\n' +
'\n' +
' `END`PUN<?`END`PLNphp\n' +
' `END`COM// PHP has a plethora of comment types' +
'`END`PLN\n' +
' `END`COM\/* What is a\n' +
' "plethora"? *\/`END`PLN\n' +
' `END`KWDfunction`END`PLN fib`END`PUN(`END' +
'`PLN$n`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' `END`COM# I don\'t know.`END`PLN\n' +
' $a `END`PUN=`END`PLN `END`LIT1`END' +
'`PUN;`END`PLN\n' +
' $b `END`PUN=`END`PLN `END`LIT1`END' +
'`PUN;`END`PLN\n' +
' `END`KWDwhile`END`PLN `END`PUN(--`END' +
'`PLN$n `END`PUN>=`END`PLN `END`LIT0`END`PUN)`END`PLN `END' +
'`PUN{`END`PLN\n' +
' echo `END`STR"$a\\n"`END`PUN;`END' +
'`PLN\n' +
' $tmp `END`PUN=`END`PLN $a`END' +
'`PUN;`END`PLN\n' +
' $a `END`PUN+=`END`PLN $b`END' +
'`PUN;`END`PLN\n' +
' $b `END`PUN=`END`PLN $tmp`END' +
'`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`PUN?>`END`PLN\n' +
' `END`TAG</head>`END`PLN\n' +
' `END`TAG<body>`END`PLN\n' +
' `END`PUN<?=`END`PLN fib`END' +
'`PUN(`END`LIT10`END`PUN)`END`PLN `END`PUN?>`END`PLN\n' +
' `END`TAG</body>`END`PLN\n' +
'`END`TAG</html>`END'),
xsl: (
'`COM<!-- Test elements and attributes with namespaces -->' +
'`END`PLN\n' +
'\n' +
'`END`TAG<xsl:stylesheet`END`PLN `END`ATNxml:lang`END' +
'`PUN=`END`ATV"en"`END`TAG>`END`PLN\n' +
' `END`TAG<xsl:template`END' +
'`PLN `END`ATNmatch`END`PUN=`END`ATV"."`END' +
'`TAG>`END`PLN\n' +
' `END`TAG<xsl:text>`END' +
'`PLNHello World`END' +
'`TAG</xsl:text>`END`PLN\n' +
' `END`TAG</xsl:template>`END`PLN\n' +
'`END`TAG</xsl:stylesheet>`END'
),
whitespace: '',
misc1: '`COM// ends with line comment token`END`PLN\n' +
'`END`COM//`END',
issue4: (
'`TAG<script`END`PLN `END' +
'`ATNtype`END`PUN=`END`ATV"text/javascript"`END' +
'`TAG>`END`PLN\n' +
' var savedTarget=null' +
'; ' +
' // The target ' +
'layer (effectively vidPane)\n' +
' var orgCursor=null' +
'; ' +
' // The ' +
'original mouse style so we can restore it\n' +
' var dragOK=false' +
'; ' +
' ' +
'// True if we\'re allowed to move the element under mouse' +
'\n' +
' var dragXoffset=0' +
'; ' +
' ' +
'// How much we\'ve moved the element on the horozontal' +
'\n' +
' var dragYoffset=0' +
'; ' +
' ' +
'// How much we\'ve moved the element on the verticle' +
'\n' +
' vidPaneID = document.' +
'getElementById(\'vidPane\');' +
' // Our movable layer\n' +
' vidPaneID.style.top' +
'=\'75px\'; ' +
' // ' +
'Starting location horozontal\n' +
' vidPaneID.style.left' +
'=\'75px\'; ' +
' // ' +
'Starting location verticle\n' +
'`END`TAG<script>`END'),
issue8:
(
'<b>`PLNone`END</b>`PLN\t`END<b>`TYPTwo`END</b>`PLN' +
'\t`END<b>`PLNthree`END</b>`PLN\t`END`TYPFour' +
'`END`PLN\t`END<b>`PLNfive`END</b>`PLN\t' +
'`END`PUN|`END`PLN\n' +
'`END`TYPSix`END`PLN\t`END<b>`PLNseven`END</b>`PLN\t' +
'`END`TYPEight`END`PLN\tnine\t`END`TYPTen`END' +
'`PLN\t`END`PUN|`END`PLN\n' +
'`END<b>`PLNeleven`END</b>`PLN\t`END`TYPTwelve`END`PLN\t`END' +
'<b>`PLNthirteen`END</b>`PLN\t`END' +
'`TYPFourteen`END`PLN\tfifteen\t`END`' +
'PUN|`END'),
issue12: (
'`STR/foo/`END`PUN;`END`PLN `END`COM// a slash starting a line ' +
'treated as a regexp beginning`END`PLN\n' +
'`END`STR"foo"`END`PUN.`END`PLNmatch`END`PUN(`END`STR/fo+$/`END' +
'`PUN);`END`PLN\n' +
'`END`COM// this line comment not treated as a regular expressions`END' +
'`PLN\n' +
'`END`STR"foo /bar/"`END`PUN.`END`PLNtest`END`PUN(`END`STR/"baz"/`END' +
'`PUN);`END`PLN `END`COM// test string and regexp boundaries' +
'`END`PLN\n' +
'`END`KWDvar`END`PLN division `END`PUN=`END`PLN `END' +
'`STR/\\b\\d+\\/\\d+/`END`PLNg`END`PUN;`END`PLN `END' +
'`COM// test char sets and escaping of specials`END`PLN\n' +
'`END`KWDvar`END`PLN allSpecials `END`PUN=`END`PLN `END' +
'`STR/([^\\(\\)\\[\\]\\{\\}\\-\\?\\+\\*\\.\\^\\$\\/]+)\\\\/`END' +
'`PUN;`END`PLN\n' +
'`END`KWDvar`END`PLN slashInCharset `END`PUN=`END`PLN `END' +
'`STR/[^/]/`END`PLNg`END`PUN,`END`PLN notCloseSq `END`PUN=`END' +
'`PLN `END`STR/[^\\]]/`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM// test that slash used in numeric context treated as an ' +
'operator`END`PLN\n' +
'`END`LIT1`END`PLN `END`PUN/`END`PLN `END`LIT2`END`PUN;`END`PLN\n' +
'`END`LIT1.`END`PLN `END`PUN/`END`PLN x`END`PUN;`END`PLN\n' +
'x `END`PUN/`END`PLN y`END`PUN;`END`PLN\n' +
'`END`PUN(`END`PLNx`END`PUN)`END`PLN `END`PUN/`END`PLN y`END`PUN;`END' +
'`PLN\n' +
'`END`LIT1`END`PLN `END`COM/* foo *\/`END`PLN `END`PUN/`END`PLN `END' +
'`LIT2`END`PUN;`END`PLN\n' +
'`END`LIT1`END`PLN `END`COM/* foo *\/`END`PUN/`END`PLN `END`LIT2`END' +
'`PUN;`END`PLN\n' +
'`END`LIT1`END`PUN/`END`LIT2`END`PUN;`END`PLN\n' +
'`END`LIT1.`END`PUN/`END`PLNx`END`PUN;`END`PLN\n' +
'x`END`PUN/`END`PLNy`END`PUN;`END`PLN\n' +
'`END`PUN(`END`PLNx`END`PUN)/`END`PLNy`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM// test split over two lines. line comment should not ' +
'fool it`END`PLN\n' +
'`END`LIT1`END`COM//`END`PLN\n' +
'`END`PUN/`END`LIT2`END`PUN;`END`PLN\n' +
'\n' +
'x`END`PUN++/`END`PLNy`END`PUN;`END`PLN\n' +
'x`END`PUN--/`END`PLNy`END`PUN;`END`PLN\n' +
'x`END`PUN[`END`PLNy`END`PUN]`END`PLN `END`PUN/`END`PLN z`END`PUN;`END' +
'`PLN\n' +
'f`END`PUN()`END`PLN `END`PUN/`END`PLN n`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM// test that slash after non postfix operator is start of ' +
'regexp`END`PLN\n' +
'log`END`PUN(`END`STR\'matches = \'`END`PLN `END`PUN+`END`PLN `END' +
'`STR/foo/`END`PUN.`END`PLNtest`END`PUN(`END`PLNfoo`END`PUN));`END' +
'`PLN\n' +
'\n' +
'`END`COM// test keyword preceders`END`PLN\n' +
'`END`KWDreturn`END`PLN `END`STR/a regexp/`END`PUN;`END`PLN\n' +
'division `END`PUN=`END`PLN notreturn `END`PUN/`END`PLN not_a_regexp ' +
'`END`PUN/`END`PLN `END`LIT2`END`PUN;`END`PLN `END`COM// ' +
'keyword suffix does not match`END`PLN\n' +
'\n' +
'`END`COM// & not used as prefix operator in javascript but this ' +
'should still work`END`PLN\n' +
'`END`PUN&`END`STR/foo/`END`PUN;`END`PLN\n' +
'\n' +
'`END`KWDextends`END`PLN `END`PUN=`END`PLN `END`STR/extends/`END' +
'`PUN;`END'),
issue12_lang: (
'`STR/foo/`END`PUN;`END`PLN `END`COM// a slash starting a line ' +
'treated as a regexp beginning`END`PLN\n' +
'`END`STR"foo"`END`PUN.`END`PLNmatch`END`PUN(`END`STR/fo+$/`END' +
'`PUN);`END`PLN\n' +
'`END`COM// this line comment not treated as a regular expressions`END' +
'`PLN\n' +
'`END`STR"foo /bar/"`END`PUN.`END`PLNtest`END`PUN(`END`STR/"baz"/`END' +
'`PUN);`END`PLN `END`COM// test string and regexp boundaries' +
'`END`PLN\n' +
'`END`KWDvar`END`PLN division `END`PUN=`END`PLN `END' +
'`STR/\\b\\d+\\/\\d+/`END`PLNg`END`PUN;`END`PLN `END' +
'`COM// test char sets and escaping of specials`END`PLN\n' +
'`END`KWDvar`END`PLN allSpecials `END`PUN=`END`PLN `END' +
'`STR/([^\\(\\)\\[\\]\\{\\}\\-\\?\\+\\*\\.\\^\\$\\/]+)\\\\/`END' +
'`PUN;`END`PLN\n' +
'`END`KWDvar`END`PLN slashInCharset `END`PUN=`END`PLN `END' +
'`STR/[^/]/`END`PLNg`END`PUN,`END`PLN notCloseSq `END`PUN=`END' +
'`PLN `END`STR/[^\\]]/`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM// test that slash used in numeric context treated as an ' +
'operator`END`PLN\n' +
'`END`LIT1`END`PLN `END`PUN/`END`PLN `END`LIT2`END`PUN;`END`PLN\n' +
'`END`LIT1.`END`PLN `END`PUN/`END`PLN x`END`PUN;`END`PLN\n' +
'x `END`PUN/`END`PLN y`END`PUN;`END`PLN\n' +
'`END`PUN(`END`PLNx`END`PUN)`END`PLN `END`PUN/`END`PLN y`END`PUN;`END' +
'`PLN\n' +
'`END`LIT1`END`PLN `END`COM/* foo *\/`END`PLN `END`PUN/`END`PLN `END' +
'`LIT2`END`PUN;`END`PLN\n' +
'`END`LIT1`END`PLN `END`COM/* foo *\/`END`PUN/`END`PLN `END`LIT2`END' +
'`PUN;`END`PLN\n' +
'`END`LIT1`END`PUN/`END`LIT2`END`PUN;`END`PLN\n' +
'`END`LIT1.`END`PUN/`END`PLNx`END`PUN;`END`PLN\n' +
'x`END`PUN/`END`PLNy`END`PUN;`END`PLN\n' +
'`END`PUN(`END`PLNx`END`PUN)/`END`PLNy`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM// test split over two lines. line comment should not ' +
'fool it`END`PLN\n' +
'`END`LIT1`END`COM//`END`PLN\n' +
'`END`PUN/`END`LIT2`END`PUN;`END`PLN\n' +
'\n' +
'x`END`PUN++/`END`PLNy`END`PUN;`END`PLN\n' +
'x`END`PUN--/`END`PLNy`END`PUN;`END`PLN\n' +
'x`END`PUN[`END`PLNy`END`PUN]`END`PLN `END`PUN/`END`PLN z`END`PUN;`END' +
'`PLN\n' +
'f`END`PUN()`END`PLN `END`PUN/`END`PLN n`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM// test that slash after non postfix operator is start of ' +
'regexp`END`PLN\n' +
'log`END`PUN(`END`STR\'matches = \'`END`PLN `END`PUN+`END`PLN `END' +
'`STR/foo/`END`PUN.`END`PLNtest`END`PUN(`END`PLNfoo`END`PUN));`END' +
'`PLN\n' +
'\n' +
'`END`COM// test keyword preceders`END`PLN\n' +
'`END`KWDreturn`END`PLN `END`STR/a regexp/`END`PUN;`END`PLN\n' +
'division `END`PUN=`END`PLN notreturn `END`PUN/`END`PLN not_a_regexp ' +
'`END`PUN/`END`PLN `END`LIT2`END`PUN;`END`PLN `END`COM// ' +
'keyword suffix does not match`END`PLN\n' +
'\n' +
'`END`COM// & not used as prefix operator in javascript but this ' +
'should still work`END`PLN\n' +
'`END`PUN&`END`STR/foo/`END`PUN;`END`PLN\n' +
'\n' +
'extends `END`PUN=`END`PLN `END`STR/extends/`END`PUN;`END'),
coffee: (
'`KWDclass`END`PLN `END`TYPAnimal`END`PLN\n' +
' constructor`END`PUN:`END`PLN `END`PUN(`END`LIT@name`END`PUN)`END`PLN `END`PUN->`END`PLN\n' +
' move`END`PUN:`END`PLN `END`PUN(`END`PLNmeters`END`PUN,`END`PLN loc`END`PUN)`END`PLN `END`PUN->`END`PLN\n' +
' alert `END`LIT@name`END`PLN `END`PUN+`END`PLN `END`STR" moved "`END`PLN `END`PUN+`END`PLN meters `END`PUN+`END`PLN `END`STR"m."`END`PLN\n' +
' travel`END`PUN:`END`PLN `END`PUN(`END`PLNpath`END`PUN...)`END`PLN `END`PUN->`END`PLN\n' +
' `END`KWDfor`END`PLN place `END`KWDin`END`PLN path\n' +
' `END`LIT@move`END`PLN place`END`PUN.`END`PLNdistance`END`PUN,`END`PLN place`END`PUN.`END`PLNlocation\n' +
'\n' +
'`END`KWDclass`END`PLN `END`TYPHorse`END`PLN `END`KWDextends`END`PLN `END`TYPAnimal`END`PLN\n' +
' `END`COM###\n' +
' @param name Horse name\n' +
' @param jumper Jumping ability\n' +
' ###`END`PLN\n' +
' constructor`END`PUN:`END`PLN `END`PUN(`END`PLNname`END`PUN,`END`PLN jumper`END`PUN)`END`PLN `END`PUN->`END`PLN\n' +
' `END`KWDsuper`END`PLN name\n' +
' `END`LIT@capable`END`PLN `END`PUN=`END`PLN jumper\n' +
' step`END`PUN:`END`PLN `END`PUN->`END`PLN\n' +
' alert `END`STR\'\'\'\n' +
' Step,\n' +
' step...\n' +
' \'\'\'`END`PLN\n' +
' jump`END`PUN:`END`PLN `END`PUN->`END`PLN\n' +
' `END`LIT@capable`END`PLN\n' +
' move`END`PUN:`END`PLN `END`PUN(`END`PLNmeters`END`PUN,`END`PLN where`END`PUN)`END`PLN `END`PUN->`END`PLN\n' +
' switch where\n' +
' `END`KWDwhen`END`PLN `END`STR"ground"`END`PLN\n' +
' `END`LIT@step`END`PUN()`END`PLN\n' +
' `END`KWDsuper`END`PLN meters\n' +
' `END`KWDwhen`END`PLN `END`STR"hurdle"`END`PLN\n' +
' `END`KWDsuper`END`PLN meters `END`KWDif`END`PLN `END`LIT@jump`END`PUN()`END`PLN\n' +
'\n' +
'`END`COM# Create horse`END`PLN\n' +
'tom `END`PUN=`END`PLN `END`KWDnew`END`PLN `END`TYPHorse`END`PLN `END`STR"Tommy"`END`PUN,`END`PLN `END`KWDyes`END`PLN\n' +
'\n' +
'street `END`PUN=`END`PLN\n' +
' location`END`PUN:`END`PLN `END`STR"ground"`END`PLN\n' +
' distance`END`PUN:`END`PLN `END`LIT12`END`PLN\n' +
'car `END`PUN=`END`PLN\n' +
' location`END`PUN:`END`PLN `END`STR"hurdle"`END`PLN\n' +
' distance`END`PUN:`END`PLN `END`LIT2`END`PLN\n' +
'\n' +
'`END`COM###\n' +
'Tell him to travel:\n' +
'1. through the street\n' +
'2. over the car\n' +
'###`END`PLN\n' +
'tom`END`PUN.`END`PLNtravel street`END`PUN,`END`PLN car`END'
),
issue14a: (
'`COM//comment`END<br>' +
'`KWDint`END`PLN main`END`PUN(`END`KWDint`END`PLN argc`END`PUN,`END' +
'`PLN `END`KWDchar`END`PLN `END`PUN**`END`PLNargv`END`PUN)`END' +
'`PLN\n' +
'`END`PUN{}`END'),
issue14b: (
'`COM<!-- There\'s an `END<acronym title="tag soup">`COMHTML`END' +
'</acronym>`COM comment in my comment -->`END`PLN\n' +
'`END`TAG<p>`END' +
'`PLNAnd another one inside the end tag`END' +
'`TAG</p`END`TAG>`END'),
issue20: (
'`TAG<html>`END`PLN\n' +
'\n' +
'`END`TAG<head>`END'),
issue21: (
'`TAG<html>`END`PLN\n' +
' `END`TAG<head>`END`PLN\n' +
' `END`TAG<title>`END`PLNTest`END' +
'`TAG</title>`END`PLN\n' +
' `END`TAG</head>`END`PLN\n' +
'`END`TAG</html>`END'),
issue22: (
'<span class="nocode">01: `END`COM// This is a line of code`END`PLN\n' +
'`END<span class="nocode">02: `END`COM/* Multiline comments can\n' +
'`END<span class="nocode">03: `END`COM * span over and around\n' +
'`END<span class="nocode">04: `END`COM * line markers\n' +
'`END<span class="nocode annot">And can even be interrupted`END`COM\n' +
'`END<span class="nocode annot">by inline code annotations`END`COM\n' +
'`END<span class="nocode">05: `END`COM *\/`END`PLN\n' +
'`END<span class="nocode">06: `END`KWDclass`END`PLN `END`TYPMyClass`END' +
'`PLN `END`KWDextends`END`PLN `END`TYPFoo`END`PLN `END`PUN{`END' +
'`PLN\n' +
'`END<span class="nocode">07: `END`PLN `END`KWDpublic`END' +
'`PLN `END`KWDstatic`END`PLN `END`KWDvoid`END`PLN main`END`PUN(`END' +
'`TYPString`END`PUN...`END`PLN argv`END`PUN)`END`PLN `END`PUN{`END' +
'`PLN\n' +
'`END<span class="nocode">08: `END`PLN `END`TYPSystem`END' +
'`PUN.`END`KWDout`END`PUN.`END`KWDprint`END`PUN(`END' +
'`STR"Hello World"`END`PUN);`END`PLN\n' +
'`END<span class="nocode">09: `END`PLN `END`PUN}`END`PLN\n' +
'`END<span class="nocode">10: `END`PUN}`END'
),
issue24: (
'`PLNos`END`PUN=`END`PLNrequire`END`PUN(`END`STR"os"`END`PUN)`END`PLN\n' +
'math`END`PUN=`END`PLNrequire`END`PUN(`END`STR"math"`END`PUN)`END`PLN\n' +
'\n' +
'`END`COM-- Examples from the language reference`END`PLN\n' +
' a `END`PUN=`END`PLN `END`STR\'alo\\n123"\'`END' +
'`PLN\n' +
' a `END`PUN=`END`PLN `END`STR"alo\\n123\\""`END' +
'`PLN\n' +
' a `END`PUN=`END`PLN `END' +
'`STR\'\\97lo\\10\\04923"\'`END`PLN\n' +
' a `END`PUN=`END`PLN `END`STR[[alo\n' +
' 123"]]`END`PLN\n' +
' a `END`PUN=`END`PLN `END`STR[==[\n' +
' alo\n' +
' 123"]==]`END`PLN\n' +
'\n' +
'`END`LIT3`END`PLN `END`LIT3.0`END`PLN `END`LIT3.1416`END' +
'`PLN `END`LIT314.16e-2`END`PLN `END`LIT0.31416E1`END' +
'`PLN `END`LIT0xff`END`PLN `END`LIT0x56`END`PLN\n' +
'\n' +
'`END`COM-- Some comments that demonstrate long brackets`END`PLN\n' +
'double_quoted `END`PUN=`END`PLN `END`STR"Not a long bracket [=["`END' +
'`PLN\n' +
'`END`COM--[=[ quoting out\n' +
' [[ foo ]]\n' +
' [==[does not end comment either]==]\n' +
']=]`END`PLN\n' +
'past_end_of_comment\n' +
'`END`COM--]=]`END`PLN\n' +
'\n' +
'`END`COM-- Example code courtesy Joseph Harmbruster`END`PLN\n' +
'`END`PUN#`END`PLN\n' +
'`END`KWDdo`END`PLN\n' +
' `END`KWDlocal`END`PLN `END`KWDfunction`END`PLN ssgeneral`END' +
'`PUN(`END`PLNt`END`PUN,`END`PLN n`END`PUN,`END`PLN before`END' +
'`PUN)`END`PLN\n' +
' `END`KWDfor`END`PLN _`END`PUN,`END`PLN h `END`KWDin`END' +
'`PLN ipairs`END`PUN(`END`PLNincs`END`PUN)`END`PLN `END`KWDdo`END' +
'`PLN\n' +
' `END`KWDfor`END`PLN i `END`PUN=`END`PLN h `END' +
'`PUN+`END`PLN `END`LIT1`END`PUN,`END`PLN n `END`KWDdo`END`PLN\n' +
' `END`KWDlocal`END`PLN v `END`PUN=`END' +
'`PLN t`END`PUN[`END`PLNi`END`PUN]`END`PLN\n' +
' `END`KWDfor`END`PLN j `END`PUN=`END' +
'`PLN i `END`PUN-`END`PLN h`END`PUN,`END`PLN `END`LIT1`END`PUN,`END' +
'`PLN `END`PUN-`END`PLNh `END`KWDdo`END`PLN\n' +
' `END`KWDlocal`END`PLN testval `END' +
'`PUN=`END`PLN t`END`PUN[`END`PLNj`END`PUN]`END`PLN\n' +
' `END`KWDif`END`PLN `END`KWDnot`END' +
'`PLN before`END`PUN(`END`PLNv`END`PUN,`END`PLN testval`END' +
'`PUN)`END`PLN `END`KWDthen`END`PLN `END`KWDbreak`END`PLN `END' +
'`KWDend`END`PLN\n' +
' t`END`PUN[`END`PLNi`END`PUN]`END' +
'`PLN `END`PUN=`END`PLN testval`END`PUN;`END`PLN i `END`PUN=`END' +
'`PLN j\n' +
' `END`KWDend`END`PLN\n' +
' t`END`PUN[`END`PLNi`END`PUN]`END`PLN `END' +
'`PUN=`END`PLN v\n' +
' `END`KWDend`END`PLN \n' +
' `END`KWDend`END`PLN\n' +
' `END`KWDreturn`END`PLN t\n' +
' `END`KWDend`END`PLN\n' +
'\n' +
' `END`KWDfunction`END`PLN shellsort`END`PUN(`END`PLNt`END' +
'`PUN,`END`PLN before`END`PUN,`END`PLN n`END`PUN)`END`PLN\n' +
' n `END`PUN=`END`PLN n `END`KWDor`END`PLN `END`PUN#`END' +
'`PLNt\n' +
' `END`KWDif`END`PLN `END`KWDnot`END`PLN before `END' +
'`KWDor`END`PLN before `END`PUN==`END`PLN `END`STR"<"`END' +
'`PLN `END`KWDthen`END`PLN `END`KWDreturn`END`PLN ssup`END`PUN(`END' +
'`PLNt`END`PUN,`END`PLN n`END`PUN)`END`PLN\n' +
' `END`KWDelseif`END`PLN before `END`PUN==`END`PLN `END' +
'`STR">"`END`PLN `END`KWDthen`END`PLN `END`KWDreturn`END' +
'`PLN ssdown`END`PUN(`END`PLNt`END`PUN,`END`PLN n`END`PUN)`END' +
'`PLN\n' +
' `END`KWDelse`END`PLN `END`KWDreturn`END' +
'`PLN ssgeneral`END`PUN(`END`PLNt`END`PUN,`END`PLN n`END`PUN,`END' +
'`PLN before`END`PUN)`END`PLN\n' +
' `END`KWDend`END`PLN\n' +
' `END`KWDend`END`PLN\n' +
' `END`KWDreturn`END`PLN shellsort\n' +
'`END`KWDend`END'),
issue27: (
'`KWDImports`END`PLN System\n' +
'\n' +
'`END`KWDClass`END`PLN [class]\n' +
' `END`KWDShared`END`PLN `END`KWDSub`END`PLN [shared]`END' +
'`PUN(`END`KWDByVal`END`PLN [boolean] `END`KWDAs`END`PLN `END' +
'`KWDBoolean`END`PUN)`END`PLN\n' +
' `END`KWDIf`END`PLN [boolean] `END' +
'`KWDThen`END`PLN\n' +
' Console`END`PUN.`END' +
'`PLNWriteLine`END`PUN(`END`STR"true"`END`PUN)`END`PLN\n' +
' `END`KWDElse`END`PLN\n' +
' Console`END`PUN.`END' +
'`PLNWriteLine`END`PUN(`END`STR"false"`END`PUN)`END`PLN\n' +
' `END`KWDEnd`END`PLN `END`KWDIf`END' +
'`PLN\n' +
' `END`KWDEnd`END`PLN `END`KWDSub`END`PLN\n' +
'`END`KWDEnd`END`PLN `END`KWDClass`END`PLN\n' +
'\n' +
'`END`COM\' Comment`END`PLN\n' +
'`END`COM\u2018 Second Line comment with a smart quote _\n' +
' continued line using VB6 syntax.`END`PLN\n' +
'`END`KWDModule`END`PLN [module]\n' +
' `END`KWDSub`END`PLN Main`END`PUN()`END`PLN\n' +
' [class]`END`PUN.`END`PLN[shared]`END' +
'`PUN(`END`LITTrue`END`PUN)`END`PLN\n' +
'\n' +
' `END`COM\' This prints out: \".`END' +
'`PLN\n' +
' Console`END`PUN.`END`PLNWriteLine`END' +
'`PUN(`END`STR""""`END`PUN)`END`PLN\n' +
'\n' +
' `END`COM\' This prints out: a"b.`END' +
'`PLN\n' +
' Console`END`PUN.`END`PLNWriteLine`END' +
'`PUN(`END`STR"a""b"`END`PUN)`END`PLN\n' +
'\n' +
' `END`COM\' This prints out: a.`END' +
'`PLN\n' +
' Console`END`PUN.`END`PLNWriteLine`END' +
'`PUN(`END`STR"a"c`END`PUN)`END`PLN\n' +
'\n' +
' `END`COM\' This prints out: ".`END' +
'`PLN\n' +
' Console`END`PUN.`END`PLNWriteLine`END' +
'`PUN(`END`STR""""c`END`PUN)`END`PLN\n' +
'\n' +
' `END`COMREM an old-style comment`END`PLN\n' +
' REMOVE`END`PUN(`END`PLNnot_a_comment`END`PUN)`END`PLN\n' +
' `END`KWDEnd`END`PLN `END`KWDSub`END`PLN\n' +
'`END`KWDEnd`END`PLN `END`KWDModule`END`PLN\n' +
'\n' +
'`END`KWDDim`END`PLN d `END`KWDAs`END`PLN `END`KWDDate`END`PLN\n' +
'd `END`PUN=`END`PLN `END`LIT# 8/23/1970 3:45:39AM #`END`PLN\n' +
'd `END`PUN=`END`PLN `END`LIT# 8/23/1970 #`END`PLN\n' +
'd `END`PUN=`END`PLN `END`LIT# 3:45:39AM #`END`PLN\n' +
'd `END`PUN=`END`PLN `END`LIT# 3:45:39 #`END`PLN\n' +
'd `END`PUN=`END`PLN `END`LIT# 13:45:39 #`END`PLN\n' +
'd `END`PUN=`END`PLN `END`LIT# 13:45:39PM #`END`PLN\n' +
'\n' +
'`END`KWDDim`END`PLN n `END`KWDAs`END`PLN Float\n' +
'n `END`PUN=`END`PLN `END`PUN(`END`LIT0.0`END`PUN,`END`PLN `END' +
'`LIT.99F`END`PUN,`END`PLN `END`LIT1.0E-2D`END`PUN,`END`PLN `END' +
'`LIT1.0E+3D`END`PUN,`END`PLN `END`LIT.5E4`END`PUN,`END`PLN `END' +
'`LIT1E3R`END`PUN,`END`PLN `END`LIT4D`END`PUN)`END`PLN\n' +
'\n' +
'`END`KWDDim`END`PLN i `END`KWDAs`END`PLN `END`KWDInteger`END`PLN\n' +
'i `END`PUN=`END`PLN `END`PUN(`END`LIT0`END`PUN,`END`PLN `END' +
'`LIT123`END`PUN,`END`PLN `END`LIT45L`END`PUN,`END`PLN `END' +
'`LIT&HA0I`END`PUN,`END`PLN `END`LIT&O177S`END`PUN)`END'),
issue30: (
'`COM-- A comment`END`PLN\n' +
'Not`END`PUN(--`END`STR"a comment"`END`PUN)`END`PLN\n' +
'Also.not`END`PUN(--(`END`PLNA.comment`END`PUN))`END`PLN\n' +
'\n' +
'`END`KWDmodule`END`PLN Foo`END`PUN(`END`PLNbar`END`PUN)`END`PLN `END' +
'`KWDwhere`END`PLN\n' +
'`END`KWDimport`END`PLN Blah\n' +
'`END`KWDimport`END`PLN BlahBlah`END`PUN(`END`PLNblah`END`PUN)`END' +
'`PLN\n' +
'`END`KWDimport`END`PLN Monads`END`PUN(`END`PLNException`END' +
'`PUN(..),`END`PLN FIO`END`PUN(..),`END`PLNunFIO`END`PUN,`END' +
'`PLNhandle`END`PUN,`END`PLNrunFIO`END`PUN,`END`PLNfixFIO`END' +
'`PUN,`END`PLNfio`END`PUN,`END`PLN\n' +
' write`END`PUN,`END' +
'`PLNwriteln`END`PUN,`END`PLNHasNext`END`PUN(..),`END' +
'`PLNHasOutput`END`PUN(..))`END`PLN\n' +
'\n' +
'`END`COM{- nested comments\n' +
' - don\'t work {-yet-}`END`PLN `END`PUN-}`END`PLN\n' +
'`END`KWDinstance`END`PLN Thingy Foo `END`KWDwhere`END`PLN\n' +
' a `END`PUN=`END`PLN b\n' +
'\n' +
'`END`KWDdata`END`PLN Foo `END`PUN::`END`PLN `END`PUN(*`END`PLN `END' +
'`PUN->`END`PLN `END`PUN*`END`PLN `END`PUN->`END`PLN `END' +
'`PUN*)`END`PLN `END`PUN->`END`PLN `END`PUN*`END`PLN `END' +
'`PUN>`END`PLN `END`PUN*`END`PLN `END`PUN->`END`PLN `END' +
'`PUN*`END`PLN `END`KWDwhere`END`PLN\n' +
' Nil `END`PUN::`END`PLN Foo a b c\n' +
' Cons `END`PUN::`END`PLN a b c `END`PUN->`END' +
'`PLN Foo abc `END`PUN->`END`PLN Foo a b c\n' +
'\n' +
'str `END`PUN=`END`PLN `END`STR"Foo\\\\Bar"`END`PLN\n' +
'char `END`PUN=`END`PLN `END`STR\'x\'`END`PLN\n' +
'Not.A.Char `END`PUN=`END`PLN `END`STR\'t`END`PLNoo long\' `END' +
'`COM-- Don\'t barf. Show that \'t is a lexical error.`END' +
'`PLN\n' +
'\n' +
'`END`PUN(`END`PLNident`END`PUN,`END`PLN ident\'`END`PUN,`END' +
'`PLN Fo\'\'o.b\'ar`END`PUN)`END`PLN\n' +
'\n' +
'`END`PUN(`END`LIT0`END`PUN,`END`PLN `END`LIT12`END`PUN,`END`PLN `END' +
'`LIT0x45`END`PUN,`END`PLN `END`LIT0xA7`END`PUN,`END`PLN `END' +
'`LIT0o177`END`PUN,`END`PLN `END`LIT0O377`END`PUN,`END`PLN `END' +
'`LIT0.1`END`PUN,`END`PLN `END`LIT1.0`END`PUN,`END`PLN `END' +
'`LIT1e3`END`PUN,`END`PLN `END`LIT0.5E-3`END`PUN,`END`PLN `END' +
'`LIT1.0E+45`END`PUN)`END'
),
issue33: (
'`COM(*\n' +
' * Print the 10th fibonacci number\n' +
' *)`END`PLN\n' +
'\n' +
'`END`COM//// A line comment`END`PLN\n' +
'`END`STR"A string"`END`PUN;;`END`PLN\n' +
'`END`PUN(`END`LIT0`END`PUN,`END`PLN `END`LIT125`END`PUN,`END' +
'`PLN `END`LIT0xa0`END`PUN,`END`PLN `END`LIT-1.0`END`PUN,`END' +
'`PLN `END`LIT1e6`END`PUN,`END`PLN `END`LIT1.2e-3`END`PUN);;`END' +
'`PLN `END`COM// number literals`END`PLN\n' +
'\n' +
'`END`COM#if fibby`END`PLN\n' +
' `END`KWDlet`END`PLN\n' +
' `END`KWDrec`END`PLN fib `END`PUN=`END`PLN `END' +
'`KWDfunction`END`PLN `END`PUN(`END`LIT0`END`PUN,`END`PLN a`END' +
'`PUN,`END`PLN _`END`PUN)`END`PLN `END`PUN->`END`PLN a\n' +
' ' +
' `END`PUN|`END`PLN `END`PUN(`END`PLNn`END`PUN,`END`PLN a`END' +
'`PUN,`END`PLN b`END`PUN)`END`PLN `END`PUN->`END`PLN fib`END' +
'`PUN(`END`PLNn `END`PUN-`END`PLN `END`LIT1`END`PUN,`END' +
'`PLN a `END`PUN+`END`PLN b`END`PUN,`END`PLN a`END`PUN)`END' +
'`PLN\n' +
' `END`KWDin`END`PLN\n' +
' print_int`END`PUN(`END`PLNfib`END`PUN(`END`LIT10`END' +
'`PUN,`END`PLN `END`LIT1`END`PUN,`END`PLN `END`LIT1`END' +
'`PUN));;`END`PLN\n' +
'`END`COM#endif`END`PLN\n' +
'\n' +
'`END`KWDlet`END`PLN zed `END`PUN=`END`PLN `END`STR\'z\'`END`PLN\n' +
'\n' +
'`END`KWDlet`END`PLN f\' x\' `END`PUN=`END`PLN x\' `END`PUN+`END`PLN `END`LIT1`END'),
issue42: (
'`COM; -*- mode: lisp -*-`END`PLN\n' +
'\n' +
'`END`OPN(`END`KWDdefun`END`PLN back-six-lines `END`OPN(`END`CLO)`END' +
'`PLN `END`OPN(`END`PLNinteractive`END`CLO)`END`PLN `END`OPN(`END' +
'`PLNforward-line `END`LIT-6`END`CLO))`END`PLN\n' +
'`END`OPN(`END`KWDdefun`END`PLN forward-six-lines `END`OPN(`END' +
'`CLO)`END`PLN `END`OPN(`END`PLNinteractive`END`CLO)`END`PLN `END' +
'`OPN(`END`PLNforward-line `END`LIT6`END`CLO))`END`PLN\n' +
'\n' +
'`END`OPN(`END`PLNglobal-set-key `END`STR"\\M-l"`END`PLN `END' +
'`LIT\'goto-line`END`CLO)`END`PLN\n' +
'`END`OPN(`END`PLNglobal-set-key `END`STR"\\C-z"`END`PLN `END' +
'`LIT\'advertised-undo`END`CLO)`END`PLN\n' +
'`END`OPN(`END`PLNglobal-set-key `END`PUN[`END`PLNC-insert`END' +
'`PUN]`END`PLN `END`LIT\'clipboard-kill-ring-save`END`CLO)`END' +
'`PLN\n' +
'`END`OPN(`END`PLNglobal-set-key `END`PUN[`END`PLNS-insert`END`PUN]`END' +
'`PLN `END`LIT\'clipboard-yank`END`CLO)`END`PLN\n' +
'`END`OPN(`END`PLNglobal-set-key `END`PUN[`END`PLNC-up`END`PUN]`END' +
'`PLN `END`LIT\'back-six-lines`END`CLO)`END`PLN\n' +
'`END`OPN(`END`PLNglobal-set-key `END`PUN[`END`PLNC-down`END`PUN]`END' +
'`PLN `END`LIT\'forward-six-lines`END`CLO)`END`PLN\n' +
'\n' +
'`END`OPN(`END`KWDsetq`END`PLN visible-bell `END`KWDt`END`CLO)`END' +
'`PLN\n' +
'`END`OPN(`END`KWDsetq`END`PLN user-mail-address `END' +
'`STR"foo@bar.com"`END`CLO)`END`PLN\n' +
'`END`OPN(`END`KWDsetq`END`PLN default-major-mode `END' +
'`LIT\'text-mode`END`CLO)`END`PLN\n' +
'\n' +
'`END`OPN(`END`PLNsetenv `END`STR"TERM"`END`PLN `END' +
'`STR"emacs"`END`CLO)`END`PLN\n' +
'`END`OPN(`END`PLNc-set-offset `END`LIT\'case-label`END`PLN `END' +
'`LIT2`END`CLO)`END`PLN\n' +
'`END`OPN(`END`KWDsetq`END`PLN c-basic-offset `END`LIT2`END`CLO)`END' +
'`PLN\n' +
'`END`OPN(`END`KWDsetq`END`PLN perl-indent-level `END`LIT0x2`END`CLO)`END' +
'`PLN\n' +
'`END`OPN(`END`KWDsetq`END`PLN delete-key-deletes-forward `END`KWDt`END' +
'`CLO)`END`PLN\n' +
'`END`OPN(`END`KWDsetq`END`PLN indent-tabs-mode `END`KWDnil`END' +
'`CLO)`END`PLN\n' +
'\n' +
'`END`COM;; Text mode`END`PLN\n' +
'`END`OPN(`END`PLNadd-hook `END`LIT\'text-mode-hook`END`PLN \n' +
' `END`LIT\'`END`OPN(`END`KWDlambda`END`PLN `END`OPN(`END' +
'`CLO)`END`PLN\n' +
' `END`OPN(`END`PLNturn-on-auto-fill`END`CLO)`END' +
'`PLN\n' +
' `END`CLO)`END`PLN\n' +
'`END`CLO)`END`PLN\n' +
'\n' +
'`END`COM;; Fundamental mode`END`PLN\n' +
'`END`OPN(`END`PLNadd-hook `END`LIT\'fundamental-mode-hook`END' +
'`PLN \n' +
' `END`LIT\'`END`OPN(`END`KWDlambda`END`PLN `END`OPN(`END' +
'`CLO)`END`PLN\n' +
' `END`OPN(`END`PLNturn-on-auto-fill`END' +
'`CLO)`END`PLN\n' +
' `END`CLO)`END`PLN\n' +
'`END`CLO)`END`PLN\n' +
'\n' +
'`END`COM;; Define and cond are keywords in scheme`END`PLN\n' +
'`END`OPN(`END`KWDdefine`END`PLN `END`OPN(`END`PLNsqt x`END`CLO)`END' +
'`PLN `END`OPN(`END`PLNsqrt-iter `END`LIT1.0`END`PLN `END' +
'`LIT2.0`END`PLN x`END`CLO))`END'),
issue45: (
'`KWDthrow`END`PLN `END`KWDnew`END`PLN `END`TYPRuntimeException`END' +
'`PUN(`END`STR"Element ["`END`PLN `END`PUN+`END`PLN element`END' +
'`PUN.`END`PLNgetName`END`PUN()`END`PLN `END`PUN+`END`PLN \n' +
' `END`STR"] missing attribute."`END`PUN);`END`PLN\n' +
'variable`END`PUN++;`END'),
proto: (
'`KWDmessage`END`PLN `END`TYPSearchRequest`END`PLN `END`PUN{`END' +
'`PLN\n' +
' `END`KWDrequired`END`PLN `END`TYPstring`END`PLN query `END' +
'`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN\n' +
' `END`KWDoptional`END`PLN `END`TYPint32`END`PLN page_number `END' +
'`PUN=`END`PLN `END`LIT2`END`PUN;`END`PLN\n' +
' `END`KWDoptional`END`PLN `END`TYPint32`END' +
'`PLN result_per_page `END`PUN=`END`PLN `END`LIT3`END`PLN `END' +
'`PUN[`END`KWDdefault`END`PLN `END`PUN=`END`PLN `END`LIT10`END' +
'`PUN];`END`PLN\n' +
' `END`KWDenum`END`PLN `END`TYPCorpus`END`PLN `END`PUN{`END' +
'`PLN\n' +
' UNIVERSAL `END`PUN=`END`PLN `END`LIT0`END`PUN;`END' +
'`PLN\n' +
' WEB `END`PUN=`END`PLN `END`LIT1`END`PUN;`END`PLN\n' +
' IMAGES `END`PUN=`END`PLN `END`LIT2`END`PUN;`END`PLN\n' +
' LOCAL `END`PUN=`END`PLN `END`LIT3`END`PUN;`END`PLN\n' +
' NEWS `END`PUN=`END`PLN `END`LIT4`END`PUN;`END`PLN\n' +
' PRODUCTS `END`PUN=`END`PLN `END`LIT5`END`PUN;`END' +
'`PLN\n' +
' VIDEO `END`PUN=`END`PLN `END`LIT6`END`PUN;`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`KWDoptional`END`PLN `END`TYPCorpus`END`PLN corpus `END' +
'`PUN=`END`PLN `END`LIT4`END`PLN `END`PUN[`END`KWDdefault`END' +
'`PLN `END`PUN=`END`PLN UNIVERSAL`END`PUN];`END`PLN\n' +
'`END`PUN}`END'),
wiki: (
'`KWD#summary`END`PLN hello world\n' +
'`END`KWD#labels`END`PLN `END`LITHelloWorld`END`PLN `END' +
'`LITWikiWord`END`PLN Hiya\n' +
'\n' +
'`END`PUN[`END' +
'`STRhttp://www.google.com/?q=WikiSyntax+site:code.google.com`END' +
'`PLN `END`LITWikiSyntax`END`PUN]`END`PLN\n' +
'\n' +
'Lorem Ipsum ``END`KWDwhile`END`PLN `END`PUN(`END`LIT1`END' +
'`PUN)`END`PLN `END`KWDprint`END`PUN(`END`STR"blah blah"`END' +
'`PUN);`END`PLN`\n' +
'\n' +
' `END`PUN*`END`PLN Bullet\n' +
' `END`PUN*`END`PLN Points\n' +
' `END`PUN*`END`PLN `END`LITNestedBullet`END' +
'`PLN\n' +
'\n' +
'`END`PUN==`END`LITDroningOnAndOn`END`PUN==`END`PLN\n' +
'{{{\n' +
' `END`COM// Some EmbeddedSourceCode`END`PLN\n' +
' `END`KWDvoid`END`PLN main`END`PUN()`END`PLN `END`PUN{`END' +
'`PLN\n' +
' `END`TYPPrint`END`PUN(`END`STR\'hello world\'`END' +
'`PUN);`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
'}}}\n' +
'\n' +
'{{{\n' +
' `END`COM<!-- Embedded XML -->`END`PLN\n' +
' `END`TAG<foo`END`PLN `END`ATNbar`END`PUN=`END' +
'`ATV"baz"`END`TAG><boo`END`PLN `END' +
'`TAG/><foo>`END`PLN\n' +
'}}}`END'
),
css: (
'`COM<!--`END`PLN\n' +
'`END`KWD@charset`END`PUN(`END`STR\'UTF-8\'`END`PUN);`END`PLN\n' +
'\n' +
'`END`COM/** A url that is not quoted. *\/`END`PLN\n' +
'`END`KWD@import`END`PUN(`END`KWDurl`END`PUN(`END`STR/more-styles.css`END' +
'`PUN));`END`PLN\n' +
'\n' +
'HTML `END`PUN{`END`PLN `END`KWDcontent-before`END`PUN:`END`PLN `END' +
'`STR\'hello\\20\'`END`PUN;`END`PLN `END`KWDcontent-after`END' +
'`PUN:`END`PLN `END`STR\'w\\6f rld\'`END`PUN;`END`PLN\n' +
' `END`KWD-moz-spiff`END`PUN:`END`PLN `END' +
'`KWDinherit`END`PLN `END`KWD!important`END`PLN `END`PUN}`END' +
'`PLN\n' +
'\n' +
'`END`COM/* Test units on numbers. *\/`END`PLN\n' +
'BODY `END`PUN{`END`PLN `END`KWDmargin-bottom`END`PUN:`END`PLN `END' +
'`LIT4px`END`PUN;`END`PLN `END`KWDmargin-left`END`PUN:`END' +
'`PLN `END`LIT3in`END`PUN;`END`PLN `END`KWDmargin-bottom`END' +
'`PUN:`END`PLN `END`LIT0`END`PUN;`END`PLN `END`KWDmargin-top`END' +
'`PUN:`END`PLN `END`LIT5%`END`PLN `END`PUN}`END`PLN\n' +
'\n' +
'`END`COM/** Test number literals and quoted values. *\/`END`PLN\n' +
'TABLE`END`PUN.`END`PLNfoo TR`END`PUN.`END`PLNbar A`END`PUN#`END' +
'`PLNvisited `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END`PLN `END' +
'`LIT#001123`END`PUN;`END`PLN `END`KWDfont-family`END`PUN:`END' +
'`PLN `END`STR"monospace"`END`PLN `END`PUN}`END`PLN\n' +
'`END`COM/** bolder is not a name, so should be plain. ' +
' !IMPORTANT is a keyword\n' +
' * regardless of case.\n' +
' *\/`END`PLN\n' +
'blink `END`PUN{`END`PLN `END`KWDtext-decoration`END`PUN:`END' +
'`PLN BLINK `END`KWD!IMPORTANT`END`PUN;`END`PLN `END' +
'`KWDfont-weight`END`PUN:`END`PLN bolder `END`PUN}`END`PLN\n' +
'`END`COM/* Empty url() was causing infinite recursion */`END`PLN\n' +
'a `END`PUN{`END`PLN `END`KWDbackground-image`END`PUN:`END`PLN ' +
'`END`KWDurl`END`PUN();`END`PLN `END`PUN}`END`PLN\n' +
'p`END`PUN#`END`PLNfeatured`END`PUN{`END`KWDbackground`END`PUN:`END`LIT#fea`END`PUN}`END`PLN\n' +
'`END`COM-->`END'
),
issue79: (
'`TAG<style`END`PLN `END`ATNtype`END`PUN=`END`ATV\'text/css\'`END' +
'`TAG>`END`PLN\n' +
'`END`COM/* desert scheme ported from vim to google prettify */`END' +
'`PLN\n' +
'code`END`PUN.`END`PLNprettyprint `END`PUN{`END`PLN `END' +
'`KWDdisplay`END`PUN:`END`PLN block`END`PUN;`END`PLN `END' +
'`KWDpadding`END`PUN:`END`PLN `END`LIT2px`END`PUN;`END`PLN `END' +
'`KWDborder`END`PUN:`END`PLN `END`LIT1px`END`PLN solid `END' +
'`LIT#888`END`PUN;`END`PLN\n' +
'`END`KWDbackground-color`END`PUN:`END`PLN `END`LIT#333`END`PUN;`END' +
'`PLN `END`PUN}`END`PLN\n' +
'`END`PUN.`END`PLNstr `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#ffa0a0`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* string - pink */`END`PLN\n' +
'`END`PUN.`END`PLNkwd `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#f0e68c`END`PUN;`END`PLN `END`KWDfont-weight`END' +
'`PUN:`END`PLN bold`END`PUN;`END`PLN `END`PUN}`END`PLN\n' +
'`END`PUN.`END`PLNcom `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#87ceeb`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* comment - skyblue */`END`PLN\n' +
'`END`PUN.`END`PLNtyp `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#98fb98`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* type - lightgreen */`END`PLN\n' +
'`END`PUN.`END`PLNlit `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#cd5c5c`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* literal - darkred */`END`PLN\n' +
'`END`PUN.`END`PLNpun `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#fff`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* punctuation */`END`PLN\n' +
'`END`PUN.`END`PLNpln `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#fff`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* plaintext */`END`PLN\n' +
'`END`PUN.`END`PLNtag `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#f0e68c`END`PUN;`END`PLN `END`KWDfont-weight`END' +
'`PUN:`END`PLN bold`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* html/xml tag - lightyellow*/`END`PLN\n' +
'`END`PUN.`END`PLNatn `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#bdb76b`END`PUN;`END`PLN `END`KWDfont-weight`END' +
'`PUN:`END`PLN bold`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* attribute name - khaki*/`END`PLN\n' +
'`END`PUN.`END`PLNatv `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#ffa0a0`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* attribute value - pink */`END`PLN\n' +
'`END`PUN.`END`PLNdec `END`PUN{`END`PLN `END`KWDcolor`END`PUN:`END' +
'`PLN `END`LIT#98fb98`END`PUN;`END`PLN `END`PUN}`END`PLN `END' +
'`COM/* decimal - lightgreen */`END`PLN\n' +
'`END`TAG</style>`END'
),
issue84: '`KWDsuper`END`PUN(`END`STR"&nbsp;"`END`PUN);`END',
issue86_0: '`COM#One Two words`END',
issue86_1: '`COM#One`END`PLN\n' +
'`END`TYPTwo`END`PLN lines`END',
issue86_2: '`COM#One`END`PLN\n' +
'`END`TYPTwo`END`PLN lines`END',
issue86_3: '`COM#One`END`PLN\n' +
'`END`TYPTwo`END`PLN lines`END',
issue86_4: '`COM#One`END`PLN\n' +
'`END`TYPTwo`END`PLN lines`END',
issue92: '`PUN<?`END`PLNxml version`END`PUN=`END`STR"1.0"`END`PLN encoding`END`PUN=`END' +
'`STR"UTF-8"`END`PUN?>`END`PLN\n' +
'`END`TAG<kml`END`PLN `END`ATNxmlns`END`PUN=`END`ATV"http://www.opengis.net/kml/2.2"`END' +
'`TAG>`END`PLN\n' +
' `END`TAG<Placemark>`END`PLN\n' +
' `END`TAG<name>`END`PLNSimple placemark`END`TAG</name>`END`PLN\n' +
' `END`TAG<description`END' +
'`PLN `END`ATNLang`END`PUN=`END`ATV"en"`END`TAG>`END' +
'`PLNAttached to the ground.' +
' Intelligently places itself \n' +
' at the height of the underlying terrain.`END' +
'`TAG</description>`END`PLN\n' +
' `END`TAG<Point>`END`PLN\n' +
' `END`TAG<coordinates>`END' +
'`PLN-122.0822035425683,37.42228990140251,0`END`TAG</coordinates>`END`PLN\n' +
' `END`TAG</Point>`END`PLN\n' +
' `END`TAG</Placemark>`END`PLN\n' +
'`END`TAG</kml>`END',
issue93: '`COM// The normal string syntax`END`PLN\n' +
'`END`KWDstring`END`PLN a `END`PUN=`END`PLN `END`STR"C:\\\\"`END`PUN;`END`PLN\n' +
'`END`COM// is equivalent to a verbatim string`END`PLN\n' +
'`END`KWDstring`END`PLN b `END`PUN=`END`PLN `END`STR@"C:\\"`END`PUN;`END',
vhdl: '`KWDlibrary`END`PLN ieee`END`PUN;`END`PLN\n' +
'`END`KWDuse`END`PLN ieee`END`PUN.`END`PLNstd_logic_1164`END`PUN.`END`KWDall`END`PUN;`END`PLN\n' +
'`END`KWDuse`END`PLN ieee`END`PUN.`END`PLNnumeric_std`END`PUN.`END`KWDall`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM-- A line comment`END`PLN\n' +
'`END`KWDentity`END`PLN foo_entity `END`KWDis`END`PLN\n' +
'\n' +
' `END`KWDgeneric`END`PLN `END`PUN(`END`COM-- comment after punc`END`PLN\n' +
' a `END`PUN:`END`PLN `END`TYPnatural`END`PLN `END`PUN:=`END' +
'`PLN `END`LIT42`END`PUN;`END`PLN\n' +
' x `END`PUN:`END`PLN `END`TYPreal`END`PLN `END' +
'`PUN:=`END`PLN `END`LIT16#ab.cd#-3`END`PLN\n' +
' `END`PUN);`END`PLN\n' +
' `END`KWDport`END`PLN `END`PUN(`END`PLN\n' +
' clk_i `END`PUN:`END`PLN `END`KWDin`END`PLN `END`TYPstd_logic`END`PUN;`END`PLN\n' +
' b_i `END`PUN:`END`PLN `END`KWDin`END`PLN `END`TYPnatural`END`PLN `END`KWDrange`END`PLN `END`LIT0`END`PLN `END`KWDto`END`PLN `END`LIT100`END`PUN;`END`PLN\n' +
' c_o `END`PUN:`END`PLN `END`KWDout`END`PLN `END`TYPstd_logic_vector`END`PUN(`END`LIT5`END`PLN `END`KWDdownto`END`PLN `END`LIT0`END`PUN);`END`PLN\n' +
' \\a "name"\\ `END`PUN:`END`PLN `END`KWDout`END`PLN `END`TYPinteger`END`PLN `END`COM-- extended identifier`END`PLN\n' +
' `END`PUN);`END`PLN\n' +
'\n' +
'`END`KWDend`END`PLN `END`KWDentity`END`PLN foo_entity`END`PUN;`END`PLN\n' +
'\n' +
'`END`KWDarchitecture`END`PLN foo_architecture `END`KWDof`END`PLN foo_entity `END`KWDis`END`PLN\n' +
' `END`KWDsignal`END`PLN bar_s `END`PUN:`END`PLN `END`TYPstd_logic_vector`END`PUN(`END`LIT2`END`PLN `END`KWDdownto`END`PLN `END`LIT0`END`PUN);`END`PLN\n' +
'`END`KWDbegin`END`PLN\n' +
' \n' +
' bar_s `END`PUN<=`END`PLN `END`STRb"101"`END`PUN;`END`PLN\n' +
'\n' +
' dummy_p `END`PUN:`END`PLN `END`KWDprocess`END`PLN `END`PUN(`END`PLNclk_i`END`PUN)`END`PLN\n' +
' `END`KWDbegin`END`PLN\n' +
' `END`KWDif`END`PLN b_i `END`PUN=`END`PLN `END`LIT1`END`PLN `END`KWDthen`END`PLN\n' +
' c_o `END`PUN<=`END`PLN `END`PUN(`END`KWDothers`END`PLN `END`PUN=>`END`PLN `END`STR\'0\'`END`PUN);`END`PLN\n' +
' `END`KWDelsif`END`PLN rising_edge`END`PUN(`END`PLNclk_i`END`PUN)`END`PLN `END`KWDthen`END`PLN\n' +
' c_o `END`PUN<=`END`PLN `END`STR"1011"`END`PLN `END`PUN&`END`PLN bar_s`END`PUN(`END`LIT1`END`PLN `END`KWDdownto`END`PLN `END`LIT0`END`PUN);`END`PLN\n' +
' `END`KWDend`END`PLN `END`KWDif`END`PUN;`END`PLN\n' +
' `END`KWDend`END`PLN `END`KWDprocess`END`PLN dummy_p`END`PUN;`END`PLN\n' +
'\n' +
'`END`KWDend`END`PLN `END`KWDarchitecture`END`PLN foo_architecture`END`PUN;`END',
yaml1: '`KWDapplication: `END`PLNmirah`END`PUN-`END`PLNlang\n' +
'`END`KWDversion: `END`PLN1\n' +
'\n' +
'`END`COM# Here\'s a comment`END`PLN\n' +
'`END`KWDhandlers:\n' +
'`END`PLN `END`PUN-`END`PLN `END`KWDurl: `END`PLN/red/*\n' +
' `END`KWDservlet: `END`PLNmysite.server.TeamServlet\n' +
' `END`KWDinit_params:\n' +
'`END`PLN `END`KWDteamColor: `END`PLNred\n' +
' `END`KWDbgColor: `END`STR"#CC0000"`END`PLN\n' +
' `END`KWDname: `END`PLNredteam\n' +
' `END`PUN-`END`PLN `END`KWDurl: `END`PLN/blue/*\n' +
' `END`KWDservlet: `END`PLNmysite.server.TeamServlet\n' +
' `END`KWDinit_params:\n' +
'`END`PLN `END`KWDteamColor: `END`PLNblue\n' +
' `END`KWDbgColor: `END`STR"#0000CC"`END`PLN\n' +
' `END`KWDname: `END`PLNblueteam\n' +
' `END`PUN-`END`PLN `END`KWDurl: `END`PLN/register/*\n' +
' `END`KWDjsp: `END`PLN/register/start.jsp\n' +
' `END`PUN-`END`PLN `END`KWDurl: `END`PLN*.special\n' +
' `END`KWDfilter: `END`PLNmysite.server.LogFilterImpl\n' +
' `END`KWDinit_params:\n' +
'`END`PLN `END`KWDlogType: `END`PLNspecial\n' +
' `END',
yaml2: '`DEC%YAML 1.1`END`PLN\n' +
'`END`DEC---\n' +
'`END`TYP!!map`END`PLN {\n' +
' `END`PUN?`END`PLN `END`TYP!!str`END`PLN `END`STR""`END`PLN\n' +
' `END`PUN:`END`PLN `END`TYP!!str`END`PLN `END`STR"value"`END`PLN,\n' +
' `END`PUN?`END`PLN `END`TYP!!str`END`PLN `END`STR"explicit key"`END`PLN\n' +
' `END`PUN:`END`PLN `END`TYP!!str`END`PLN `END`STR"value"`END`PLN,\n' +
' `END`PUN?`END`PLN `END`TYP!!str`END`PLN `END`STR"simple key"`END`PLN\n' +
' `END`PUN:`END`PLN `END`TYP!!str`END`PLN `END`STR"value"`END`PLN,\n' +
' `END`PUN?`END`PLN `END`TYP!!seq`END`PLN [\n' +
' `END`TYP!!str`END`PLN `END`STR"collection"`END`PLN,\n' +
' `END`TYP!!str`END`PLN `END`STR"simple"`END`PLN,\n' +
' `END`TYP!!str`END`PLN `END`STR"key"`END`PLN\n' +
' ]\n' +
' `END`PUN:`END`PLN `END`TYP!!str`END`PLN `END`STR"value"`END`PLN\n' +
'}`END',
scala: '`COM/* comment 1 *\/`END`PLN\n' +
'`END`COM/*\n' +
'comment 2\n' +
'*\/`END`PLN\n' +
'`END`COM/* comment / * comment 3 **\/`END`PLN\n' +
'`END`COM// strings`END`PLN\n' +
'`END`STR"Hello, World!"`END`PUN,`END`PLN `END`STR"\\n"`END`PUN,`END`PLN\n' +
'`END`LIT`an-identifier``END`PUN,`END`PLN `END`LIT`\\n``END`PUN,`END`PLN\n' +
'`END`STR\'A\'`END`PUN,`END`PLN `END`STR\'\\n\'`END`PUN,`END`PLN\n' +
'`END`LIT\'aSymbol`END`PUN,`END`PLN\n' +
'`END`STR"""Hello,\n' +
'World"""`END`PUN,`END`PLN `END`STR"""Hello,\\nWorld"""`END`PUN,`END`PLN\n' +
'`END`STR"""Hello, "World"!"""`END`PUN,`END`PLN\n' +
'`END`STR"""Hello, \\"World\\""""`END`PLN\n' +
'\n' +
'`END`COM// Numbers`END`PLN\n' +
'`END`LIT0`END`PLN\n' +
'`END`LIT0123`END`PLN\n' +
'`END`LIT0xa0`END`PLN\n' +
'`END`LIT0XA0L`END`PLN\n' +
'`END`LIT123`END`PLN\n' +
'`END`LIT123.45`END`PLN\n' +
'`END`LIT1.50F`END`PLN\n' +
'`END`LIT0.50`END`PLN\n' +
'`END`PUN.`END`LIT50`END`PLN\n' +
'`END`LIT123e-1`END`PLN\n' +
'`END`LIT123.45e+1`END`PLN\n' +
'`END`LIT1.50e2`END`PLN\n' +
'`END`LIT0.50e-6`END`PLN\n' +
'`END`PUN.`END`LIT50e+42f`END`PLN\n' +
'\n' +
'`END`COM// Values`END`PLN\n' +
'`END`LITfalse`END`PUN,`END`PLN `END`LITtrue`END`PUN,`END`PLN `END`LITnull`END`PUN,`END`PLN `END`LITthis`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM// Keywords`END`PLN\n' +
'`END`KWDclass`END`PLN `END`TYPMyClass`END`PUN;`END`PLN\n' +
'`END`KWDimport`END`PLN foo`END`PUN.`END`PLNbar`END`PUN;`END`PLN\n' +
'`END`KWDpackage`END`PLN baz`END`PUN;`END`PLN\n' +
'\n' +
'`END`COM// From scala-lang.org/node/242`END`PLN\n' +
'`END`KWDdef`END`PLN act`END`PUN()`END`PLN `END`PUN{`END`PLN\n' +
' `END`KWDvar`END`PLN pongCount `END`PUN=`END`PLN `END`LIT0`END`PLN\n' +
' loop `END`PUN{`END`PLN\n' +
' react `END`PUN{`END`PLN\n' +
' `END`KWDcase`END`PLN `END`TYPPing`END`PLN `END`PUN=>`END`PLN\n' +
' `END`KWDif`END`PLN `END`PUN(`END`PLNpongCount `END`PUN%`END`PLN `END`LIT1000`END`PLN `END`PUN==`END`PLN `END`LIT0`END`PUN)`END`PLN\n' +
' `END`TYPConsole`END`PUN.`END`PLNprintln`END`PUN(`END`STR"Pong: ping "`END`PUN+`END`PLNpongCount`END`PUN)`END`PLN\n' +
' sender `END`PUN!`END`PLN `END`TYPPong`END`PLN\n' +
' pongCount `END`PUN=`END`PLN pongCount `END`PUN+`END`PLN `END`LIT1`END`PLN\n' +
' `END`KWDcase`END`PLN `END`TYPStop`END`PLN `END`PUN=>`END`PLN\n' +
' `END`TYPConsole`END`PUN.`END`PLNprintln`END`PUN(`END`STR"Pong: stop"`END`PUN)`END`PLN\n' +
' exit`END`PUN()`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
'`END`PUN}`END',
go: '`PLNpackage main `END`COM/* Package of which this program is part. *\/`END`PLN\n' +
'\n' +
'import fmt "fmt" `END`COM// Package implementing formatted I/O.`END`PLN\n' +
'\n' +
'\n' +
'func main() {\n' +
' fmt.Printf("Hello, world; or \u039a\u03b1\u03bb\u03b7\u03bc\u03ad\u03c1\u03b1 \u03ba\u03cc\u03c3\u03bc\u03b5; or \u3053\u3093\u306b\u3061\u306f \u4e16\u754c\\n") `END`COM// Semicolon inserted here`END`PLN\n' +
'}\n' +
'\n' +
'`END`COM/* " *\/`END`PLN "foo /* " `END`COM/*\/ *\/`END`PLN\n' +
'`END`COM/* ` *\/`END`PLN `foo /* ` `END`COM/*\/ *\/`END',
erlang: '`COM% Sample comment`END`PLN\n' +
'\n' +
'`END`KWD-module`END`PLN(my_test)`END`PUN.`END`PLN\n' +
'`END`KWD-include_lib`END`PLN(`END`STR"my_sample_lib.hrl"`END`PLN)`END`PUN.`END`PLN\n' +
'`END`KWD-export`END`PLN([\n' +
' test/`END`LIT2`END`PLN\n' +
'])`END`PUN.`END`PLN\n' +
'\n' +
'`END`COM%% @doc Define a macro`END`PLN\n' +
'`END`KWD-define`END`PLN(my_macro`END`PUN,`END`PLN `END`TYPVariable`END`PLN)`END`PUN.`END`PLN\n' +
'\n' +
'`END`COM%% @doc My function`END`PLN\n' +
'test(`END`TYPVariables`END`PUN,`END`PLN `END`TYPMoreVariables`END`PLN) ->\n' +
' `END`COM% Inline comment`END`PLN\n' +
' {ok`END`PUN,`END`TYPScanned`END`PUN,`END`TYP_`END`PLN} = my_lib:do_stuff()`END`PUN,`END`PLN\n' +
'\n' +
' `END`TYPVariable`END`PLN = `END`KWDfun`END`PLN(`END`TYPV`END`PLN) -> {ok`END`PUN,`END`PLN `END`TYPV`END`PLN} `END`KWDend`END`PUN,`END`PLN\n' +
'\n' +
' `END`KWDtry`END`PLN `END`LIT?my_macro`END`PLN({value`END`PUN,`END`PLN test}) `END`KWDof`END`PLN\n' +
' {value`END`PUN,`END`PLN `END`TYPResult`END`PUN,`END`PLN `END`TYP_`END`PLN} ->\n' +
' {ok`END`PUN,`END`PLN `END`TYPResult`END`PLN}\n' +
' `END`KWDcatch`END`PLN\n' +
' `END`TYPType`END`PLN:`END`TYPError`END`PLN ->\n' +
' {`END`LIT\'error\'`END`PUN,`END`PLN `END`TYPType`END`PUN,`END`PLN `END`TYPError`END`PLN}\n' +
' `END`KWDend`END`PUN.`END',
rust: '`COM// Single line comment`END`PLN\n' +
'`END`COM/* Multi-line (nesting not highlighted properly, sorry)\n' +
'comment */`END`PLN\n' +
'\n' +
'`END`ATN#![feature(code_prettification)]`END`PLN\n' +
'\n' +
'`END`KWDuse`END`PLN std`END`PUN::`END`PLNio`END`PUN::{`END`LITself`END`PUN,`END`PLN Write`END`PUN};`END`PLN\n' +
'\n' +
'`END`KWDimpl`END`PUN<`END`TAG\'a`END`PUN,`END`PLN T`END`PUN:`END`PLN `END`TAG\'a`END`PLN `END`PUN+`END`PLN `END`PUN?`END`TYPSized`END`PUN>`END`PLN Foo`END`PUN<`END`TAG\'a`END`PUN,`END`PLN `END`TAG\'static`END`PUN>`END`PLN `END`KWDfor`END`PLN Bar`END`PUN<`END`TAG\'b`END`PUN>`END`PLN\n' +
'`END`KWDwhere`END`PLN T`END`PUN:`END`PLN `END`TYPIterator`END`PUN<`END`PLNItem `END`PUN=`END`PLN `END`TYPBox`END`PUN<`END`TYPFn`END`PUN()`END`PLN `END`PUN->`END`PLN `END`TYPu32`END`PUN>>`END`PLN `END`PUN{`END`PLN\n' +
' `END`KWDfn`END`PLN something`END`PUN(&`END`KWDmut`END`PLN `END`LITself`END`PUN)`END`PLN `END`PUN->`END`PLN `END`TYPu32`END`PLN `END`PUN{`END`PLN\n' +
' `END`KWDif`END`PLN `END`KWDlet`END`PLN `END`TYPSome`END`PUN(`END`KWDref`END`PLN x`END`PUN)`END`PLN `END`PUN=`END`PLN `END`LITself`END`PUN.`END`PLNfoo`END`PUN(`END`STR"multi li\\ne\n' +
's\\tring"`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
' panic`END`PUN!(`END`STRr"\\things is going wrong!"`END`PUN);`END`PLN\n' +
' panic`END`PUN!(`END`STRr#"Things is "really" goig\\n wront!"#`END`PUN);`END`PLN\n' +
' panic`END`PUN!(`END`STRr##"Raw strings are #"#fancy#"#"##`END`PUN);`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
' `END`PUN}`END`PLN\n' +
'`END`PUN}`END`PLN\n' +
'\n' +
'`END`KWDpub`END`PLN `END`KWDtype`END`PLN CowString`END`PUN<`END`TAG\'a`END`PUN>`END`PLN `END`PUN=`END`PLN std`END`PUN::`END`PLNcow`END`PUN::`END`PLNCow`END`PUN<`END`TAG\'a`END`PUN,`END`PLN `END`TYPstr`END`PUN>;`END`PLN\n' +
'\n' +
'`END`KWDfn`END`PLN main`END`PUN()`END`PLN `END`PUN{`END`PLN\n' +
' `END`KWDlet`END`PLN `END`PUN(`END`PLNi`END`PUN,`END`PLN r`END`PUN)`END`PLN `END`PUN=`END`PLN `END`PUN(`END`LIT1u8`END`PUN,`END`PLN `END`STR\'c\'`END`PUN);`END`PLN\n' +
' `END`KWDlet`END`PLN s `END`PUN=`END`PLN `END`STRr#"Take a raw egg,\n' +
' "break" it (or the line),\n' +
' and beat it"#`END`PUN;`END`PLN\n' +
'`END`PUN}`END'
};
</script>
</html>