.........8 --- echo \" \\ hi` --- (Token id: Id.Backtick_Other length: 5 col: 0 line: (SourceLine line_num: 1 content: "echo \\\" \\\\ hi`" src: (source.MainFile path:"") ) ) (Token id: Id.Backtick_DoubleQuote length: 2 col: 5 line: (SourceLine line_num: 1 content: "echo \\\" \\\\ hi`" src: (source.MainFile path:"") ) ) (Token id: Id.Backtick_Other length: 1 col: 7 line: (SourceLine line_num: 1 content: "echo \\\" \\\\ hi`" src: (source.MainFile path:"") ) ) (Token id: Id.Backtick_Quoted length: 2 col: 8 line: (SourceLine line_num: 1 content: "echo \\\" \\\\ hi`" src: (source.MainFile path:"") ) ) (Token id: Id.Backtick_Other length: 3 col: 10 line: (SourceLine line_num: 1 content: "echo \\\" \\\\ hi`" src: (source.MainFile path:"") ) ) (Token id: Id.Backtick_Right length: 1 col: 13 line: (SourceLine line_num: 1 content: "echo \\\" \\\\ hi`" src: (source.MainFile path:"") ) ) (Token id: Id.Eof_Real length: 0 col: 14 line: (SourceLine line_num: 1 content: "echo \\\" \\\\ hi`" src: (source.MainFile path:"") ) ) --- ` --- (Token id: Id.Backtick_Right length: 1 col: 0 line: (SourceLine line_num:1 content:"`" src:(source.MainFile path:"")) ) (Token id: Id.Eof_Real length: 0 col: 1 line: (SourceLine line_num:1 content:"`" src:(source.MainFile path:"")) ) --- --- (Token id: Id.Eof_Real length: 0 col: 0 line: (SourceLine line_num:0 content:"" src:(source.MainFile path:"")) ) (Token id: Id.Lit_Chars length: 7 col: 0 line: (SourceLine line_num: 1 content: "foo bar\\n \\x00 \\000 \\u0065" src: (source.MainFile path:"") ) ) (Token id: Id.Char_OneChar length: 2 col: 7 line: (SourceLine line_num: 1 content: "foo bar\\n \\x00 \\000 \\u0065" src: (source.MainFile path:"") ) ) --- @[ ] --- (Token id: Id.Expr_Reserved length: 2 col: 0 line: (SourceLine line_num:1 content:"@[ ]" src:(source.MainFile path:"")) ) (Token id: Id.Ignored_Space length: 1 col: 2 line: (SourceLine line_num:1 content:"@[ ]" src:(source.MainFile path:"")) ) (Token id: Id.Op_RBracket length: 1 col: 3 line: (SourceLine line_num:1 content:"@[ ]" src:(source.MainFile path:"")) ) (Token id: Id.Eof_Real length: 0 col: 4 line: (SourceLine line_num:1 content:"@[ ]" src:(source.MainFile path:"")) ) --- hello %s\n --- (Token id: Id.Lit_Chars length: 6 col: 0 line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"")) ) (Token id: Id.Format_Percent length: 1 col: 6 line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"")) ) (Token id: Id.Lit_Chars length: 1 col: 7 line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"")) ) (Token id: Id.Char_OneChar length: 2 col: 8 line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"")) ) (Token id: Id.Eof_Real length: 0 col: 10 line: (SourceLine line_num:1 content:"hello %s\\n" src:(source.MainFile path:"")) ) --- %% percent %%\377 --- (Token id: Id.Format_EscapedPercent length: 2 col: 0 line: (SourceLine line_num: 1 content: "%% percent %%\\377" src: (source.MainFile path:"") ) ) (Token id: Id.Lit_Chars length: 9 col: 2 line: (SourceLine line_num: 1 content: "%% percent %%\\377" src: (source.MainFile path:"") ) ) (Token id: Id.Format_EscapedPercent length: 2 col: 11 line: (SourceLine line_num: 1 content: "%% percent %%\\377" src: (source.MainFile ............. ---------------------------------------------------------------------- Ran 22 tests in 0.015s OK path:"") ) ) (Token id: Id.Char_Octal3 length: 4 col: 13 line: (SourceLine line_num: 1 content: "%% percent %%\\377" src: (source.MainFile path:"") ) ) (Token id: Id.Eof_Real length: 0 col: 17 line: (SourceLine line_num: 1 content: "%% percent %%\\377" src: (source.MainFile path:"") ) ) --- -3.3f --- (Token id: Id.Format_Flag length: 1 col: 0 line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"")) ) (Token id: Id.Format_Num length: 1 col: 1 line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"")) ) (Token id: Id.Format_Dot length: 1 col: 2 line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"")) ) (Token id: Id.Format_Num length: 1 col: 3 line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"")) ) (Token id: Id.Format_Type length: 1 col: 4 line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"")) ) (Token id: Id.Eof_Real length: 0 col: 5 line: (SourceLine line_num:1 content:-3.3f src:(source.MainFile path:"")) ) --- 03d --- (Token id: Id.Format_Zero length: 1 col: 0 line: (SourceLine line_num:1 content:03d src:(source.MainFile path:"")) ) (Token id: Id.Format_Num length: 1 col: 1 line: (SourceLine line_num:1 content:03d src:(source.MainFile path:"")) ) (Token id: Id.Format_Type length: 1 col: 2 line: (SourceLine line_num:1 content:03d src:(source.MainFile path:"")) ) (Token id: Id.Eof_Real length: 0 col: 3 line: (SourceLine line_num:1 content:03d src:(source.MainFile path:"")) ) (Token id: Id.Left_SingleQuote length: 1 col: 0 line: (SourceLine line_num:1 content:"'hi'" src:(source.MainFile path:"")) ) (Token id: Id.Lit_Tilde length: 1 col: 0 line: (SourceLine line_num:1 content:"~root" src:(source.MainFile path:"")) ) [(345, 'a'), (346, '..'), (345, 'z')] [(344, '100'), (346, '..'), (344, '300')] [(344, '-300'), (346, '..'), (344, '-100'), (346, '..'), (344, '1')] [(344, '1'), (347, '.'), (344, '3')] [(345, 'a'), (345, 'a')] [(61, 'newline '), (165, '\\n'), (61, ' NUL '), (165, '\\0'), (61, ' octal '), (170, '\\0377'), (61, ' hex '), (167, '\\x00')] [(61, 'unicode '), (171, '\\u0065'), (61, ' '), (173, '\\U00000065')] [(50, '\\'), (61, 'd '), (165, '\\e'), (61, ' '), (165, '\\f'), (61, ' '), (50, '\\'), (61, 'g')] [(100, '['), (100, '!'), (100, 'abc]')] [(100, '${'), (100, '!'), (100, 'indirect}')] [(100, '$'), (100, '!'), (100, 'x')] [(100, '!'), (100, '(foo|bar)')] [(100, 'echo hi')] [(100, 'echo '), (97, '!!'), (100, ' '), (97, '!*'), (100, ' '), (97, '!^'), (100, ' '), (97, '!$')] [(100, 'echo '), (100, '\\!'), (100, '!')] [(100, 'echo '), (98, '!3'), (100, '...')] [(100, 'echo '), (98, '!-5'), (100, '...')] [(100, 'echo '), (99, '!x/foo.py '), (100, 'bar')] --- [(100, 'echo '), (100, "'!!'"), (100, ' $'), (100, "'!!'"), (100, ' ')] [(100, 'echo '), (100, "'!! ")] [(100, 'echo '), (100, "\\'"), (100, ' '), (97, '!!'), (100, ' ')] [(342, 'foo')] [(338, '\\h'), (342, ' '), (338, '\\w'), (342, ' '), (338, '\\$')] P '[^\\\\\\0]+'