Skip to content
This repository was archived by the owner on Apr 22, 2020. It is now read-only.

Commit 31dfa87

Browse files
author
mikesamuel@gmail.com
committed
added R/S language testcases
1 parent 9b8047f commit 31dfa87

1 file changed

Lines changed: 310 additions & 0 deletions

File tree

tests/prettify_test_2.html

Lines changed: 310 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"lang-lisp.js",
1414
"lang-xq.js",
1515
"lang-n.js",
16+
"lang-r.js",
1617
"lang-tcl.js",
1718
"lang-tex.js"
1819
];
@@ -557,6 +558,161 @@ <h1>TCL_lang</h1>
557558
}
558559
</pre>
559560

561+
<h1>R, S language support</h1>
562+
<pre class="prettyprint lang-r" id="r_lang">
563+
### Example R script for syntax highlighting
564+
565+
# This is a comment
566+
567+
## Valid names
568+
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV0123456789._a <- NULL
569+
.foo_ <- NULL
570+
._foo <- NULL
571+
572+
## Invalid names
573+
0abc <- NULL
574+
.0abc <- NULL
575+
abc+cde <- NULL
576+
577+
## Reserved Words
578+
NA
579+
NA_integer_
580+
NA_real_
581+
NA_character_
582+
NA_complex_
583+
NULL
584+
NaN
585+
Inf
586+
## Not reserved
587+
NULLa <- NULL
588+
NULL1 <- NULL
589+
NULL. <- NULL
590+
NA_foo_ <- NULL
591+
592+
## Numbers
593+
12345678901
594+
123456.78901
595+
123e3
596+
123E3
597+
1.23e-3
598+
1.23e3
599+
1.23e-3
600+
## integer constants
601+
123L
602+
1.23L
603+
## imaginary numbers
604+
123i
605+
-123i
606+
123e4i
607+
123e-4i
608+
## Hex numbers
609+
0xabcdefABCDEF01234
610+
0xabcp123
611+
0xabcP123
612+
## Not hex
613+
0xg
614+
615+
## Special operators %xyz%
616+
## %xyz%
617+
1 %% 2
618+
diag(2) %*% diag(2)
619+
1 %/% 2
620+
1 %in% 1:10
621+
diag(2) %o% diag(2)
622+
diag(2) %x% diag(2)
623+
`%foo bar%` <- function(x, y) x + y
624+
1 %foo bar% 2
625+
626+
## Control Structures (3.2) and Function
627+
## if, else
628+
if (TRUE) print("foo") else print("bar")
629+
## For, in
630+
for(i in 1:5) {
631+
print(i)
632+
}
633+
## While, break
634+
i <- 1
635+
while (TRUE) {
636+
i <- i + 1
637+
if (i > 3) break
638+
}
639+
## Repeat
640+
repeat {1+1}
641+
## Switch
642+
x <- 3
643+
switch(x, 2+2, mean(1:10), rnorm(5))
644+
## Function, dot-dot-dot, return
645+
foo <- function(...) {
646+
return(sum(...))
647+
}
648+
# Not keywords
649+
functiona <- 2 + 2
650+
function. <- 2 + 2
651+
function1 <- 2 + 2
652+
653+
654+
## Grouping Tokens 10.3.7
655+
## Parentheses
656+
1 + (2 + 3)
657+
## brackets
658+
foo <- function(a) {
659+
a + 1
660+
}
661+
662+
## Indexing 10.3.8
663+
## []
664+
bar <- 1:10
665+
bar[3]
666+
## [[]]
667+
foo <- list(a=1, b=2, c=3)
668+
foo[["a"]]
669+
## $
670+
foo$a
671+
foo$"a"
672+
673+
## Operators
674+
2 - 2
675+
2 + 2
676+
2 ~ 2
677+
! TRUE
678+
?"help"
679+
1:2
680+
2 * 2
681+
2 / 2
682+
2^2
683+
2 < 2
684+
2 > 2
685+
2 == 2
686+
2 >= 2
687+
2 <= 2
688+
2 != 2
689+
TRUE & FALSE
690+
TRUE && FALSE
691+
TRUE | FALSE
692+
TRUE || FALSE
693+
foo <- 2 + 2
694+
foo = 2 + 2
695+
2 + 2 -> foo
696+
foo <<- 2 + 2
697+
2 + 2 ->> foo
698+
base:::sum
699+
base::sum
700+
701+
## Strings
702+
foo <- "hello, world!"
703+
foo <- 'hello, world!'
704+
foo <- "Hello, 'world!"
705+
foo <- 'Hello, "world!'
706+
foo <- 'Hello, \'world!\''
707+
foo <- "Hello, \"world!\""
708+
foo <- "Hello,
709+
world!"
710+
foo <- 'Hello,
711+
world!'
712+
713+
## Backtick strings
714+
`foo123 +!"bar'baz` <- 2 + 2
715+
</pre>
560716

