LexicalAndXml\NameAttributeValueLexerTests.cs (236)
29AssertTokens("a", Token(SyntaxKind.IdentifierToken, "a"));
30AssertTokens("\u0061", Token(SyntaxKind.IdentifierToken, "\u0061", "a"));
31AssertTokens("a", Token(SyntaxKind.IdentifierToken, "a", "a"));
33AssertTokens("ab", Token(SyntaxKind.IdentifierToken, "ab"));
34AssertTokens("\u0061b", Token(SyntaxKind.IdentifierToken, "\u0061b", "ab"));
35AssertTokens("a\u0062", Token(SyntaxKind.IdentifierToken, "a\u0062", "ab"));
36AssertTokens("ab", Token(SyntaxKind.IdentifierToken, "ab", "ab"));
37AssertTokens("ab", Token(SyntaxKind.IdentifierToken, "ab", "ab"));
45AssertTokens("global", Token(SyntaxKind.IdentifierToken, "global"));
46AssertTokens("operator", Token(SyntaxKind.IdentifierToken, "operator"));
47AssertTokens("explicit", Token(SyntaxKind.IdentifierToken, "explicit"));
48AssertTokens("implicit", Token(SyntaxKind.IdentifierToken, "implicit"));
49AssertTokens("ref", Token(SyntaxKind.IdentifierToken, "ref"));
50AssertTokens("out", Token(SyntaxKind.IdentifierToken, "out"));
51AssertTokens("true", Token(SyntaxKind.IdentifierToken, "true"));
52AssertTokens("false", Token(SyntaxKind.IdentifierToken, "false"));
54AssertTokens("global", Token(SyntaxKind.IdentifierToken, "global", "global"));
55AssertTokens("operator", Token(SyntaxKind.IdentifierToken, "operator", "operator"));
56AssertTokens("explicit", Token(SyntaxKind.IdentifierToken, "explicit", "explicit"));
57AssertTokens("implicit", Token(SyntaxKind.IdentifierToken, "implicit", "implicit"));
58AssertTokens("ref", Token(SyntaxKind.IdentifierToken, "ref", "ref"));
59AssertTokens("out", Token(SyntaxKind.IdentifierToken, "out", "out"));
60AssertTokens("true", Token(SyntaxKind.IdentifierToken, "true", "true"));
61AssertTokens("false", Token(SyntaxKind.IdentifierToken, "false", "false"));
63AssertTokens("global", Token(SyntaxKind.IdentifierToken, "global", "global"));
64AssertTokens("operator", Token(SyntaxKind.IdentifierToken, "operator", "operator"));
65AssertTokens("explicit", Token(SyntaxKind.IdentifierToken, "explicit", "explicit"));
66AssertTokens("implicit", Token(SyntaxKind.IdentifierToken, "implicit", "implicit"));
67AssertTokens("ref", Token(SyntaxKind.IdentifierToken, "ref", "ref"));
68AssertTokens("out", Token(SyntaxKind.IdentifierToken, "out", "out"));
69AssertTokens("true", Token(SyntaxKind.IdentifierToken, "true", "true"));
70AssertTokens("false", Token(SyntaxKind.IdentifierToken, "false", "false"));
76AssertTokens("@global", Token(SyntaxKind.IdentifierToken, "@global"));
77AssertTokens("@operator", Token(SyntaxKind.IdentifierToken, "@operator"));
78AssertTokens("@explicit", Token(SyntaxKind.IdentifierToken, "@explicit"));
79AssertTokens("@implicit", Token(SyntaxKind.IdentifierToken, "@implicit"));
80AssertTokens("@ref", Token(SyntaxKind.IdentifierToken, "@ref"));
81AssertTokens("@out", Token(SyntaxKind.IdentifierToken, "@out"));
82AssertTokens("@true", Token(SyntaxKind.IdentifierToken, "@true"));
83AssertTokens("@false", Token(SyntaxKind.IdentifierToken, "@false"));
85AssertTokens("@global", Token(SyntaxKind.IdentifierToken, "@global", "@global"));
86AssertTokens("@operator", Token(SyntaxKind.IdentifierToken, "@operator", "@operator"));
87AssertTokens("@explicit", Token(SyntaxKind.IdentifierToken, "@explicit", "@explicit"));
88AssertTokens("@implicit", Token(SyntaxKind.IdentifierToken, "@implicit", "@implicit"));
89AssertTokens("@ref", Token(SyntaxKind.IdentifierToken, "@ref", "@ref"));
90AssertTokens("@out", Token(SyntaxKind.IdentifierToken, "@out", "@out"));
91AssertTokens("@true", Token(SyntaxKind.IdentifierToken, "@true", "@true"));
92AssertTokens("@false", Token(SyntaxKind.IdentifierToken, "@false", "@false"));
98AssertTokens("\\u0067lobal", Token(SyntaxKind.IdentifierToken, "\\u0067lobal", "global"));
99AssertTokens("\\u006Fperator", Token(SyntaxKind.IdentifierToken, "\\u006Fperator", "operator"));
100AssertTokens("\\u0065xplicit", Token(SyntaxKind.IdentifierToken, "\\u0065xplicit", "explicit"));
101AssertTokens("\\u0069mplicit", Token(SyntaxKind.IdentifierToken, "\\u0069mplicit", "implicit"));
102AssertTokens("\\u0072ef", Token(SyntaxKind.IdentifierToken, "\\u0072ef", "ref"));
103AssertTokens("\\u006Fut", Token(SyntaxKind.IdentifierToken, "\\u006Fut", "out"));
104AssertTokens("\\u0074rue", Token(SyntaxKind.IdentifierToken, "\\u0074rue", "true"));
105AssertTokens("\\u0066alse", Token(SyntaxKind.IdentifierToken, "\\u0066alse", "false"));
113AssertTokens("\u0067lobal", Token(SyntaxKind.XmlEntityLiteralToken, "\", "\\"), Token(SyntaxKind.IdentifierToken, "u0067lobal"));
114AssertTokens("\u006Fperator", Token(SyntaxKind.XmlEntityLiteralToken, "\", "\\"), Token(SyntaxKind.IdentifierToken, "u006Fperator"));
115AssertTokens("\u0065xplicit", Token(SyntaxKind.XmlEntityLiteralToken, "\", "\\"), Token(SyntaxKind.IdentifierToken, "u0065xplicit"));
116AssertTokens("\u0069mplicit", Token(SyntaxKind.XmlEntityLiteralToken, "\", "\\"), Token(SyntaxKind.IdentifierToken, "u0069mplicit"));
117AssertTokens("\u0072ef", Token(SyntaxKind.XmlEntityLiteralToken, "\", "\\"), Token(SyntaxKind.IdentifierToken, "u0072ef"));
118AssertTokens("\u006Fut", Token(SyntaxKind.XmlEntityLiteralToken, "\", "\\"), Token(SyntaxKind.IdentifierToken, "u006Fut"));
119AssertTokens("\u0074rue", Token(SyntaxKind.XmlEntityLiteralToken, "\", "\\"), Token(SyntaxKind.IdentifierToken, "u0074rue"));
120AssertTokens("\u0066alse", Token(SyntaxKind.XmlEntityLiteralToken, "\", "\\"), Token(SyntaxKind.IdentifierToken, "u0066alse"));
126AssertTokens(".", Token(SyntaxKind.DotToken));
127AssertTokens(",", Token(SyntaxKind.CommaToken));
128AssertTokens(":", Token(SyntaxKind.ColonToken));
129AssertTokens("::", Token(SyntaxKind.ColonColonToken));
130AssertTokens("(", Token(SyntaxKind.OpenParenToken));
131AssertTokens(")", Token(SyntaxKind.CloseParenToken));
132AssertTokens("[", Token(SyntaxKind.OpenBracketToken));
133AssertTokens("]", Token(SyntaxKind.CloseBracketToken));
134AssertTokens("?", Token(SyntaxKind.QuestionToken));
135AssertTokens("??", Token(SyntaxKind.QuestionToken), Token(SyntaxKind.QuestionToken));
136AssertTokens("*", Token(SyntaxKind.AsteriskToken));
137AssertTokens("<", Token(SyntaxKind.BadToken, "<")); //illegal in attribute
138AssertTokens(">", Token(SyntaxKind.GreaterThanToken));
141AssertTokens("{", Token(SyntaxKind.LessThanToken, "{", "<"));
142AssertTokens("}", Token(SyntaxKind.GreaterThanToken, "}", ">"));
144AssertTokens(".", Token(SyntaxKind.DotToken, ".", "."));
145AssertTokens(",", Token(SyntaxKind.CommaToken, ",", ","));
147AssertTokens("::", Token(SyntaxKind.ColonColonToken, "::", "::"));
148AssertTokens("::", Token(SyntaxKind.ColonColonToken, "::", "::"));
149AssertTokens("::", Token(SyntaxKind.ColonColonToken, "::", "::"));
150AssertTokens("(", Token(SyntaxKind.OpenParenToken, "(", "("));
151AssertTokens(")", Token(SyntaxKind.CloseParenToken, ")", ")"));
152AssertTokens("[", Token(SyntaxKind.OpenBracketToken, "[", "["));
153AssertTokens("]", Token(SyntaxKind.CloseBracketToken, "]", "]"));
154AssertTokens("?", Token(SyntaxKind.QuestionToken, "?", "?"));
155AssertTokens("??", Token(SyntaxKind.QuestionToken, "?", "?"), Token(SyntaxKind.QuestionToken, "?", "?"));
156AssertTokens("*", Token(SyntaxKind.AsteriskToken, "*", "*"));
157AssertTokens("<", Token(SyntaxKind.LessThanToken, "<", "<"));
158AssertTokens(">", Token(SyntaxKind.GreaterThanToken, ">", ">"));
161AssertTokens("{", Token(SyntaxKind.LessThanToken, "{", "<"));
162AssertTokens("}", Token(SyntaxKind.GreaterThanToken, "}", ">"));
168AssertTokens(":::", Token(SyntaxKind.ColonColonToken), Token(SyntaxKind.ColonToken));
169AssertTokens("::::", Token(SyntaxKind.ColonColonToken), Token(SyntaxKind.ColonColonToken));
170AssertTokens(":::::", Token(SyntaxKind.ColonColonToken), Token(SyntaxKind.ColonColonToken), Token(SyntaxKind.ColonToken));
173AssertTokens("???", Token(SyntaxKind.QuestionToken), Token(SyntaxKind.QuestionToken), Token(SyntaxKind.QuestionToken));
174AssertTokens("????", Token(SyntaxKind.QuestionToken), Token(SyntaxKind.QuestionToken), Token(SyntaxKind.QuestionToken), Token(SyntaxKind.QuestionToken));
182AssertTokens("&", Token(SyntaxKind.AmpersandToken, "&", "&"));
183AssertTokens("&", Token(SyntaxKind.AmpersandToken, "&", "&"));
184AssertTokens("&", Token(SyntaxKind.AmpersandToken, "&", "&"));
185AssertTokens("&", Token(SyntaxKind.AmpersandToken, "&", "&"));
186AssertTokens("&", Token(SyntaxKind.AmpersandToken, "&", "&"));
187AssertTokens("&", Token(SyntaxKind.AmpersandToken, "&", "&"));
188AssertTokens("&", Token(SyntaxKind.AmpersandToken, "&", "&"));
190AssertTokens("<", Token(SyntaxKind.LessThanToken, "<", "<"));
191AssertTokens("<", Token(SyntaxKind.LessThanToken, "<", "<"));
192AssertTokens("<", Token(SyntaxKind.LessThanToken, "<", "<"));
193AssertTokens("<", Token(SyntaxKind.LessThanToken, "<", "<"));
194AssertTokens("<", Token(SyntaxKind.LessThanToken, "<", "<"));
195AssertTokens("<", Token(SyntaxKind.LessThanToken, "<", "<"));
196AssertTokens("<", Token(SyntaxKind.LessThanToken, "<", "<"));
197AssertTokens("{", Token(SyntaxKind.LessThanToken, "{", "<"));
198AssertTokens("{", Token(SyntaxKind.LessThanToken, "{", "<"));
199AssertTokens("{", Token(SyntaxKind.LessThanToken, "{", "<"));
200AssertTokens("{", Token(SyntaxKind.LessThanToken, "{", "<"));
201AssertTokens("{", Token(SyntaxKind.LessThanToken, "{", "<"));
202AssertTokens("{", Token(SyntaxKind.LessThanToken, "{", "<"));
204AssertTokens(">", Token(SyntaxKind.GreaterThanToken, ">", ">"));
205AssertTokens(">", Token(SyntaxKind.GreaterThanToken, ">", ">"));
206AssertTokens(">", Token(SyntaxKind.GreaterThanToken, ">", ">"));
207AssertTokens(">", Token(SyntaxKind.GreaterThanToken, ">", ">"));
208AssertTokens(">", Token(SyntaxKind.GreaterThanToken, ">", ">"));
209AssertTokens(">", Token(SyntaxKind.GreaterThanToken, ">", ">"));
210AssertTokens(">", Token(SyntaxKind.GreaterThanToken, ">", ">"));
211AssertTokens("}", Token(SyntaxKind.GreaterThanToken, "}", ">"));
212AssertTokens("}", Token(SyntaxKind.GreaterThanToken, "}", ">"));
213AssertTokens("}", Token(SyntaxKind.GreaterThanToken, "}", ">"));
214AssertTokens("}", Token(SyntaxKind.GreaterThanToken, "}", ">"));
215AssertTokens("}", Token(SyntaxKind.GreaterThanToken, "}", ">"));
216AssertTokens("}", Token(SyntaxKind.GreaterThanToken, "}", ">"));
223AssertTokens("&", Token(SyntaxKind.XmlEntityLiteralToken, "&")); // Not valid XML
224AssertTokens("~", Token(SyntaxKind.TildeToken));
225AssertTokens("*", Token(SyntaxKind.AsteriskToken));
226AssertTokens("/", Token(SyntaxKind.SlashToken));
227AssertTokens("%", Token(SyntaxKind.PercentToken));
228AssertTokens("|", Token(SyntaxKind.BarToken));
229AssertTokens("^", Token(SyntaxKind.CaretToken));
232AssertTokens("+", Token(SyntaxKind.PlusToken));
233AssertTokens("++", Token(SyntaxKind.PlusPlusToken));
234AssertTokens("-", Token(SyntaxKind.MinusToken));
235AssertTokens("--", Token(SyntaxKind.MinusMinusToken));
236AssertTokens("<", Token(SyntaxKind.BadToken, "<"));
237AssertTokens("<<", Token(SyntaxKind.BadToken, "<"), Token(SyntaxKind.BadToken, "<"));
238AssertTokens("<=", Token(SyntaxKind.BadToken, "<"), Token(SyntaxKind.EqualsToken));
239AssertTokens(">", Token(SyntaxKind.GreaterThanToken));
240AssertTokens(">>", Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken));
241AssertTokens(">>>", Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken));
242AssertTokens(">=", Token(SyntaxKind.GreaterThanEqualsToken));
243AssertTokens("=", Token(SyntaxKind.EqualsToken));
244AssertTokens("==", Token(SyntaxKind.EqualsEqualsToken));
245AssertTokens("!", Token(SyntaxKind.ExclamationToken));
246AssertTokens("!=", Token(SyntaxKind.ExclamationEqualsToken));
249AssertTokens("&", Token(SyntaxKind.AmpersandToken, "&", "&")); // Fine
250AssertTokens("~", Token(SyntaxKind.TildeToken, "~", "~"));
251AssertTokens("*", Token(SyntaxKind.AsteriskToken, "*", "*"));
252AssertTokens("/", Token(SyntaxKind.SlashToken, "/", "/"));
253AssertTokens("%", Token(SyntaxKind.PercentToken, "%", "%"));
254AssertTokens("|", Token(SyntaxKind.BarToken, "|", "|"));
255AssertTokens("^", Token(SyntaxKind.CaretToken, "^", "^"));
258AssertTokens("+", Token(SyntaxKind.PlusToken, "+", "+"));
259AssertTokens("++", Token(SyntaxKind.PlusPlusToken, "++", "++"));
260AssertTokens("++", Token(SyntaxKind.PlusPlusToken, "++", "++"));
261AssertTokens("++", Token(SyntaxKind.PlusPlusToken, "++", "++"));
262AssertTokens("-", Token(SyntaxKind.MinusToken, "-", "-"));
263AssertTokens("--", Token(SyntaxKind.MinusMinusToken, "--", "--"));
264AssertTokens("--", Token(SyntaxKind.MinusMinusToken, "--", "--"));
265AssertTokens("--", Token(SyntaxKind.MinusMinusToken, "--", "--"));
266AssertTokens("<", Token(SyntaxKind.LessThanToken, "<", "<"));
267AssertTokens("<<", Token(SyntaxKind.LessThanLessThanToken, "<<", "<<"));
268AssertTokens("<=", Token(SyntaxKind.LessThanEqualsToken, "<=", "<="));
269AssertTokens("<=", Token(SyntaxKind.LessThanEqualsToken, "<=", "<="));
270AssertTokens(">", Token(SyntaxKind.GreaterThanToken, ">", ">"));
271AssertTokens(">>", Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken, ">", ">"));
272AssertTokens(">>", Token(SyntaxKind.GreaterThanToken, ">", ">"), Token(SyntaxKind.GreaterThanToken));
273AssertTokens(">>", Token(SyntaxKind.GreaterThanToken, ">", ">"), Token(SyntaxKind.GreaterThanToken, ">", ">"));
274AssertTokens(">=", Token(SyntaxKind.GreaterThanEqualsToken, ">=", ">="));
275AssertTokens(">=", Token(SyntaxKind.GreaterThanEqualsToken, ">=", ">="));
276AssertTokens(">=", Token(SyntaxKind.GreaterThanEqualsToken, ">=", ">="));
277AssertTokens("=", Token(SyntaxKind.EqualsToken, "=", "="));
278AssertTokens("==", Token(SyntaxKind.EqualsEqualsToken, "==", "=="));
279AssertTokens("==", Token(SyntaxKind.EqualsEqualsToken, "==", "=="));
280AssertTokens("==", Token(SyntaxKind.EqualsEqualsToken, "==", "=="));
281AssertTokens("!", Token(SyntaxKind.ExclamationToken, "!", "!"));
282AssertTokens("!=", Token(SyntaxKind.ExclamationEqualsToken, "!=", "!="));
283AssertTokens("!=", Token(SyntaxKind.ExclamationEqualsToken, "!=", "!="));
284AssertTokens("!=", Token(SyntaxKind.ExclamationEqualsToken, "!=", "!="));
290AssertTokens("+++", Token(SyntaxKind.PlusPlusToken), Token(SyntaxKind.PlusToken));
291AssertTokens("++++", Token(SyntaxKind.PlusPlusToken), Token(SyntaxKind.PlusPlusToken));
292AssertTokens("+++++", Token(SyntaxKind.PlusPlusToken), Token(SyntaxKind.PlusPlusToken), Token(SyntaxKind.PlusToken));
294AssertTokens("---", Token(SyntaxKind.MinusMinusToken), Token(SyntaxKind.MinusToken));
295AssertTokens("----", Token(SyntaxKind.MinusMinusToken), Token(SyntaxKind.MinusMinusToken));
296AssertTokens("-----", Token(SyntaxKind.MinusMinusToken), Token(SyntaxKind.MinusMinusToken), Token(SyntaxKind.MinusToken));
298AssertTokens("===", Token(SyntaxKind.EqualsEqualsToken), Token(SyntaxKind.EqualsToken));
299AssertTokens("====", Token(SyntaxKind.EqualsEqualsToken), Token(SyntaxKind.EqualsEqualsToken));
300AssertTokens("=====", Token(SyntaxKind.EqualsEqualsToken), Token(SyntaxKind.EqualsEqualsToken), Token(SyntaxKind.EqualsToken));
302AssertTokens("<<<", Token(SyntaxKind.LessThanLessThanToken, "<<", "<<"), Token(SyntaxKind.LessThanToken, "<", "<"));
303AssertTokens("<<<<", Token(SyntaxKind.LessThanLessThanToken, "<<", "<<"), Token(SyntaxKind.LessThanLessThanToken, "<<", "<<"));
304AssertTokens("<<<<<", Token(SyntaxKind.LessThanLessThanToken, "<<", "<<"), Token(SyntaxKind.LessThanLessThanToken, "<<", "<<"), Token(SyntaxKind.LessThanToken, "<", "<"));
306AssertTokens(">>>", Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken));
307AssertTokens(">>>>", Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken));
308AssertTokens(">>>>>", Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken));
310AssertTokens("!!=", Token(SyntaxKind.ExclamationToken), Token(SyntaxKind.ExclamationEqualsToken));
311AssertTokens("<<=", Token(SyntaxKind.LessThanLessThanToken, "<<", "<<"), Token(SyntaxKind.EqualsToken));
312AssertTokens(">>=", Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanEqualsToken)); //fixed up by parser
313AssertTokens(">>>=", Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanToken), Token(SyntaxKind.GreaterThanEqualsToken)); //fixed up by parser
315AssertTokens("!==", Token(SyntaxKind.ExclamationEqualsToken), Token(SyntaxKind.EqualsToken));
316AssertTokens("<==", Token(SyntaxKind.LessThanEqualsToken, "<=", "<="), Token(SyntaxKind.EqualsToken));
317AssertTokens(">==", Token(SyntaxKind.GreaterThanEqualsToken), Token(SyntaxKind.EqualsToken));
319AssertTokens("{", Token(SyntaxKind.LessThanToken, "{", "<"));
320AssertTokens("{{", Token(SyntaxKind.LessThanLessThanToken, "{{", "<<"));
321AssertTokens("{{{", Token(SyntaxKind.LessThanLessThanToken, "{{", "<<"), Token(SyntaxKind.LessThanToken, "{", "<"));
322AssertTokens("{{{{", Token(SyntaxKind.LessThanLessThanToken, "{{", "<<"), Token(SyntaxKind.LessThanLessThanToken, "{{", "<<"));
323AssertTokens("{{{{{", Token(SyntaxKind.LessThanLessThanToken, "{{", "<<"), Token(SyntaxKind.LessThanLessThanToken, "{{", "<<"), Token(SyntaxKind.LessThanToken, "{", "<"));
332AssertTokens("&", Token(SyntaxKind.XmlEntityLiteralToken, "&"));
333AssertTokens("&&", Token(SyntaxKind.XmlEntityLiteralToken, "&"), Token(SyntaxKind.XmlEntityLiteralToken, "&"));
334AssertTokens("&;", Token(SyntaxKind.XmlEntityLiteralToken, "&;"));
335AssertTokens("&a;", Token(SyntaxKind.XmlEntityLiteralToken, "&a;"));
336AssertTokens("&#;", Token(SyntaxKind.XmlEntityLiteralToken, "&#;"));
337AssertTokens("&#x;", Token(SyntaxKind.XmlEntityLiteralToken, "&#x;"));
338AssertTokens("&#a;", Token(SyntaxKind.XmlEntityLiteralToken, "&#"), Token(SyntaxKind.IdentifierToken, "a"), Token(SyntaxKind.BadToken, ";"));
339AssertTokens("&#xg;", Token(SyntaxKind.XmlEntityLiteralToken, "&#x"), Token(SyntaxKind.IdentifierToken, "g"), Token(SyntaxKind.BadToken, ";"));
342AssertTokens("�", Token(SyntaxKind.XmlEntityLiteralToken, "�"));
343AssertTokens("�", Token(SyntaxKind.XmlEntityLiteralToken, "�"));
346AssertTokens("a", Token(SyntaxKind.IdentifierToken, "a", "a"));
347AssertTokens("a", Token(SyntaxKind.IdentifierToken, "a", "a"));
353AssertTokens("<", Token(SyntaxKind.BadToken, "<"));
354AssertTokens(">", Token(SyntaxKind.GreaterThanToken));
360AssertTokens("");
367AssertTokens(@"A
373AssertTokens(@"A .B",
383AssertTokens(@"A .B",
393AssertTokens(@"A //comment
399AssertTokens(@"A /*comment*/.B",