Fix the lack of the handling of whitespace characters in the KDoc lexer

Affected characters are U+000B, U+000C, U+000D, U+0085, U+2028, U+2029
This problem reproduces with JFlex since 1.5.0: http://jflex.de/changelog.html#jflex-1.5.0-jan-21-2014
This commit is contained in:
victor.petukhov
2018-10-25 18:55:08 +03:00
parent 9e6ac6cb2a
commit fe072e3366
4 changed files with 133 additions and 39 deletions
@@ -0,0 +1,20 @@
/**
* @foo This is text.
* This is indented code block
* Second line of code block
* @foo This is text .
* Tabulated code block
* Tabulated second line
* @foo This is text.
* ``` kotlin
* @foo This is code block.
* ```
* @foo This is text .
* ~~~
* @foo This is code block
* With multiple lines.
* ~~~
* @foo This is yet more text.
* ```
* @foo This is an unclosed code block .
*/
@@ -0,0 +1,74 @@
KDOC_START ('/**')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_TEXT (' ')
KDOC_TAG_NAME ('@foo')
WHITE_SPACE (' ')
KDOC_TEXT ('This is text.')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' This is indented code block')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' Second line of code block')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_TEXT (' ')
KDOC_TAG_NAME ('@foo')
WHITE_SPACE (' ')
KDOC_TEXT ('This is text .')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' Tabulated code block')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' Tabulated second line')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_TEXT (' ')
KDOC_TAG_NAME ('@foo')
WHITE_SPACE (' ')
KDOC_TEXT ('This is text.')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_TEXT (' ``` kotlin')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' @foo This is code block.')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' ')
KDOC_TEXT ('```')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_TEXT (' ')
KDOC_TAG_NAME ('@foo')
WHITE_SPACE (' ')
KDOC_TEXT ('This is text .')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_TEXT (' ~~~')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' @foo This is code block')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' With multiple lines.')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' ')
KDOC_TEXT ('~~~')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_TEXT (' ')
KDOC_TAG_NAME ('@foo')
WHITE_SPACE (' ')
KDOC_TEXT ('This is yet more text.')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_TEXT (' ```')
WHITE_SPACE ('\n ')
KDOC_LEADING_ASTERISK ('*')
KDOC_CODE_BLOCK_TEXT (' @foo This is an unclosed code block .')
WHITE_SPACE ('\n ')
KDOC_END ('*/')