- update to r233 of google-code-prettify (added R/S language testcases)
diff --git a/test/prettify/PrettifyTest.java b/test/prettify/PrettifyTest.java index 7a360cb..844e92a 100644 --- a/test/prettify/PrettifyTest.java +++ b/test/prettify/PrettifyTest.java
@@ -162,6 +162,7 @@ test("yaml", "yaml1", false); test("yaml", "yaml2", false); test("tcl", "tcl_lang", false); + test("r", "r_lang", false); } /**
diff --git a/test/prettify/PrettifyTest/result/r_lang.txt b/test/prettify/PrettifyTest/result/r_lang.txt new file mode 100644 index 0000000..035cc8b --- /dev/null +++ b/test/prettify/PrettifyTest/result/r_lang.txt
@@ -0,0 +1,152 @@ +`COM### Example R script for syntax highlighting`END`PLN + +`END`COM# This is a comment`END`PLN + +`END`COM## Valid names`END`PLN +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV0123456789._a `END`PUN<-`END`PLN `END`LITNULL`END`PLN +.foo_ `END`PUN<-`END`PLN `END`LITNULL`END`PLN +._foo `END`PUN<-`END`PLN `END`LITNULL`END`PLN + +`END`COM## Invalid names`END`PLN +`END`LIT0`END`PLNabc `END`PUN<-`END`PLN `END`LITNULL`END`PLN +`END`LIT.0`END`PLNabc `END`PUN<-`END`PLN `END`LITNULL`END`PLN +abc`END`PUN+`END`PLNcde `END`PUN<-`END`PLN `END`LITNULL`END`PLN + +`END`COM## Reserved Words`END`PLN +`END`LITNA`END`PLN +`END`LITNA_integer_`END`PLN +`END`LITNA_real_`END`PLN +`END`LITNA_character_`END`PLN +`END`LITNA_complex_`END`PLN +`END`LITNULL`END`PLN +`END`LITNaN`END`PLN +`END`LITInf`END`PLN +`END`COM## Not reserved`END`PLN +NULLa `END`PUN<-`END`PLN `END`LITNULL`END`PLN +NULL1 `END`PUN<-`END`PLN `END`LITNULL`END`PLN +NULL. `END`PUN<-`END`PLN `END`LITNULL`END`PLN +NA_foo_ `END`PUN<-`END`PLN `END`LITNULL`END`PLN + +`END`COM## Numbers`END`PLN +`END`LIT12345678901`END`PLN +`END`LIT123456.78901`END`PLN +`END`LIT123e3`END`PLN +`END`LIT123E3`END`PLN +`END`LIT1.23e-3`END`PLN +`END`LIT1.23e3`END`PLN +`END`LIT1.23e-3`END`PLN +`END`COM## integer constants`END`PLN +`END`LIT123L`END`PLN +`END`LIT1.23L`END`PLN +`END`COM## imaginary numbers`END`PLN +`END`LIT123i`END`PLN +`END`LIT-123i`END`PLN +`END`LIT123e4i`END`PLN +`END`LIT123e-4i`END`PLN +`END`COM## Hex numbers`END`PLN +`END`LIT0xabcdefABCDEF01234`END`PLN +`END`LIT0xabcp123`END`PLN +`END`LIT0xabcP123`END`PLN +`END`COM## Not hex`END`PLN +`END`LIT0`END`PLNxg + +`END`COM## Special operators %xyz%`END`PLN +`END`COM## %xyz%`END`PLN +`END`LIT1`END`PLN `END`PUN%%`END`PLN `END`LIT2`END`PLN +diag`END`PUN(`END`LIT2`END`PUN)`END`PLN `END`PUN%*%`END`PLN diag`END`PUN(`END`LIT2`END`PUN)`END`PLN +`END`LIT1`END`PLN `END`PUN%/%`END`PLN `END`LIT2`END`PLN +`END`LIT1`END`PLN `END`PUN%in%`END`PLN `END`LIT1`END`PUN:`END`LIT10`END`PLN +diag`END`PUN(`END`LIT2`END`PUN)`END`PLN `END`PUN%o%`END`PLN diag`END`PUN(`END`LIT2`END`PUN)`END`PLN +diag`END`PUN(`END`LIT2`END`PUN)`END`PLN `END`PUN%x%`END`PLN diag`END`PUN(`END`LIT2`END`PUN)`END`PLN +`END`STR`%foo bar%``END`PLN `END`PUN<-`END`PLN `END`KWDfunction`END`PUN(`END`PLNx`END`PUN,`END`PLN y`END`PUN)`END`PLN x `END`PUN+`END`PLN y +`END`LIT1`END`PLN `END`PUN%foo bar%`END`PLN `END`LIT2`END`PLN + +`END`COM## Control Structures (3.2) and Function`END`PLN +`END`COM## if, else`END`PLN +`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 +`END`COM## For, in`END`PLN +`END`KWDfor`END`PUN(`END`PLNi `END`KWDin`END`PLN `END`LIT1`END`PUN:`END`LIT5`END`PUN)`END`PLN `END`PUN{`END`PLN + print`END`PUN(`END`PLNi`END`PUN)`END`PLN +`END`PUN}`END`PLN +`END`COM## While, break`END`PLN +i `END`PUN<-`END`PLN `END`LIT1`END`PLN +`END`KWDwhile`END`PLN `END`PUN(`END`LITTRUE`END`PUN)`END`PLN `END`PUN{`END`PLN + i `END`PUN<-`END`PLN i `END`PUN+`END`PLN `END`LIT1`END`PLN + `END`KWDif`END`PLN `END`PUN(`END`PLNi `END`PUN>`END`PLN `END`LIT3`END`PUN)`END`PLN `END`KWDbreak`END`PLN +`END`PUN}`END`PLN +`END`COM## Repeat`END`PLN +`END`KWDrepeat`END`PLN `END`PUN{`END`LIT1+1`END`PUN}`END`PLN +`END`COM## Switch`END`PLN +x `END`PUN<-`END`PLN `END`LIT3`END`PLN +`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 +`END`COM## Function, dot-dot-dot, return`END`PLN +foo `END`PUN<-`END`PLN `END`KWDfunction`END`PUN(`END`LIT...`END`PUN)`END`PLN `END`PUN{`END`PLN + `END`KWDreturn`END`PUN(`END`PLNsum`END`PUN(`END`LIT...`END`PUN))`END`PLN +`END`PUN}`END`PLN +`END`COM# Not keywords`END`PLN +functiona `END`PUN<-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN +function. `END`PUN<-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN +function1 `END`PUN<-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN + + +`END`COM## Grouping Tokens 10.3.7`END`PLN +`END`COM## Parentheses`END`PLN +`END`LIT1`END`PLN `END`PUN+`END`PLN `END`PUN(`END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT3`END`PUN)`END`PLN +`END`COM## brackets`END`PLN +foo `END`PUN<-`END`PLN `END`KWDfunction`END`PUN(`END`PLNa`END`PUN)`END`PLN `END`PUN{`END`PLN + a `END`PUN+`END`PLN `END`LIT1`END`PLN +`END`PUN}`END`PLN + +`END`COM## Indexing 10.3.8`END`PLN +`END`COM## []`END`PLN +bar `END`PUN<-`END`PLN `END`LIT1`END`PUN:`END`LIT10`END`PLN +bar`END`PUN[`END`LIT3`END`PUN]`END`PLN +`END`COM## [[]]`END`PLN +foo `END`PUN<-`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 +foo`END`PUN[[`END`STR"a"`END`PUN]]`END`PLN +`END`COM## $`END`PLN +foo`END`PUN$`END`PLNa +foo`END`PUN$`END`STR"a"`END`PLN + +`END`COM## Operators`END`PLN +`END`LIT2`END`PLN `END`PUN-`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN~`END`PLN `END`LIT2`END`PLN +`END`PUN!`END`PLN `END`LITTRUE`END`PLN +`END`PUN?`END`STR"help"`END`PLN +`END`LIT1`END`PUN:`END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN*`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN/`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PUN^`END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN<`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN>`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN==`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN>=`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN<=`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN!=`END`PLN `END`LIT2`END`PLN +`END`LITTRUE`END`PLN `END`PUN&`END`PLN `END`LITFALSE`END`PLN +`END`LITTRUE`END`PLN `END`PUN&&`END`PLN `END`LITFALSE`END`PLN +`END`LITTRUE`END`PLN `END`PUN|`END`PLN `END`LITFALSE`END`PLN +`END`LITTRUE`END`PLN `END`PUN||`END`PLN `END`LITFALSE`END`PLN +foo `END`PUN<-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN +foo `END`PUN=`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN `END`PUN->`END`PLN foo +foo `END`PUN<<-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN +`END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END`PLN `END`PUN->>`END`PLN foo +base`END`PUN:::`END`PLNsum +base`END`PUN::`END`PLNsum + +`END`COM## Strings`END`PLN +foo `END`PUN<-`END`PLN `END`STR"hello, world!"`END`PLN +foo `END`PUN<-`END`PLN `END`STR'hello, world!'`END`PLN +foo `END`PUN<-`END`PLN `END`STR"Hello, 'world!"`END`PLN +foo `END`PUN<-`END`PLN `END`STR'Hello, "world!'`END`PLN +foo `END`PUN<-`END`PLN `END`STR'Hello, \'world!\''`END`PLN +foo `END`PUN<-`END`PLN `END`STR"Hello, \"world!\""`END`PLN +foo `END`PUN<-`END`PLN `END`STR"Hello, +world!"`END`PLN +foo `END`PUN<-`END`PLN `END`STR'Hello, +world!'`END`PLN + +`END`COM## Backtick strings`END`PLN +`END`STR`foo123 +!"bar'baz``END`PLN `END`PUN<-`END`PLN `END`LIT2`END`PLN `END`PUN+`END`PLN `END`LIT2`END'
diff --git a/test/prettify/PrettifyTest/source/r_lang.txt b/test/prettify/PrettifyTest/source/r_lang.txt new file mode 100644 index 0000000..ae41e91 --- /dev/null +++ b/test/prettify/PrettifyTest/source/r_lang.txt
@@ -0,0 +1,152 @@ +### Example R script for syntax highlighting + +# This is a comment + +## Valid names +abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV0123456789._a <- NULL +.foo_ <- NULL +._foo <- NULL + +## Invalid names +0abc <- NULL +.0abc <- NULL +abc+cde <- NULL + +## Reserved Words +NA +NA_integer_ +NA_real_ +NA_character_ +NA_complex_ +NULL +NaN +Inf +## Not reserved +NULLa <- NULL +NULL1 <- NULL +NULL. <- NULL +NA_foo_ <- NULL + +## Numbers +12345678901 +123456.78901 +123e3 +123E3 +1.23e-3 +1.23e3 +1.23e-3 +## integer constants +123L +1.23L +## imaginary numbers +123i +-123i +123e4i +123e-4i +## Hex numbers +0xabcdefABCDEF01234 +0xabcp123 +0xabcP123 +## Not hex +0xg + +## Special operators %xyz% +## %xyz% +1 %% 2 +diag(2) %*% diag(2) +1 %/% 2 +1 %in% 1:10 +diag(2) %o% diag(2) +diag(2) %x% diag(2) +`%foo bar%` <- function(x, y) x + y +1 %foo bar% 2 + +## Control Structures (3.2) and Function +## if, else +if (TRUE) print("foo") else print("bar") +## For, in +for(i in 1:5) { + print(i) +} +## While, break +i <- 1 +while (TRUE) { + i <- i + 1 + if (i > 3) break +} +## Repeat +repeat {1+1} +## Switch +x <- 3 +switch(x, 2+2, mean(1:10), rnorm(5)) +## Function, dot-dot-dot, return +foo <- function(...) { + return(sum(...)) +} +# Not keywords +functiona <- 2 + 2 +function. <- 2 + 2 +function1 <- 2 + 2 + + +## Grouping Tokens 10.3.7 +## Parentheses +1 + (2 + 3) +## brackets +foo <- function(a) { + a + 1 +} + +## Indexing 10.3.8 +## [] +bar <- 1:10 +bar[3] +## [[]] +foo <- list(a=1, b=2, c=3) +foo[["a"]] +## $ +foo$a +foo$"a" + +## Operators +2 - 2 +2 + 2 +2 ~ 2 +! TRUE +?"help" +1:2 +2 * 2 +2 / 2 +2^2 +2 < 2 +2 > 2 +2 == 2 +2 >= 2 +2 <= 2 +2 != 2 +TRUE & FALSE +TRUE && FALSE +TRUE | FALSE +TRUE || FALSE +foo <- 2 + 2 +foo = 2 + 2 +2 + 2 -> foo +foo <<- 2 + 2 +2 + 2 ->> foo +base:::sum +base::sum + +## Strings +foo <- "hello, world!" +foo <- 'hello, world!' +foo <- "Hello, 'world!" +foo <- 'Hello, "world!' +foo <- 'Hello, \'world!\'' +foo <- "Hello, \"world!\"" +foo <- "Hello, +world!" +foo <- 'Hello, +world!' + +## Backtick strings +`foo123 +!"bar'baz` <- 2 + 2 \ No newline at end of file