Add lexer test runner and whitespace characters tests

Whitespace characters for the tests are U+000B, U+000C, U+000D, U+0085, U+2028, U+2029
This commit is contained in:
victor.petukhov
2018-10-25 18:58:43 +03:00
parent fe072e3366
commit 9a61998fca
47 changed files with 1306 additions and 65 deletions
@@ -0,0 +1 @@
val x = 1
@@ -0,0 +1,15 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('1')
WHITE_SPACE ('\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('y')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('2')
@@ -0,0 +1,12 @@
// some
comment
//
some comment
/*
*/
/* some
comment */
/*
some comment */
/* some comment
@@ -0,0 +1,25 @@
EOL_COMMENT ('// some')
WHITE_SPACE ('\n')
IDENTIFIER ('comment')
WHITE_SPACE ('\n')
EOL_COMMENT ('//')
WHITE_SPACE ('\n')
IDENTIFIER ('some')
WHITE_SPACE (' ')
IDENTIFIER ('comment')
WHITE_SPACE ('\n\n')
BLOCK_COMMENT ('/*\n*/')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some\ncomment */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/*\nsome comment */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment\n*/')
WHITE_SPACE ('\n\n')
KDoc ('/**\n*/')
WHITE_SPACE ('\n')
KDoc ('/** some\ndoc */')
WHITE_SPACE ('\n')
KDoc ('/**\nsome doc */')
WHITE_SPACE ('\n')
KDoc ('/** some doc\n*/')
@@ -0,0 +1,17 @@
val x1 = ".
."
val x2 = ". .
"
val x3 = "
. ."
val x4 = '
'
val x5 = """.
."""
val x6 = """. .
"""
@@ -0,0 +1,109 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x1')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. ')
DANGLING_NEWLINE ('')
WHITE_SPACE ('\n ')
DOT ('.')
OPEN_QUOTE ('"')
DANGLING_NEWLINE ('')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x2')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .')
DANGLING_NEWLINE ('')
WHITE_SPACE ('\n')
OPEN_QUOTE ('"')
DANGLING_NEWLINE ('')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x3')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
DANGLING_NEWLINE ('')
WHITE_SPACE ('\n')
DOT ('.')
WHITE_SPACE (' ')
DOT ('.')
OPEN_QUOTE ('"')
DANGLING_NEWLINE ('')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x4')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
CHARACTER_LITERAL (''')
WHITE_SPACE ('\n')
CHARACTER_LITERAL (''')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x5')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. ')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART (' .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x6')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .')
REGULAR_STRING_PART ('\n')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x7')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x8')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('.')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x9')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('.')
CLOSING_QUOTE ('"""')
@@ -0,0 +1,3 @@
val x = 1
val y = 2
@@ -0,0 +1,17 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('1')
WHITE_SPACE ('\n')
BAD_CHARACTER ('')
WHITE_SPACE ('\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('y')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('2')
@@ -0,0 +1,12 @@
// someomment
//some comment
/**/
/* some comment */
/some comment */
/* some comment*/
/** */
/** somedoc */
/**some doc */
/** some doc*/
@@ -0,0 +1,26 @@
EOL_COMMENT ('// someomment')
WHITE_SPACE ('\n')
EOL_COMMENT ('//some comment')
WHITE_SPACE ('\n\n')
BLOCK_COMMENT ('/**/')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment */')
WHITE_SPACE ('\n')
DIV ('/')
BAD_CHARACTER ('')
IDENTIFIER ('some')
WHITE_SPACE (' ')
IDENTIFIER ('comment')
WHITE_SPACE (' ')
MUL ('*')
DIV ('/')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment*/')
WHITE_SPACE ('\n\n')
KDoc ('/** */')
WHITE_SPACE ('\n')
KDoc ('/** somedoc */')
WHITE_SPACE ('\n')
KDoc ('/**some doc */')
WHITE_SPACE ('\n')
KDoc ('/** some doc*/')
@@ -0,0 +1,20 @@
val x1 = ". ."
val x2 = ". ."
val x3 = ". ."
val x4 = ''
val x5 = """. ."""
val x6 = """. ."""
val x7 = """. ."""
val x8 = """.
."""
val x9 = """.
."""
@@ -0,0 +1,93 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x1')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x2')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x3')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x4')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
CHARACTER_LITERAL ('''')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x5')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x6')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x7')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x8')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('.')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x9')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('.')
CLOSING_QUOTE ('"""')
@@ -0,0 +1,4 @@
val x = 1
…
val y = 2
@@ -0,0 +1,17 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('1')
WHITE_SPACE ('\n')
BAD_CHARACTER ('…')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('y')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('2')
@@ -0,0 +1,12 @@
// some…comment
//…some comment
/*…*/
/* some…comment */
/*…some comment */
/* some comment…*/
/** */
/** some…doc */
/**…some doc */
/** some doc…*/
@@ -0,0 +1,19 @@
EOL_COMMENT ('// some…comment')
WHITE_SPACE ('\n')
EOL_COMMENT ('//…some comment')
WHITE_SPACE ('\n\n')
BLOCK_COMMENT ('/*…*/')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some…comment */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/*…some comment */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment…*/')
WHITE_SPACE ('\n\n')
KDoc ('/** */')
WHITE_SPACE ('\n')
KDoc ('/** some…doc */')
WHITE_SPACE ('\n')
KDoc ('/**…some doc */')
WHITE_SPACE ('\n')
KDoc ('/** some doc…*/')
@@ -0,0 +1,20 @@
val x1 = ". … ."
val x2 = ". .…"
val x3 = "…. ."
val x4 = '…'
val x5 = """. … ."""
val x6 = """. .…"""
val x7 = """…. ."""
val x8 = """.
…."""
val x9 = """.
…
."""
@@ -0,0 +1,93 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x1')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. … .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x2')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .…')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x3')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('…. .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x4')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
CHARACTER_LITERAL (''…'')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x5')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. … .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x6')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .…')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x7')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('…. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x8')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('….')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x9')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('…')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('.')
CLOSING_QUOTE ('"""')
@@ -0,0 +1,2 @@
val x = 1
val y = 2
@@ -0,0 +1,15 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('1')
WHITE_SPACE ('\n ')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('y')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('2')
@@ -0,0 +1,12 @@
// some comment
// some comment
/* */
/* some comment */
/* some comment */
/* some comment */
/** */
/** some doc */
/** some doc */
/** some doc */
@@ -0,0 +1,19 @@
EOL_COMMENT ('// some comment')
WHITE_SPACE ('\n')
EOL_COMMENT ('// some comment')
WHITE_SPACE ('\n\n')
BLOCK_COMMENT ('/* */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment */')
WHITE_SPACE ('\n\n')
KDoc ('/** */')
WHITE_SPACE ('\n')
KDoc ('/** some doc */')
WHITE_SPACE ('\n')
KDoc ('/** some doc */')
WHITE_SPACE ('\n')
KDoc ('/** some doc */')
@@ -0,0 +1,20 @@
val x1 = ". ."
val x2 = ". . "
val x3 = " . ."
val x4 = ' '
val x5 = """. ."""
val x6 = """. . """
val x7 = """ . ."""
val x8 = """.
."""
val x9 = """.
."""
@@ -0,0 +1,93 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x1')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x2')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. . ')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x3')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART (' . .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x4')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
CHARACTER_LITERAL ('' '')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x5')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x6')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. . ')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x7')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART (' . .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x8')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART (' .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x9')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART (' ')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('.')
CLOSING_QUOTE ('"""')
@@ -0,0 +1,3 @@
val x = 1
val y = 2
@@ -0,0 +1,17 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('1')
WHITE_SPACE ('\n')
BAD_CHARACTER ('')
WHITE_SPACE ('\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('y')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('2')
@@ -0,0 +1,12 @@
// someomment
//some comment
/**/
/* some comment */
/some comment */
/* some comment*/
/** */
/** somedoc */
/**some doc */
/** some doc*/
@@ -0,0 +1,26 @@
EOL_COMMENT ('// someomment')
WHITE_SPACE ('\n')
EOL_COMMENT ('//some comment')
WHITE_SPACE ('\n\n')
BLOCK_COMMENT ('/**/')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment */')
WHITE_SPACE ('\n')
DIV ('/')
BAD_CHARACTER ('')
IDENTIFIER ('some')
WHITE_SPACE (' ')
IDENTIFIER ('comment')
WHITE_SPACE (' ')
MUL ('*')
DIV ('/')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment*/')
WHITE_SPACE ('\n\n')
KDoc ('/** */')
WHITE_SPACE ('\n')
KDoc ('/** somedoc */')
WHITE_SPACE ('\n')
KDoc ('/**some doc */')
WHITE_SPACE ('\n')
KDoc ('/** some doc*/')
@@ -0,0 +1,20 @@
val x1 = ". ."
val x2 = ". ."
val x3 = ". ."
val x4 = ''
val x5 = """. ."""
val x6 = """. ."""
val x7 = """. ."""
val x8 = """.
."""
val x9 = """.
."""
@@ -0,0 +1,93 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x1')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x2')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x3')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x4')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
CHARACTER_LITERAL ('''')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x5')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x6')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x7')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x8')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('.')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x9')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('.')
CLOSING_QUOTE ('"""')
@@ -0,0 +1,2 @@
val x = 1
val y = 2
@@ -0,0 +1,16 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('1')
WHITE_SPACE ('\n')
BAD_CHARACTER (' ')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('y')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
INTEGER_LITERAL ('2')
@@ -0,0 +1,12 @@
// some comment
// some comment
/* */
/* some comment */
/* some comment */
/* some comment */
/** */
/** some doc */
/** some doc */
/** some doc */
@@ -0,0 +1,19 @@
EOL_COMMENT ('// some comment')
WHITE_SPACE ('\n')
EOL_COMMENT ('// some comment')
WHITE_SPACE ('\n\n')
BLOCK_COMMENT ('/* */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment */')
WHITE_SPACE ('\n')
BLOCK_COMMENT ('/* some comment */')
WHITE_SPACE ('\n\n')
KDoc ('/** */')
WHITE_SPACE ('\n')
KDoc ('/** some doc */')
WHITE_SPACE ('\n')
KDoc ('/** some doc */')
WHITE_SPACE ('\n')
KDoc ('/** some doc */')
@@ -0,0 +1,20 @@
val x1 = ". ."
val x2 = ". . "
val x3 = " . ."
val x4 = ' '
val x5 = """. ."""
val x6 = """. . """
val x7 = """ . ."""
val x8 = """.
."""
val x9 = """.
."""
@@ -0,0 +1,93 @@
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x1')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x2')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART ('. . ')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x3')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"')
REGULAR_STRING_PART (' . .')
CLOSING_QUOTE ('"')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x4')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
CHARACTER_LITERAL ('' '')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x5')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x6')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('. . ')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x7')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART (' . .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x8')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART (' .')
CLOSING_QUOTE ('"""')
WHITE_SPACE ('\n\n')
val ('val')
WHITE_SPACE (' ')
IDENTIFIER ('x9')
WHITE_SPACE (' ')
EQ ('=')
WHITE_SPACE (' ')
OPEN_QUOTE ('"""')
REGULAR_STRING_PART ('.')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART (' ')
REGULAR_STRING_PART ('\n')
REGULAR_STRING_PART ('.')
CLOSING_QUOTE ('"""')
@@ -29,7 +29,8 @@ import org.jetbrains.kotlin.ir.AbstractIrSourceRangesTestCase
import org.jetbrains.kotlin.ir.AbstractIrTextTestCase
import org.jetbrains.kotlin.jvm.compiler.*
import org.jetbrains.kotlin.jvm.compiler.javac.AbstractLoadJavaUsingJavacTest
import org.jetbrains.kotlin.kdoc.AbstractKDocLexerTest
import org.jetbrains.kotlin.lexer.kdoc.AbstractKDocLexerTest
import org.jetbrains.kotlin.lexer.kotlin.AbstractKotlinLexerTest
import org.jetbrains.kotlin.modules.xml.AbstractModuleXmlParserTest
import org.jetbrains.kotlin.multiplatform.AbstractMultiPlatformIntegrationTest
import org.jetbrains.kotlin.parsing.AbstractParsingTest
@@ -350,7 +351,11 @@ fun main(args: Array<String>) {
}
testClass<AbstractKDocLexerTest> {
model("kdoc/lexer")
model("lexer/kdoc")
}
testClass<AbstractKotlinLexerTest> {
model("lexer/kotlin")
}
testClass<AbstractIrBlackBoxCodegenTest> {
@@ -1,58 +0,0 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.kdoc
import com.intellij.lang.TokenWrapper
import com.intellij.lexer.Lexer
import com.intellij.openapi.util.text.StringUtil
import junit.framework.TestCase
import org.jetbrains.kotlin.kdoc.lexer.KDocLexer
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase
import java.io.File
abstract class AbstractKDocLexerTest : TestCase() {
protected fun doTest(fileName: String) {
val text = File(fileName).readText()
val lexerResult = printTokens(StringUtil.convertLineSeparators(text), 0, KDocLexer())
KtUsefulTestCase.assertSameLinesWithFile(fileName.replaceAfterLast(".", "txt"), lexerResult)
}
fun printTokens(text: CharSequence, start: Int, lexer: Lexer): String {
lexer.start(text, start, text.length)
var result = ""
while (true) {
val tokenType = lexer.tokenType ?: break
val tokenText = getTokenText(lexer)
val tokenTypeName = tokenType.toString()
val line = "$tokenTypeName ('$tokenText')\n"
result += line
lexer.advance()
}
return result
}
private fun getTokenText(lexer: Lexer): String {
val tokenType = lexer.tokenType
if (tokenType is TokenWrapper) {
return tokenType.value
}
var text = lexer.bufferSequence.subSequence(lexer.tokenStart, lexer.tokenEnd).toString()
text = StringUtil.replace(text, "\n", "\\n")
return text
}
}
@@ -0,0 +1,45 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.lexer
import com.intellij.lang.TokenWrapper
import com.intellij.lexer.Lexer
import com.intellij.openapi.util.text.StringUtil
import junit.framework.TestCase
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase
import java.io.File
abstract class AbstractLexerTest(private val lexer: Lexer) : TestCase() {
protected fun doTest(fileName: String) {
val text = File(fileName).readText()
val lexerResult = printTokens(StringUtil.convertLineSeparators(text), 0, lexer)
KtUsefulTestCase.assertSameLinesWithFile(fileName.replaceAfterLast(".", "txt"), lexerResult)
}
private fun printTokens(text: CharSequence, start: Int, lexer: Lexer): String {
lexer.start(text, start, text.length)
return buildString {
while (true) {
val tokenType = lexer.tokenType ?: break
append("$tokenType ('${getTokenText(lexer)}')\n")
lexer.advance()
}
}
}
private fun getTokenText(lexer: Lexer): String {
val tokenType = lexer.tokenType
if (tokenType is TokenWrapper)
return tokenType.value
val result = lexer.bufferSequence.subSequence(lexer.tokenStart, lexer.tokenEnd).toString()
return StringUtil.replace(result, "\n", "\\n")
}
}
@@ -0,0 +1,11 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.lexer.kdoc
import org.jetbrains.kotlin.kdoc.lexer.KDocLexer
import org.jetbrains.kotlin.lexer.AbstractLexerTest
abstract class AbstractKDocLexerTest : AbstractLexerTest(KDocLexer())
@@ -3,7 +3,7 @@
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.kdoc;
package org.jetbrains.kotlin.lexer.kdoc;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
@@ -17,7 +17,7 @@ import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/kdoc/lexer")
@TestMetadata("compiler/testData/lexer/kdoc")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public class KDocLexerTestGenerated extends AbstractKDocLexerTest {
@@ -25,12 +25,17 @@ public class KDocLexerTestGenerated extends AbstractKDocLexerTest {
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
}
public void testAllFilesPresentInLexer() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/kdoc/lexer"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
public void testAllFilesPresentInKdoc() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/lexer/kdoc"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("codeBlocks.kt")
public void testCodeBlocks() throws Exception {
runTest("compiler/testData/kdoc/lexer/codeBlocks.kt");
runTest("compiler/testData/lexer/kdoc/codeBlocks.kt");
}
@TestMetadata("codeBlocksWithVerticalTabs.kt")
public void testCodeBlocksWithVerticalTabs() throws Exception {
runTest("compiler/testData/lexer/kdoc/codeBlocksWithVerticalTabs.kt");
}
}
@@ -0,0 +1,12 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.lexer.kotlin
import org.jetbrains.kotlin.lexer.AbstractLexerTest
import org.jetbrains.kotlin.lexer.KotlinLexer
abstract class AbstractKotlinLexerTest : AbstractLexerTest(KotlinLexer())
@@ -0,0 +1,212 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.lexer.kotlin;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/lexer/kotlin")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public class KotlinLexerTestGenerated extends AbstractKotlinLexerTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
}
public void testAllFilesPresentInKotlin() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/lexer/kotlin"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("compiler/testData/lexer/kotlin/whitespaceCharacters")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class WhitespaceCharacters extends AbstractKotlinLexerTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
}
public void testAllFilesPresentInWhitespaceCharacters() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/lexer/kotlin/whitespaceCharacters"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("compiler/testData/lexer/kotlin/whitespaceCharacters/carriageReturn")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class CarriageReturn extends AbstractKotlinLexerTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
}
public void testAllFilesPresentInCarriageReturn() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/lexer/kotlin/whitespaceCharacters/carriageReturn"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("carriageReturn.kt")
public void testCarriageReturn() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/carriageReturn/carriageReturn.kt");
}
@TestMetadata("carriageReturnInComments.kt")
public void testCarriageReturnInComments() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/carriageReturn/carriageReturnInComments.kt");
}
@TestMetadata("carriageReturnInStringLiterals.kt")
public void testCarriageReturnInStringLiterals() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/carriageReturn/carriageReturnInStringLiterals.kt");
}
}
@TestMetadata("compiler/testData/lexer/kotlin/whitespaceCharacters/lineSeparator")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class LineSeparator extends AbstractKotlinLexerTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
}
public void testAllFilesPresentInLineSeparator() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/lexer/kotlin/whitespaceCharacters/lineSeparator"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("lineSeparator.kt")
public void testLineSeparator() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/lineSeparator/lineSeparator.kt");
}
@TestMetadata("lineSeparatorInComments.kt")
public void testLineSeparatorInComments() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/lineSeparator/lineSeparatorInComments.kt");
}
@TestMetadata("lineSeparatorInStringLiterals.kt")
public void testLineSeparatorInStringLiterals() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/lineSeparator/lineSeparatorInStringLiterals.kt");
}
}
@TestMetadata("compiler/testData/lexer/kotlin/whitespaceCharacters/nextLine")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class NextLine extends AbstractKotlinLexerTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
}
public void testAllFilesPresentInNextLine() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/lexer/kotlin/whitespaceCharacters/nextLine"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("nextLine.kt")
public void testNextLine() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/nextLine/nextLine.kt");
}
@TestMetadata("nextLineInComments.kt")
public void testNextLineInComments() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/nextLine/nextLineInComments.kt");
}
@TestMetadata("nextLineInStringLiterals.kt")
public void testNextLineInStringLiterals() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/nextLine/nextLineInStringLiterals.kt");
}
}
@TestMetadata("compiler/testData/lexer/kotlin/whitespaceCharacters/pageBreak")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class PageBreak extends AbstractKotlinLexerTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
}
public void testAllFilesPresentInPageBreak() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/lexer/kotlin/whitespaceCharacters/pageBreak"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("pageBreak.kt")
public void testPageBreak() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/pageBreak/pageBreak.kt");
}
@TestMetadata("pageBreakInComments.kt")
public void testPageBreakInComments() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/pageBreak/pageBreakInComments.kt");
}
@TestMetadata("pageBreakInStringLiterals.kt")
public void testPageBreakInStringLiterals() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/pageBreak/pageBreakInStringLiterals.kt");
}
}
@TestMetadata("compiler/testData/lexer/kotlin/whitespaceCharacters/paragraphSeparator")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class ParagraphSeparator extends AbstractKotlinLexerTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
}
public void testAllFilesPresentInParagraphSeparator() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/lexer/kotlin/whitespaceCharacters/paragraphSeparator"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("paragraphSeparator.kt")
public void testParagraphSeparator() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/paragraphSeparator/paragraphSeparator.kt");
}
@TestMetadata("paragraphSeparatorInComments.kt")
public void testParagraphSeparatorInComments() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/paragraphSeparator/paragraphSeparatorInComments.kt");
}
@TestMetadata("paragraphSeparatorInStringLiterals.kt")
public void testParagraphSeparatorInStringLiterals() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/paragraphSeparator/paragraphSeparatorInStringLiterals.kt");
}
}
@TestMetadata("compiler/testData/lexer/kotlin/whitespaceCharacters/verticalTab")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class VerticalTab extends AbstractKotlinLexerTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath);
}
public void testAllFilesPresentInVerticalTab() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/lexer/kotlin/whitespaceCharacters/verticalTab"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.ANY, true);
}
@TestMetadata("verticalTab.kt")
public void testVerticalTab() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/verticalTab/verticalTab.kt");
}
@TestMetadata("verticalTabInComments.kt")
public void testVerticalTabInComments() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/verticalTab/verticalTabInComments.kt");
}
@TestMetadata("verticalTabInStringLiterals.kt")
public void testVerticalTabInStringLiterals() throws Exception {
runTest("compiler/testData/lexer/kotlin/whitespaceCharacters/verticalTab/verticalTabInStringLiterals.kt");
}
}
}
}