561717
<script type="text/javascript">
562718
/**
@@ -1037,6 +1193,160 @@ <h1>TCL_lang</h1>
10371193
' `END`CLO}`END`PLN\n' +
10381194
' `END`KWDreturn`END`PLN `END`PUN$`END`PLNa\n' +
10391195
'`END`CLO}`END'
1196+
),
1197+
r_lang: (
1198+
'`COM### Example R script for syntax highlighting`END`PLN\n' +
1199+
'\n' +
1200+
'`END`COM# This is a comment`END`PLN\n' +
1201+
'\n' +
1202+
'`END`COM## Valid names`END`PLN\n' +
1203+
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV0123456789._a `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1204+
'.foo_ `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1205+
'._foo `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1206+
'\n' +
1207+
'`END`COM## Invalid names`END`PLN\n' +
1208+
'`END`LIT0`END`PLNabc `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1209+
'`END`LIT.0`END`PLNabc `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1210+
'abc`END`PUN+`END`PLNcde `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1211+
'\n' +
1212+
'`END`COM## Reserved Words`END`PLN\n' +
1213+
'`END`LITNA`END`PLN\n' +
1214+
'`END`LITNA_integer_`END`PLN\n' +
1215+
'`END`LITNA_real_`END`PLN\n' +
1216+
'`END`LITNA_character_`END`PLN\n' +
1217+
'`END`LITNA_complex_`END`PLN\n' +
1218+
'`END`LITNULL`END`PLN\n' +
1219+
'`END`LITNaN`END`PLN\n' +
1220+
'`END`LITInf`END`PLN\n' +
1221+
'`END`COM## Not reserved`END`PLN\n' +
1222+
'NULLa `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1223+
'NULL1 `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1224+
'NULL. `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1225+
'NA_foo_ `END`PUN&lt;-`END`PLN `END`LITNULL`END`PLN\n' +
1226+
'\n' +
1227+
'`END`COM## Numbers`END`PLN\n' +
1228+
'`END`LIT12345678901`END`PLN\n' +
1229+
'`END`LIT123456.78901`END`PLN\n' +
1230+
'`END`LIT123e3`END`PLN\n' +
1231+
'`END`LIT123E3`END`PLN\n' +
1232+
'`END`LIT1.23e-3`END`PLN\n' +
1233+
'`END`LIT1.23e3`END`PLN\n' +
1234+
'`END`LIT1.23e-3`END`PLN\n' +
1235+
'`END`COM## integer constants`END`PLN\n' +
1236+
'`END`LIT123L`END`PLN\n' +
1237+
'`END`LIT1.23L`END`PLN\n' +
1238+
'`END`COM## imaginary numbers`END`PLN\n' +
1239+
'`END`LIT123i`END`PLN\n' +
1240+
'`END`LIT-123i`END`PLN\n' +
1241+
'`END`LIT123e4i`END`PLN\n' +
1242+
'`END`LIT123e-4i`END`PLN\n' +
1243+
'`END`COM## Hex numbers`END`PLN\n' +
1244+
'`END`LIT0xabcdefABCDEF01234`END`PLN\n' +
1245+
'`END`LIT0xabcp123`END`PLN\n' +
1246+
'`END`LIT0xabcP123`END`PLN\n' +
1247+
'`END`COM## Not hex`END`PLN\n' +
1248+
'`END`LIT0`END`PLNxg\n' +
1249+
'\n' +
1250+
'`END`COM## Special operators %xyz%`END`PLN\n' +
1251+
'`END`COM## %xyz%`END`PLN\n' +
1252+
'`END`LIT1`END`PLN `END`PUN%%`END`PLN `END`LIT2`END`PLN\n' +
1253+
'diag`END`PUN(`END`LIT2`END`PUN)`END`PLN `END`PUN%*%`END`PLN diag`END`PUN(`END`LIT2`END`PUN)`END`PLN\n' +
1254+
'`END`LIT1`END`PLN `END`PUN%/%`END`PLN `END`LIT2`END`PLN\n' +
1255+
'`END`LIT1`END`PLN `END`PUN%in%`END`PLN `END`LIT1`END`PUN:`END`LIT10`END`PLN\n' +
1256+
'diag`END`PUN(`END`LIT2`END`PUN)`END`PLN `END`PUN%o%`END`PLN diag`END`PUN(`END`LIT2`END`PUN)`END`PLN\n' +
1257+
'diag`END`PUN(`END`LIT2`END`PUN)`END`PLN `END`PUN%x%`END`PLN diag`END`PUN(`END`LIT2`END`PUN)`END`PLN\n' +
1258+
'`END`STR`%foo bar%``END`PLN `END`PUN&lt;-`END`PLN `END`KWDfunction`END`PUN(`END`PLNx`END`PUN,`END`PLN y`END`PUN)`END`PLN x `END`PUN+`END`PLN y\n' +
1259+
'`END`LIT1`END`PLN `END`PUN%foo bar%`END`PLN `END`LIT2`END`PLN\n' +
1260+
'\n' +
1261+
'`END`COM## Control Structures (3.2) and Function`END`PLN\n' +
1262+
'`END`COM## if, else`END`PLN\n' +
1263+
'`END`KWDif`END`PLN `END`PUN(`END`LITTRUE`END`PUN)`END`PLN print`END`PUN(`END`STR"foo"`END`PUN)`END`PLN `END`KWDelse`END`PLN print`END`PUN(`END`STR"bar"`END`PUN)`END`PLN\n' +
1264+
'`END`COM## For, in`END`PLN\n' +
1265+
'`END`KWDfor`END`PUN(`END`PLNi `END`KWDin`END`PLN `END`LIT1`END`PUN:`END`LIT5`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
1266+
' print`END`PUN(`END`PLNi`END`PUN)`END`PLN\n' +
1267+
'`END`PUN}`END`PLN\n' +
1268+
'`END`COM## While, break`END`PLN\n' +
1269+
'i `END`PUN&lt;-`END`PLN `END`LIT1`END`PLN\n' +
1270+
'`END`KWDwhile`END`PLN `END`PUN(`END`LITTRUE`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
1271+
' i `END`PUN&lt;-`END`PLN i `END`PUN+`END`PLN `END`LIT1`END`PLN\n' +
1272+
' `END`KWDif`END`PLN `END`PUN(`END`PLNi `END`PUN&gt;`END`PLN `END`LIT3`END`PUN)`END`PLN `END`KWDbreak`END`PLN\n' +
1273+
'`END`PUN}`END`PLN\n' +
1274+
'`END`COM## Repeat`END`PLN\n' +
1275+
'`END`KWDrepeat`END`PLN `END`PUN{`END`LIT1+1`END`PUN}`END`PLN\n' +
1276+
'`END`COM## Switch`END`PLN\n' +
1277+
'x `END`PUN&lt;-`END`PLN `END`LIT3`END`PLN\n' +
1278+
'`END`KWDswitch`END`PUN(`END`PLNx`END`PUN,`END`PLN `END`LIT2+2`END`PUN,`END`PLN mean`END`PUN(`END`LIT1`END`PUN:`END`LIT10`END`PUN),`END`PLN rnorm`END`PUN(`END`LIT5`END`PUN))`END`PLN\n' +
1279+
'`END`COM## Function, dot-dot-dot, return`END`PLN\n' +
1280+
'foo `END`PUN&lt;-`END`PLN `END`KWDfunction`END`PUN(`END`LIT...`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
1281+
' `END`KWDreturn`END`PUN(`END`PLNsum`END`PUN(`END`LIT...`END`PUN))`END`PLN\n' +
1282+
'`END`PUN}`END`PLN\n' +
1283+
'`END`COM# Not keywords`END`PLN\n' +
1284+
'functiona `END`PUN&lt;-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN\n' +
1285+
'function. `END`PUN&lt;-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN\n' +
1286+
'function1 `END`PUN&lt;-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN\n' +
1287+
'\n' +
1288+
'\n' +
1289+
'`END`COM## Grouping Tokens 10.3.7`END`PLN\n' +
1290+
'`END`COM## Parentheses`END`PLN\n' +
1291+
'`END`LIT1`END`PLN `END`PUN+`END`PLN `END`PUN(`END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT3`END`PUN)`END`PLN\n' +
1292+
'`END`COM## brackets`END`PLN\n' +
1293+
'foo `END`PUN&lt;-`END`PLN `END`KWDfunction`END`PUN(`END`PLNa`END`PUN)`END`PLN `END`PUN{`END`PLN\n' +
1294+
' a `END`PUN+`END`PLN `END`LIT1`END`PLN\n' +
1295+
'`END`PUN}`END`PLN\n' +
1296+
'\n' +
1297+
'`END`COM## Indexing 10.3.8`END`PLN\n' +
1298+
'`END`COM## []`END`PLN\n' +
1299+
'bar `END`PUN&lt;-`END`PLN `END`LIT1`END`PUN:`END`LIT10`END`PLN\n' +
1300+
'bar`END`PUN[`END`LIT3`END`PUN]`END`PLN\n' +
1301+
'`END`COM## [[]]`END`PLN\n' +
1302+
'foo `END`PUN&lt;-`END`PLN list`END`PUN(`END`PLNa`END`PUN=`END`LIT1`END`PUN,`END`PLN b`END`PUN=`END`LIT2`END`PUN,`END`PLN c`END`PUN=`END`LIT3`END`PUN)`END`PLN\n' +
1303+
'foo`END`PUN[[`END`STR"a"`END`PUN]]`END`PLN\n' +
1304+
'`END`COM## $`END`PLN\n' +
1305+
'foo`END`PUN$`END`PLNa\n' +
1306+
'foo`END`PUN$`END`STR"a"`END`PLN\n' +
1307+
'\n' +
1308+
'`END`COM## Operators`END`PLN\n' +
1309+
'`END`LIT2`END`PLN `END`PUN-`END`PLN `END`LIT2`END`PLN\n' +
1310+
'`END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN\n' +
1311+
'`END`LIT2`END`PLN `END`PUN~`END`PLN `END`LIT2`END`PLN\n' +
1312+
'`END`PUN!`END`PLN `END`LITTRUE`END`PLN\n' +
1313+
'`END`PUN?`END`STR"help"`END`PLN\n' +
1314+
'`END`LIT1`END`PUN:`END`LIT2`END`PLN\n' +
1315+
'`END`LIT2`END`PLN `END`PUN*`END`PLN `END`LIT2`END`PLN\n' +
1316+
'`END`LIT2`END`PLN `END`PUN/`END`PLN `END`LIT2`END`PLN\n' +
1317+
'`END`LIT2`END`PUN^`END`LIT2`END`PLN\n' +
1318+
'`END`LIT2`END`PLN `END`PUN&lt;`END`PLN `END`LIT2`END`PLN\n' +
1319+
'`END`LIT2`END`PLN `END`PUN&gt;`END`PLN `END`LIT2`END`PLN\n' +
1320+
'`END`LIT2`END`PLN `END`PUN==`END`PLN `END`LIT2`END`PLN\n' +
1321+
'`END`LIT2`END`PLN `END`PUN&gt;=`END`PLN `END`LIT2`END`PLN\n' +
1322+
'`END`LIT2`END`PLN `END`PUN&lt;=`END`PLN `END`LIT2`END`PLN\n' +
1323+
'`END`LIT2`END`PLN `END`PUN!=`END`PLN `END`LIT2`END`PLN\n' +
1324+
'`END`LITTRUE`END`PLN `END`PUN&amp;`END`PLN `END`LITFALSE`END`PLN\n' +
1325+
'`END`LITTRUE`END`PLN `END`PUN&amp;&amp;`END`PLN `END`LITFALSE`END`PLN\n' +
1326+
'`END`LITTRUE`END`PLN `END`PUN|`END`PLN `END`LITFALSE`END`PLN\n' +
1327+
'`END`LITTRUE`END`PLN `END`PUN||`END`PLN `END`LITFALSE`END`PLN\n' +
1328+
'foo `END`PUN&lt;-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN\n' +
1329+
'foo `END`PUN=`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN\n' +
1330+
'`END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN `END`PUN-&gt;`END`PLN foo\n' +
1331+
'foo `END`PUN&lt;&lt;-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN\n' +
1332+
'`END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN `END`PUN-&gt;&gt;`END`PLN foo\n' +
1333+
'base`END`PUN:::`END`PLNsum\n' +
1334+
'base`END`PUN::`END`PLNsum\n' +
1335+
'\n' +
1336+
'`END`COM## Strings`END`PLN\n' +
1337+
'foo `END`PUN&lt;-`END`PLN `END`STR"hello, world!"`END`PLN\n' +
1338+
'foo `END`PUN&lt;-`END`PLN `END`STR\'hello, world!\'`END`PLN\n' +
1339+
'foo `END`PUN&lt;-`END`PLN `END`STR"Hello, \'world!"`END`PLN\n' +
1340+
'foo `END`PUN&lt;-`END`PLN `END`STR\'Hello, "world!\'`END`PLN\n' +
1341+
'foo `END`PUN&lt;-`END`PLN `END`STR\'Hello, \\\'world!\\\'\'`END`PLN\n' +
1342+
'foo `END`PUN&lt;-`END`PLN `END`STR"Hello, \\"world!\\""`END`PLN\n' +
1343+
'foo `END`PUN&lt;-`END`PLN `END`STR"Hello,\n' +
1344+
'world!"`END`PLN\n' +
1345+
'foo `END`PUN&lt;-`END`PLN `END`STR\'Hello,\n' +
1346+
'world!\'`END`PLN\n' +
1347+
'\n' +
1348+
'`END`COM## Backtick strings`END`PLN\n' +
1349+
'`END`STR`foo123 +!"bar\'baz``END`PLN `END`PUN&lt;-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END'
10401350
)
10411351
};
10421352
</script>

0 commit comments

Comments
 (0)