mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 01:25:40 -05:00
* fixed batch parser test * fix batch parser test * fix batch parser test * fixed baseline tests for parser and fixed trace output logic * Update RunEnvironmentInfo.cs * checking error logs on AppVeyor * checking error logs on app veyor * changed file reading encoding * adding logs to app veyor build * changed encoding of baseline files * added error logs for app veyor * changed error logs for app veyor * changed how file stream works in batch parser tests * changed baseline and testscript encodings * cleaned code for necessary batch parser tests
293 lines
10 KiB
Plaintext
293 lines
10 KiB
Plaintext
Lexer tokenized input:
|
|
======================
|
|
[Go:GO][WS: ][T:2][NL:
|
|
][T:BEGIN][NL:
|
|
][Include::r][WS: ][T:input-2.txt][NL:
|
|
][Include::r][WS: ][T:"input-2.txt"][NL:
|
|
][Setvar::setvar][WS: ][T:ABC][WS: ][T:"My Value"][NL:
|
|
][T:MIDDLE][NL:
|
|
][T:#$(ABC)#][NL:
|
|
][WS: ][Setvar::setvar][WS: ][T:ABC][WS: ][T:"NNNNNNNNNNNNNNNNN"][NL:
|
|
][T:END][NL:
|
|
][Go:GO][NL:
|
|
][WS: ][Setvar::setvar][WS: ][T:ABC][NL:
|
|
][Setvar::setvar][WS: ][T:B][WS: ][T:"value of B"][NL:
|
|
][Setvar::setvar][WS: ][T:A][WS: ][T:"Long value with 'fake' variable ref: $(B)"][NL:
|
|
][T:~$(ABC)~$~$$(A)~][NL:
|
|
][Go:GO][NL:
|
|
][Setvar::setvar][WS: ][T:_var_1-1][WS: ][T:VALUE][NL:
|
|
][T:select [1] from x][NL:
|
|
][Go:GO][WS: ][T:2][NL:
|
|
][OnError::on error][WS: ][T:ignore][NL:
|
|
][OnError::on error][WS: ][T:exit][WS: ][C:-- comment][NL:
|
|
][T:select 1][NL:
|
|
][T:/ * fake comment */][NL:
|
|
][T:- - fake comment][NL:
|
|
][T::setv][Eof:]
|
|
Tokens:
|
|
=======
|
|
[Token Go at TS-input.txt(1:1 [0] - 1:3 [2]): 'GO']
|
|
[Token Whitespace at TS-input.txt(1:3 [2] - 1:4 [3]): ' ']
|
|
[Token Text at TS-input.txt(1:4 [3] - 1:5 [4]): '2']
|
|
[Token NewLine at TS-input.txt(1:5 [4] - 2:1 [5]): '\n']
|
|
[Token Text at TS-input.txt(2:1 [5] - 2:6 [10]): 'BEGIN']
|
|
[Token NewLine at TS-input.txt(2:6 [10] - 3:1 [11]): '\n']
|
|
[Token Include at TS-input.txt(3:1 [11] - 3:3 [13]): ':r']
|
|
[Token Whitespace at TS-input.txt(3:3 [13] - 3:4 [14]): ' ']
|
|
[Token Text at TS-input.txt(3:4 [14] - 3:15 [25]): 'input-2.txt']
|
|
[Token NewLine at TS-input.txt(3:15 [25] - 4:1 [26]): '\n']
|
|
[Token Include at TS-input.txt(4:1 [26] - 4:3 [28]): ':r']
|
|
[Token Whitespace at TS-input.txt(4:3 [28] - 4:4 [29]): ' ']
|
|
[Token Text at TS-input.txt(4:4 [29] - 4:17 [42]): '"input-2.txt"']
|
|
[Token NewLine at TS-input.txt(4:17 [42] - 5:1 [43]): '\n']
|
|
[Token Setvar at TS-input.txt(5:1 [43] - 5:8 [50]): ':setvar']
|
|
[Token Whitespace at TS-input.txt(5:8 [50] - 5:9 [51]): ' ']
|
|
[Token Text at TS-input.txt(5:9 [51] - 5:12 [54]): 'ABC']
|
|
[Token Whitespace at TS-input.txt(5:12 [54] - 5:13 [55]): ' ']
|
|
[Token Text at TS-input.txt(5:13 [55] - 5:23 [65]): '"My Value"']
|
|
[Token NewLine at TS-input.txt(5:23 [65] - 6:1 [66]): '\n']
|
|
[Token Text at TS-input.txt(6:1 [66] - 6:7 [72]): 'MIDDLE']
|
|
[Token NewLine at TS-input.txt(6:7 [72] - 7:1 [73]): '\n']
|
|
[Token Text at TS-input.txt(7:1 [73] - 7:9 [81]): '#$(ABC)#']
|
|
[Token NewLine at TS-input.txt(7:9 [81] - 8:1 [82]): '\n']
|
|
[Token Whitespace at TS-input.txt(8:1 [82] - 8:3 [84]): ' ']
|
|
[Token Setvar at TS-input.txt(8:3 [84] - 8:10 [91]): ':setvar']
|
|
[Token Whitespace at TS-input.txt(8:10 [91] - 8:11 [92]): ' ']
|
|
[Token Text at TS-input.txt(8:11 [92] - 8:14 [95]): 'ABC']
|
|
[Token Whitespace at TS-input.txt(8:14 [95] - 8:15 [96]): ' ']
|
|
[Token Text at TS-input.txt(8:15 [96] - 8:34 [115]): '"NNNNNNNNNNNNNNNNN"']
|
|
[Token NewLine at TS-input.txt(8:34 [115] - 9:1 [116]): '\n']
|
|
[Token Text at TS-input.txt(9:1 [116] - 9:4 [119]): 'END']
|
|
[Token NewLine at TS-input.txt(9:4 [119] - 10:1 [120]): '\n']
|
|
[Token Go at TS-input.txt(10:1 [120] - 10:3 [122]): 'GO']
|
|
[Token NewLine at TS-input.txt(10:3 [122] - 11:1 [123]): '\n']
|
|
[Token Whitespace at TS-input.txt(11:1 [123] - 11:2 [124]): '\t']
|
|
[Token Setvar at TS-input.txt(11:2 [124] - 11:9 [131]): ':setvar']
|
|
[Token Whitespace at TS-input.txt(11:9 [131] - 11:10 [132]): ' ']
|
|
[Token Text at TS-input.txt(11:10 [132] - 11:13 [135]): 'ABC']
|
|
[Token NewLine at TS-input.txt(11:13 [135] - 12:1 [136]): '\n']
|
|
[Token Setvar at TS-input.txt(12:1 [136] - 12:8 [143]): ':setvar']
|
|
[Token Whitespace at TS-input.txt(12:8 [143] - 12:9 [144]): ' ']
|
|
[Token Text at TS-input.txt(12:9 [144] - 12:10 [145]): 'B']
|
|
[Token Whitespace at TS-input.txt(12:10 [145] - 12:11 [146]): ' ']
|
|
[Token Text at TS-input.txt(12:11 [146] - 12:23 [158]): '"value of B"']
|
|
[Token NewLine at TS-input.txt(12:23 [158] - 13:1 [159]): '\n']
|
|
[Token Setvar at TS-input.txt(13:1 [159] - 13:8 [166]): ':setvar']
|
|
[Token Whitespace at TS-input.txt(13:8 [166] - 13:9 [167]): ' ']
|
|
[Token Text at TS-input.txt(13:9 [167] - 13:10 [168]): 'A']
|
|
[Token Whitespace at TS-input.txt(13:10 [168] - 13:11 [169]): ' ']
|
|
[Token Text at TS-input.txt(13:11 [169] - 13:54 [212]): '"Long value with 'fake' variable ref: $(B)"']
|
|
[Token NewLine at TS-input.txt(13:54 [212] - 14:1 [213]): '\n']
|
|
[Token Text at TS-input.txt(14:1 [213] - 14:17 [229]): '~$(ABC)~$~$$(A)~']
|
|
[Token NewLine at TS-input.txt(14:17 [229] - 15:1 [230]): '\n']
|
|
[Token Go at TS-input.txt(15:1 [230] - 15:3 [232]): 'GO']
|
|
[Token NewLine at TS-input.txt(15:3 [232] - 16:1 [233]): '\n']
|
|
[Token Setvar at TS-input.txt(16:1 [233] - 16:8 [240]): ':setvar']
|
|
[Token Whitespace at TS-input.txt(16:8 [240] - 16:9 [241]): ' ']
|
|
[Token Text at TS-input.txt(16:9 [241] - 16:17 [249]): '_var_1-1']
|
|
[Token Whitespace at TS-input.txt(16:17 [249] - 16:18 [250]): ' ']
|
|
[Token Text at TS-input.txt(16:18 [250] - 16:23 [255]): 'VALUE']
|
|
[Token NewLine at TS-input.txt(16:23 [255] - 17:1 [256]): '\n']
|
|
[Token Text at TS-input.txt(17:1 [256] - 17:18 [273]): 'select [1] from x']
|
|
[Token NewLine at TS-input.txt(17:18 [273] - 18:1 [274]): '\n']
|
|
[Token Go at TS-input.txt(18:1 [274] - 18:3 [276]): 'GO']
|
|
[Token Whitespace at TS-input.txt(18:3 [276] - 18:4 [277]): ' ']
|
|
[Token Text at TS-input.txt(18:4 [277] - 18:5 [278]): '2']
|
|
[Token NewLine at TS-input.txt(18:5 [278] - 19:1 [279]): '\n']
|
|
[Token OnError at TS-input.txt(19:1 [279] - 19:10 [288]): ':on error']
|
|
[Token Whitespace at TS-input.txt(19:10 [288] - 19:11 [289]): ' ']
|
|
[Token Text at TS-input.txt(19:11 [289] - 19:17 [295]): 'ignore']
|
|
[Token NewLine at TS-input.txt(19:17 [295] - 20:1 [296]): '\n']
|
|
[Token OnError at TS-input.txt(20:1 [296] - 20:10 [305]): ':on error']
|
|
[Token Whitespace at TS-input.txt(20:10 [305] - 20:11 [306]): ' ']
|
|
[Token Text at TS-input.txt(20:11 [306] - 20:15 [310]): 'exit']
|
|
[Token Whitespace at TS-input.txt(20:15 [310] - 20:16 [311]): ' ']
|
|
[Token Comment at TS-input.txt(20:16 [311] - 20:26 [321]): '-- comment']
|
|
[Token NewLine at TS-input.txt(20:26 [321] - 21:1 [322]): '\n']
|
|
[Token Text at TS-input.txt(21:1 [322] - 21:9 [330]): 'select 1']
|
|
[Token NewLine at TS-input.txt(21:9 [330] - 22:1 [331]): '\n']
|
|
[Token Text at TS-input.txt(22:1 [331] - 22:20 [350]): '/ * fake comment */']
|
|
[Token NewLine at TS-input.txt(22:20 [350] - 23:1 [351]): '\n']
|
|
[Token Text at TS-input.txt(23:1 [351] - 23:17 [367]): '- - fake comment']
|
|
[Token NewLine at TS-input.txt(23:17 [367] - 24:1 [368]): '\n']
|
|
[Token Text at TS-input.txt(24:1 [368] - 24:6 [373]): ':setv']
|
|
[Token Eof at TS-input.txt(24:6 [373] - 24:6 [373]): '']
|
|
|
|
*** Execute batch (2)
|
|
Batch text:
|
|
|
|
|
|
*** PARSER: Include file "input-2.txt"
|
|
|
|
*** PARSER: Include file "input-2.txt"
|
|
|
|
Setting variable ABC to [My Value]
|
|
Setting variable ABC to [NNNNNNNNNNNNNNNNN]
|
|
*** Execute batch (1)
|
|
Text with variables not resolved:
|
|
BEGIN
|
|
select 1
|
|
|
|
select 1
|
|
|
|
MIDDLE
|
|
#NNNNNNNNNNNNNNNNN#
|
|
END
|
|
|
|
Text with variables not resolved:
|
|
BEGIN
|
|
select 1
|
|
|
|
select 1
|
|
|
|
MIDDLE
|
|
#$(ABC)#
|
|
END
|
|
|
|
Mapping from resolved string to unresolved:
|
|
Pos [0] TS-input.txt:5 "B"
|
|
Pos [1] TS-input.txt:6 "E"
|
|
Pos [2] TS-input.txt:7 "G"
|
|
Pos [3] TS-input.txt:8 "I"
|
|
Pos [4] TS-input.txt:9 "N"
|
|
Pos [5] TS-input.txt:10 "\n"
|
|
Pos [6] input-2.txt:0 "s"
|
|
Pos [7] input-2.txt:1 "e"
|
|
Pos [8] input-2.txt:2 "l"
|
|
Pos [9] input-2.txt:3 "e"
|
|
Pos [10] input-2.txt:4 "c"
|
|
Pos [11] input-2.txt:5 "t"
|
|
Pos [12] input-2.txt:6 " "
|
|
Pos [13] input-2.txt:7 "1"
|
|
Pos [14] input-2.txt:8 "\n"
|
|
Pos [15] input-2.txt:9 "\r"
|
|
Pos [16] input-2.txt:10 "\n"
|
|
Pos [17] input-2.txt:0 "s"
|
|
Pos [18] input-2.txt:1 "e"
|
|
Pos [19] input-2.txt:2 "l"
|
|
Pos [20] input-2.txt:3 "e"
|
|
Pos [21] input-2.txt:4 "c"
|
|
Pos [22] input-2.txt:5 "t"
|
|
Pos [23] input-2.txt:6 " "
|
|
Pos [24] input-2.txt:7 "1"
|
|
Pos [25] input-2.txt:8 "\n"
|
|
Pos [26] input-2.txt:9 "\r"
|
|
Pos [27] input-2.txt:10 "\n"
|
|
Pos [28] TS-input.txt:66 "M"
|
|
Pos [29] TS-input.txt:67 "I"
|
|
Pos [30] TS-input.txt:68 "D"
|
|
Pos [31] TS-input.txt:69 "D"
|
|
Pos [32] TS-input.txt:70 "L"
|
|
Pos [33] TS-input.txt:71 "E"
|
|
Pos [34] TS-input.txt:72 "\n"
|
|
Pos [35] TS-input.txt:73 "#"
|
|
Pos [36] TS-input.txt:74 "N"
|
|
Pos [37] TS-input.txt:74 "N"
|
|
Pos [38] TS-input.txt:74 "N"
|
|
Pos [39] TS-input.txt:74 "N"
|
|
Pos [40] TS-input.txt:74 "N"
|
|
Pos [41] TS-input.txt:74 "N"
|
|
Pos [42] TS-input.txt:74 "N"
|
|
Pos [43] TS-input.txt:74 "N"
|
|
Pos [44] TS-input.txt:74 "N"
|
|
Pos [45] TS-input.txt:74 "N"
|
|
Pos [46] TS-input.txt:74 "N"
|
|
Pos [47] TS-input.txt:74 "N"
|
|
Pos [48] TS-input.txt:74 "N"
|
|
Pos [49] TS-input.txt:74 "N"
|
|
Pos [50] TS-input.txt:74 "N"
|
|
Pos [51] TS-input.txt:74 "N"
|
|
Pos [52] TS-input.txt:74 "N"
|
|
Pos [53] TS-input.txt:80 "#"
|
|
Pos [54] TS-input.txt:81 "\n"
|
|
Pos [55] TS-input.txt:116 "E"
|
|
Pos [56] TS-input.txt:117 "N"
|
|
Pos [57] TS-input.txt:118 "D"
|
|
Pos [58] TS-input.txt:119 "\n"
|
|
Pos [59] TS-input.txt:120 "EOF"
|
|
|
|
Setting variable ABC to []
|
|
Setting variable B to [value of B]
|
|
Setting variable A to [Long value with 'fake' variable ref: $(B)]
|
|
*** Execute batch (1)
|
|
Text with variables not resolved:
|
|
~$(ABC)~$~$Long value with 'fake' variable ref: $(B)~
|
|
|
|
Text with variables not resolved:
|
|
~$(ABC)~$~$$(A)~
|
|
|
|
Mapping from resolved string to unresolved:
|
|
Pos [0] TS-input.txt:213 "~"
|
|
Pos [1] TS-input.txt:214 "$"
|
|
Pos [2] TS-input.txt:215 "("
|
|
Pos [3] TS-input.txt:216 "A"
|
|
Pos [4] TS-input.txt:217 "B"
|
|
Pos [5] TS-input.txt:218 "C"
|
|
Pos [6] TS-input.txt:219 ")"
|
|
Pos [7] TS-input.txt:220 "~"
|
|
Pos [8] TS-input.txt:221 "$"
|
|
Pos [9] TS-input.txt:222 "~"
|
|
Pos [10] TS-input.txt:223 "$"
|
|
Pos [11] TS-input.txt:224 "L"
|
|
Pos [12] TS-input.txt:224 "o"
|
|
Pos [13] TS-input.txt:224 "n"
|
|
Pos [14] TS-input.txt:224 "g"
|
|
Pos [15] TS-input.txt:224 " "
|
|
Pos [16] TS-input.txt:224 "v"
|
|
Pos [17] TS-input.txt:224 "a"
|
|
Pos [18] TS-input.txt:224 "l"
|
|
Pos [19] TS-input.txt:224 "u"
|
|
Pos [20] TS-input.txt:224 "e"
|
|
Pos [21] TS-input.txt:224 " "
|
|
Pos [22] TS-input.txt:224 "w"
|
|
Pos [23] TS-input.txt:224 "i"
|
|
Pos [24] TS-input.txt:224 "t"
|
|
Pos [25] TS-input.txt:224 "h"
|
|
Pos [26] TS-input.txt:224 " "
|
|
Pos [27] TS-input.txt:224 "'"
|
|
Pos [28] TS-input.txt:224 "f"
|
|
Pos [29] TS-input.txt:224 "a"
|
|
Pos [30] TS-input.txt:224 "k"
|
|
Pos [31] TS-input.txt:224 "e"
|
|
Pos [32] TS-input.txt:224 "'"
|
|
Pos [33] TS-input.txt:224 " "
|
|
Pos [34] TS-input.txt:224 "v"
|
|
Pos [35] TS-input.txt:224 "a"
|
|
Pos [36] TS-input.txt:224 "r"
|
|
Pos [37] TS-input.txt:224 "i"
|
|
Pos [38] TS-input.txt:224 "a"
|
|
Pos [39] TS-input.txt:224 "b"
|
|
Pos [40] TS-input.txt:224 "l"
|
|
Pos [41] TS-input.txt:224 "e"
|
|
Pos [42] TS-input.txt:224 " "
|
|
Pos [43] TS-input.txt:224 "r"
|
|
Pos [44] TS-input.txt:224 "e"
|
|
Pos [45] TS-input.txt:224 "f"
|
|
Pos [46] TS-input.txt:224 ":"
|
|
Pos [47] TS-input.txt:224 " "
|
|
Pos [48] TS-input.txt:224 "$"
|
|
Pos [49] TS-input.txt:224 "("
|
|
Pos [50] TS-input.txt:224 "B"
|
|
Pos [51] TS-input.txt:224 ")"
|
|
Pos [52] TS-input.txt:228 "~"
|
|
Pos [53] TS-input.txt:229 "\n"
|
|
Pos [54] TS-input.txt:230 "EOF"
|
|
|
|
Setting variable _var_1-1 to [VALUE]
|
|
*** Execute batch (2)
|
|
Batch text:
|
|
select [1] from x
|
|
|
|
|
|
*** PARSER: On error: Ignore
|
|
*** PARSER: On error: Exit
|
|
*** Execute batch (1)
|
|
Batch text:
|
|
|
|
|
|
select 1
|
|
/ * fake comment */
|
|
- - fake comment
|
|
:setv
|
|
|