diff options
Diffstat (limited to 'unit-tests/lexer')
-rw-r--r-- | unit-tests/lexer/comment.test | 221 | ||||
-rw-r--r-- | unit-tests/lexer/quoting.test | 145 |
2 files changed, 203 insertions, 163 deletions
diff --git a/unit-tests/lexer/comment.test b/unit-tests/lexer/comment.test index 025b0a2..6840219 100644 --- a/unit-tests/lexer/comment.test +++ b/unit-tests/lexer/comment.test @@ -2,111 +2,138 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -# Single-line comments. +: single-line +: +{ + : only + : + $* <<EOI >>:EOO + # comment + EOI + EOO -$* <<EOI >>:EOO # single-only -# comment -EOI -EOO + : first + : + $* <<EOI >>EOO + # comment + foo + EOI + 'foo' + <newline> + EOO -$* <<EOI >>EOO # single-first -# comment -foo -EOI -'foo' -<newline> -EOO + : last + : + $* <<EOI >>EOO + foo + # comment + EOI + 'foo' + <newline> + EOO -$* <<EOI >>EOO # single-last -foo -# comment -EOI -'foo' -<newline> -EOO + : few + : + $* <<EOI >>EOO + foo + # comment + # comment + EOI + 'foo' + <newline> + EOO -$* <<EOI >>EOO # single-few -foo -# comment -# comment -EOI -'foo' -<newline> -EOO + : cont + : + $* <<EOI >>EOO + foo + # comment\\ + bar + EOI + 'foo' + <newline> + 'bar' + <newline> + EOO -$* <<EOI >>EOO # single-cont -foo -# comment\\ -bar -EOI -'foo' -<newline> -'bar' -<newline> -EOO + : same + : + $* <<EOI >>EOO + foo # comment + bar # comment + EOI + 'foo' + <newline> + 'bar' + <newline> + EOO +} -$* <<EOI >>EOO # single-same -foo # comment -bar # comment -EOI -'foo' -<newline> -'bar' -<newline> -EOO +: multi-line +: +{ + : only + : + $* <<EOI >>:EOO + #\ + comment + comment + #\ + EOI + EOO -# Multi-line comments. -# + : empty + : + $* <<EOI >>:EOO + #\ + #\ + EOI + EOO -$* <<EOI >>:EOO # multi-only -#\ -comment -comment -#\ -EOI -EOO + : start-same + : + $* <<EOI >>EOO + foo #\ + comment + comment + #\ + EOI + 'foo' + <newline> + EOO -$* <<EOI >>:EOO # multi-empty -#\ -#\ -EOI -EOO + : end-same + : + $* <<EOI >>EOO + #\ + comment + comment + foo #\ + bar + EOI + 'bar' + <newline> + EOO -$* <<EOI >>EOO # multi-start-same -foo #\ -comment -comment -#\ -EOI -'foo' -<newline> -EOO + : end-not + : + $* <<EOI >>EOO + #\ + comment + #\ not an end + foo #\ + bar + EOI + 'bar' + <newline> + EOO -$* <<EOI >>EOO # multi-end-same -#\ -comment -comment -foo #\ -bar -EOI -'bar' -<newline> -EOO - -$* <<EOI >>EOO # multi-end-not -#\ -comment -#\ not an end -foo #\ -bar -EOI -'bar' -<newline> -EOO - -$* <<EOI 2>>EOE != 0 # multi-unterm -#\ -comment -EOI -stdin:3:1: error: unterminated multi-line comment -EOE + : unterm + : + $* <<EOI 2>>EOE != 0 + #\ + comment + EOI + stdin:3:1: error: unterminated multi-line comment + EOE +} diff --git a/unit-tests/lexer/quoting.test b/unit-tests/lexer/quoting.test index 84818fc..a44d6af 100644 --- a/unit-tests/lexer/quoting.test +++ b/unit-tests/lexer/quoting.test @@ -11,81 +11,94 @@ $* <'foo' >>EOO <newline> EOO -: single-comp +: comp : -$* <":'foo':" >>EOO -: -'foo' [S/C] -: -<newline> -EOO +{ + : single + : + $* <":'foo':" >>EOO + : + 'foo' [S/C] + : + <newline> + EOO -: double-comp -: -$* <':"foo":' >>EOO -: -'foo' [D/C] -: -<newline> -EOO + : double + : + $* <':"foo":' >>EOO + : + 'foo' [D/C] + : + <newline> + EOO -: single-empty-comp -: -$* <"''" >>EOO -'' [S/C] -<newline> -EOO + : single-empty + : + $* <"''" >>EOO + '' [S/C] + <newline> + EOO -: double-empty-comp -: -$* <'""' >>EOO -'' [D/C] -<newline> -EOO + : double-empty + : + $* <'""' >>EOO + '' [D/C] + <newline> + EOO +} -: part-start-quoted -: Token start already quoted -: -$* <'"$foo"' >>EOO -'' [D/P] -$ [D/C] -'foo' [D/P] -<newline> -EOO +: part +{ + : quoted + { + : start + : Token start already quoted + : + $* <'"$foo"' >>EOO + '' [D/P] + $ [D/C] + 'foo' [D/P] + <newline> + EOO -: part-end-quoted -: Token end still quoted -: -$* <'"foo$"' >>EOO -'foo' [D/P] -$ [D/C] -'' [D/P] -<newline> -EOO + : end + : Token end still quoted + : + $* <'"foo$"' >>EOO + 'foo' [D/P] + $ [D/C] + '' [D/P] + <newline> + EOO + } -: part-start-unquoted -: Token starts with unquoted character -: -$* <'f"oo"' >>EOO -'foo' [D/P] -<newline> -EOO + : unquoted + { + : start + : Token starts with unquoted character + : + $* <'f"oo"' >>EOO + 'foo' [D/P] + <newline> + EOO -: part-unquoted -: Token continous with unquoted character -: -$* <'"fo"o' >>EOO -'foo' [D/P] -<newline> -EOO + : end + : Token continous with unquoted character + : + $* <'"fo"o' >>EOO + 'foo' [D/P] + <newline> + EOO -: part-unquoted-escape -: Token continous with unquoted escaped character -: -$* <'"fo"\"' >>EOO -'fo"' [D/P] -<newline> -EOO + : escape + : Token continous with unquoted escaped character + : + $* <'"fo"\"' >>EOO + 'fo"' [D/P] + <newline> + EOO + } +} : mixed : |