<Comment>// TypeScript React</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>/** </Comment><Tags>@author</Tags><Comment> Willy </Comment><HTML Tag><willy@wmail.com></HTML Tag><br/>
<Comment>  * </Comment><Custom Tags>@url</Custom Tags><Comment> https://reactjs.org/ **/</Comment><br/>
<Normal Text></Normal Text><br/>
<Module>import</Module><Normal Text> </Normal Text><Normal Text>React </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>'react'</String><Symbol>;</Symbol><br/>
<Module>import</Module><Normal Text> </Normal Text><Normal Text>{ </Normal Text><Normal Text>PhotoStory</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>VideoStory </Normal Text><Normal Text>} </Normal Text><Module>from</Module><Normal Text> </Normal Text><String>'./stories'</String><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>function</Keyword><Normal Text> </Normal Text><Function Declaration>Story</Function Declaration><Normal Text>(</Normal Text><Normal Text>props</Normal Text><Normal Text>) </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>  </Normal Text><Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>SpecificStory </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>components</Normal Text><Normal Text>[</Normal Text><Objects>props</Objects><Symbol>.</Symbol><Object Member>storyType</Object Member><Normal Text>]</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>  </Normal Text><ControlFlow>return </ControlFlow><Component Tag><SpecificStory</Component Tag><Normal Text> </Normal Text><Attribute>story</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Normal Text> </Normal Text><Objects>props</Objects><Symbol>.</Symbol><Object Member>story</Object Member><Normal Text> </Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>attr2</Attribute><Symbol>=</Symbol><Value>"</Value><EntityRef>&ref;</EntityRef><Value>"</Value><Normal Text> </Normal Text><Attribute>attr3</Attribute><Symbol>=</Symbol><Value>"Hello\n"</Value><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Keyword>function</Keyword><br/>
<Component Tag><Tag</Component Tag><Normal Text> </Normal Text><Attribute>attr1</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Normal Text> </Normal Text><Element Tag><tag/></Element Tag><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Reserved>class</Reserved><Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> </Normal Text><Hexadecimal>0x123</Hexadecimal><Normal Text> </Normal Text><Normal Text>{ } </Normal Text><Symbol>&</Symbol><Normal Text>noRef</Normal Text><Symbol>;</Symbol><Normal Text> </Normal Text><Function Name>hello</Function Name><Normal Text>() </Normal Text><Objects>React</Objects><Symbol>.</Symbol><Function Name>Component</Function Name><Normal Text>() </Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>attr2</Attribute><Symbol>=</Symbol><Value>"</Value><EntityRef>&ref;</EntityRef><Value>"</Value><Component Tag>></Component Tag><br/>
<Tag Content Text>	/* no comment*/ function </Tag Content Text><Element Tag><tag/></Element Tag><Tag Content Text> return class var 0x123 </Tag Content Text><EntityRef>&ref;</EntityRef><Tag Content Text> hello() React.Component()</Tag Content Text><br/>
<Tag Content Text>	.</Tag Content Text><Element Tag><tag/></Element Tag><Tag Content Text> anyWord </Tag Content Text><Element Tag><tag/></Element Tag><br/>
<Tag Content Text>	</Tag Content Text><Code Brackets>{</Code Brackets><Normal Text> </Normal Text><Keyword>function</Keyword><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>tag</Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Reserved>class</Reserved><Normal Text> </Normal Text><Keyword>var</Keyword><Normal Text> </Normal Text><Hexadecimal>0x123</Hexadecimal><Normal Text> </Normal Text><Function Name>hello</Function Name><Normal Text>() </Normal Text><Objects>React</Objects><Symbol>.</Symbol><Function Name>Component</Function Name><Normal Text>() </Normal Text><Code Brackets>}</Code Brackets><br/>
<Component Tag></Tag></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Element Tag><tag1></Element Tag><Tag Content Text> </Tag Content Text><Element Tag></tag1></Element Tag><br/>
<Element Tag><tag1></Element Tag><Tag Content Text> </Tag Content Text><Element Tag></</Element Tag><Error>Tag$</Error><Element Tag>></Element Tag><br/>
<Component Tag><Tag$></Component Tag><Tag Content Text> </Tag Content Text><Component Tag></tag></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Element Tag><tag</Element Tag><Comment>/*comment*/</Comment><Attribute>attr1</Attribute><Comment>/*comment*/</Comment><Symbol>=</Symbol><Normal Text> </Normal Text><Comment>/*comment*/</Comment><Value>"value"</Value><Comment>/*comment*/</Comment><Attribute>attr2</Attribute><Normal Text> </Normal Text><Comment>/*comment*/</Comment><Attribute>attr3</Attribute><Symbol>=</Symbol><Value>'a'</Value><Normal Text> </Normal Text><Attribute>key</Attribute><Comment>/*comment*/</Comment><Attribute>key2</Attribute><Normal Text> </Normal Text><Element Tag>/></Element Tag><br/>
<Normal Text></Normal Text><br/>
<Comment>// Detect Valid tags</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>/* comment */</Comment><Normal Text> </Normal Text><Element Tag><tag></tag></Element Tag><br/>
<Normal Text>{ </Normal Text><Comment>/* comment</Comment><br/>
<Comment>	*/</Comment><Normal Text> </Normal Text><Component Tag><Tag</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><br/>
<Normal Text>	</Normal Text><Normal Text>word </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> </Normal Text><Symbol>.</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> } </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<ControlFlow>return </ControlFlow><Comment>/* comment</Comment><br/>
<Comment>	multiline */</Comment><Normal Text> </Normal Text><Element Tag><tag/></Element Tag><Normal Text> </Normal Text><Comment>/* comment */</Comment><Normal Text> </Normal Text><Component Tag><Tag/></Component Tag><br/>
<Symbol>&& </Symbol><Comment>/*comment*/</Comment><Normal Text> </Normal Text><Component Tag><Tag/></Component Tag><br/>
<Symbol>&</Symbol><Normal Text> </Normal Text><Comment>/*comment*/</Comment><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text>  </Normal Text><Element Tag><tag/></Element Tag><br/>
<Normal Text>{ </Normal Text><Element Tag><hello></Element Tag><Tag Content Text>Hello</Tag Content Text><Element Tag></hello></Element Tag><Normal Text> }</Normal Text><br/>
<Symbol>?</Symbol><Component Tag><Tag</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Normal Text>[ </Normal Text><Element Tag><tag</Element Tag><Normal Text> </Normal Text><Element Tag>/></Element Tag><Normal Text>  ( </Normal Text><Element Tag><tag</Element Tag><Normal Text> </Normal Text><Element Tag>/></Element Tag><br/>
<Symbol>,</Symbol><Component Tag><Tag/></Component Tag><Normal Text>    </Normal Text><Symbol>=</Symbol><Component Tag><Tag/></Component Tag><br/>
<Symbol>&&</Symbol><Element Tag><tag/></Element Tag><Normal Text>   </Normal Text><Symbol>||</Symbol><Element Tag><tag/></Element Tag><br/>
<ControlFlow>return </ControlFlow><Element Tag><tag/></Element Tag><Normal Text> </Normal Text><Symbol>;</Symbol><br/>
<Module>default</Module><Element Tag><tag/></Element Tag><Normal Text> </Normal Text><Symbol>;</Symbol><br/>
<Component Tag><Tag></Component Tag><Tag Content Text> </Tag Content Text><Element Tag><tag></Element Tag><Tag Content Text> </Tag Content Text><Component Tag><tag$/></Component Tag><Tag Content Text> </Tag Content Text><Element Tag></tag></Element Tag><Tag Content Text> return </Tag Content Text><Component Tag></Tag></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Normal Text>anyWord</Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>></Symbol><br/>
<Normal Text>anyWord</Normal Text><Comment>/*comment*/</Comment><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Symbol>.</Symbol><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>></Symbol><br/>
<Symbol>&</Symbol><Symbol><</Symbol><Normal Text>notag</Normal Text><Symbol>></Symbol><Normal Text> </Normal Text><Symbol>|</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Symbol>%</Symbol><Normal Text> </Normal Text><Comment>/* comment*/</Comment><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// </Comment><Alert Level 2>TODO</Alert Level 2><Comment>: Fix this (comment before the tag name):</Comment><br/>
<Keyword>var</Keyword><Normal Text> </Normal Text><Normal Text>x </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Comment>/**/</Comment><Normal Text>div</Normal Text><Symbol>></</Symbol><Normal Text>div</Normal Text><Symbol>>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Tag after ":"</Comment><br/>
<Parameter>annotation</Parameter><Symbol>: </Symbol><Element Tag><tag/></Element Tag><br/>
<Parameter>annotation</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>text </Normal Text><Normal Text>[ </Normal Text><Element Tag><tag/></Element Tag><Normal Text> ]</Normal Text><br/>
<Built-in Objects>console</Built-in Objects><Symbol>.</Symbol><Object Method (Built-in)>log</Object Method (Built-in)><Normal Text>(</Normal Text><String>"hello"</String><Normal Text>)</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Type assertion in tag</Comment><br/>
<Component Tag><C</Component Tag><Symbol><</Symbol><Component Tag>number</Component Tag><Symbol>></Symbol><Component Tag>/></Component Tag><br/>
<Component Tag><C</Component Tag><Symbol><</Symbol><Component Tag>number</Component Tag><Symbol>></Symbol><Component Tag>></Component Tag><Tag Content Text> </Tag Content Text><Component Tag></C></Component Tag><br/>
<Component Tag><C</Component Tag><br/>
<Error><error</Error><Normal Text> </Normal Text><Component Tag>/></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Comment>// Non-ASCII tag name & attribute</Comment><br/>
<Component Tag><日本語></日本語></Component Tag><Symbol>;</Symbol><br/>
<Component Tag><Component</Component Tag><Normal Text> </Normal Text><Attribute>本本:本-本</Attribute><Normal Text> </Normal Text><Attribute>aa本:本</Attribute><Normal Text> </Normal Text><Attribute>aa:aa</Attribute><Normal Text> </Normal Text><Component Tag>/></Component Tag><br/>
<Component Tag><aaaa:ñ</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><br/>
<Normal Text></Normal Text><br/>
<Component Tag><Namespace.DeepNamespace.Component</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Component Tag><Component</Component Tag><Normal Text> </Normal Text><Code Brackets>{</Code Brackets><Normal Text> </Normal Text><Symbol>...</Symbol><Normal Text> </Normal Text><Normal Text>x </Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>y</Attribute><br/>
<Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>2</Decimal><Normal Text> </Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>z</Attribute><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k1 </Normal Text><Symbol>=</Symbol><br/>
<Normal Text>    </Normal Text><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Normal Text> </Normal Text><Code Brackets>{</Code Brackets><Symbol>...</Symbol><Normal Text>o</Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Component Tag>></Component Tag><br/>
<Tag Content Text>        hi hi hi!</Tag Content Text><br/>
<Tag Content Text>    </Tag Content Text><Component Tag></Comp></Component Tag><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k2 </Normal Text><Symbol>=</Symbol><br/>
<Normal Text>    </Normal Text><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><br/>
<Tag Content Text>        </Tag Content Text><Element Tag><div></Element Tag><Tag Content Text> My Div </Tag Content Text><Element Tag></div></Element Tag><br/>
<Tag Content Text>        </Tag Content Text><Code Brackets>{</Code Brackets><Normal Text>(</Normal Text><Parameter>name</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>) </Normal Text><Special Operators>=> </Special Operators><Element Tag><div></Element Tag><Tag Content Text> My name </Tag Content Text><Code Brackets>{</Code Brackets><Normal Text>name</Normal Text><Code Brackets>}</Code Brackets><Tag Content Text> </Tag Content Text><Element Tag></div></Element Tag><Code Brackets>}</Code Brackets><br/>
<Tag Content Text>    </Tag Content Text><Component Tag></Comp></Component Tag><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k3 </Normal Text><Symbol>= </Symbol><Component Tag><GenericComponent</Component Tag><Normal Text> </Normal Text><Attribute>initialValues</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Normal Text>{ </Normal Text><Parameter>x</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><String>"y"</String><Normal Text> </Normal Text><Normal Text>}</Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>nextValues</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Normal Text>a </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>(</Normal Text><Normal Text>{ </Normal Text><Parameter>x</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Objects>a</Objects><Symbol>.</Symbol><Object Member>x</Object Member><Normal Text> </Normal Text><Normal Text>}</Normal Text><Normal Text>)</Normal Text><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// No Error</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>// OK</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k1 </Normal Text><Symbol>= </Symbol><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><Element Tag><></></Element Tag><Component Tag><Button</Component Tag><Normal Text> </Normal Text><Component Tag>/><AnotherButton</Component Tag><Normal Text> </Normal Text><Component Tag>/></Comp></Component Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k2 </Normal Text><Symbol>= </Symbol><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><Element Tag><></Element Tag><Component Tag><Button</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Element Tag></></Element Tag><Component Tag><AnotherButton</Component Tag><Normal Text> </Normal Text><Component Tag>/></Comp></Component Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k3 </Normal Text><Symbol>= </Symbol><Component Tag><Comp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><Element Tag><></Element Tag><Component Tag><Button</Component Tag><Normal Text> </Normal Text><Component Tag>/><AnotherButton</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Element Tag></></Element Tag><Component Tag></Comp></Component Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k4 </Normal Text><Symbol>= </Symbol><Component Tag><SingleChildComp</Component Tag><Normal Text> </Normal Text><Attribute>a</Attribute><Symbol>=</Symbol><Code Brackets>{</Code Brackets><Decimal>10</Decimal><Code Brackets>}</Code Brackets><Normal Text> </Normal Text><Attribute>b</Attribute><Symbol>=</Symbol><Value>"hi"</Value><Component Tag>></Component Tag><Element Tag><></Element Tag><Component Tag><Button</Component Tag><Normal Text> </Normal Text><Component Tag>/><AnotherButton</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Element Tag></></Element Tag><Component Tag></SingleChildComp></Component Tag><Symbol>;</Symbol><br/>
<Comment>// OK</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k1 </Normal Text><Symbol>= </Symbol><Element Tag><div></Element Tag><Tag Content Text> </Tag Content Text><Element Tag><h2></Element Tag><Tag Content Text> Hello </Tag Content Text><Element Tag></h2></Element Tag><Tag Content Text> </Tag Content Text><Element Tag><h1></Element Tag><Tag Content Text> world </Tag Content Text><Element Tag></h1></div></Element Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k2 </Normal Text><Symbol>= </Symbol><Element Tag><div></Element Tag><Tag Content Text> </Tag Content Text><Element Tag><h2></Element Tag><Tag Content Text> Hello </Tag Content Text><Element Tag></h2></Element Tag><Tag Content Text> </Tag Content Text><Code Brackets>{</Code Brackets><Normal Text>(</Normal Text><Parameter>user</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>any</Types><Normal Text>) </Normal Text><Special Operators>=> </Special Operators><Element Tag><h2></Element Tag><Code Brackets>{</Code Brackets><Objects>user</Objects><Symbol>.</Symbol><Object Member>name</Object Member><Code Brackets>}</Code Brackets><Element Tag></h2></Element Tag><Code Brackets>}</Code Brackets><Element Tag></div></Element Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k3 </Normal Text><Symbol>= </Symbol><Element Tag><div></Element Tag><Tag Content Text> </Tag Content Text><Code Brackets>{</Code Brackets><Decimal>1</Decimal><Code Brackets>}</Code Brackets><Tag Content Text> </Tag Content Text><Code Brackets>{</Code Brackets><String>"That is a number"</String><Code Brackets>}</Code Brackets><Tag Content Text> </Tag Content Text><Element Tag></div></Element Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>k4 </Normal Text><Symbol>= </Symbol><Component Tag><Button></Component Tag><Tag Content Text> </Tag Content Text><Element Tag><h2></Element Tag><Tag Content Text> Hello </Tag Content Text><Element Tag></h2></Element Tag><Tag Content Text> </Tag Content Text><Component Tag></Button></Component Tag><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Empty tags</Comment><br/>
<Normal Text>hello</Normal Text><Symbol><></Symbol><br/>
<Normal Text>hello</Normal Text><Symbol><</Symbol><Types>string</Types><Symbol>></Symbol><br/>
<Normal Text></Normal Text><br/>
<Element Tag><></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// no whitespace</Comment><br/>
<Element Tag><    ></   ></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// lots of whitespace</Comment><br/>
<Symbol><</Symbol><Normal Text> </Normal Text><Comment>/*starting wrap*/</Comment><Normal Text> </Normal Text><Symbol>></</Symbol><Normal Text> </Normal Text><Comment>/*ending wrap*/</Comment><Symbol>>;</Symbol><Normal Text> </Normal Text><Comment>// comments in the tags</Comment><br/>
<Element Tag><></Element Tag><Tag Content Text>hi</Tag Content Text><Element Tag></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// text inside</Comment><br/>
<Element Tag><><span></Element Tag><Tag Content Text>hi</Tag Content Text><Element Tag></span><div></Element Tag><Tag Content Text>bye</Tag Content Text><Element Tag></div></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// children</Comment><br/>
<Element Tag><><span></Element Tag><Tag Content Text>1</Tag Content Text><Element Tag></span><><span></Element Tag><Tag Content Text>2.1</Tag Content Text><Element Tag></span><span></Element Tag><Tag Content Text>2.2</Tag Content Text><Element Tag></span></><span></Element Tag><Tag Content Text>3</Tag Content Text><Element Tag></span></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// nested fragments</Comment><br/>
<Element Tag><></Element Tag><Tag Content Text>#</Tag Content Text><Element Tag></></Element Tag><Symbol>;</Symbol><Normal Text> </Normal Text><Comment>// # would cause scanning error if not in jsxtext</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>// Tags after substitutions in templates</Comment><br/>
<Template>`aaa</Template><Substitution>${</Substitution><Element Tag><tag></tag></Element Tag><Comment>//comment</Comment><br/>
<Normal Text>    </Normal Text><Comment>/*comment*/</Comment><Component Tag><A/></Component Tag><Substitution>}</Substitution><Template>`</Template><br/>
<Normal Text></Normal Text><br/>
<Comment>// Don't highlight tags within type declaration</Comment><br/>
<Reserved>type</Reserved><Normal Text> </Normal Text><Normal Text>T12 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Built-in Objects>ReturnType</Built-in Objects><Symbol><</Symbol><Normal Text>(</Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>() </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Reserved>type</Reserved><Normal Text> </Normal Text><Normal Text>T13 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Built-in Objects>ReturnType</Built-in Objects><Symbol><</Symbol><Normal Text>(</Normal Text><Symbol><</Symbol><Normal Text>T </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Normal Text>U</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Normal Text>U </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Types>number</Types><Normal Text>[]</Normal Text><Symbol>></Symbol><Normal Text>() </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Reserved>type</Reserved><Normal Text> </Normal Text><Normal Text>T14 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Built-in Objects>ReturnType</Built-in Objects><Symbol><</Symbol><Keyword>typeof</Keyword><Normal Text> </Normal Text><Normal Text>f1</Normal Text><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Reserved>type</Reserved><Normal Text> </Normal Text><Normal Text>T15 </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Built-in Objects>ReturnType</Built-in Objects><Symbol><</Symbol><Normal Text>(</Normal Text><Parameter>s</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Types>string</Types><Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Types>void</Types><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Don't highlight tags within variable declaration</Comment><br/>
<Reserved>let</Reserved><Normal Text> myIdentity</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>T </Normal Text><Symbol><</Symbol><Normal Text>noTag</Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Normal Text> </Normal Text><Symbol>= </Symbol><Component Tag><Tag</Component Tag><Normal Text> </Normal Text><Component Tag>/></Component Tag><Symbol>;</Symbol><br/>
<Keyword>var</Keyword><Normal Text> myIdentity</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>U</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>U</Normal Text><Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> </Normal Text><Normal Text>U </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>identity</Normal Text><Symbol>;</Symbol><br/>
<Keyword>const</Keyword><Normal Text> myIdentity</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>{</Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>}</Normal Text><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>identity</Normal Text><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Don't highlight tags within interfaces and classes</Comment><br/>
<Reserved>interface</Reserved><Normal Text> </Normal Text><Normal Text>GenericIdentityFn </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    </Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Symbol><</Symbol><Normal Text>noTag </Normal Text><Symbol>/</Symbol><Symbol>></Symbol><br/>
<Normal Text>}</Normal Text><br/>
<Reserved>class</Reserved><Normal Text> </Normal Text><Normal Text>Handler </Normal Text><Normal Text>{</Normal Text><br/>
<Normal Text>    </Normal Text><Parameter>info</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol><</Symbol><Normal Text>T</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><Normal Text>)</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T </Normal Text><Symbol><</Symbol><Normal Text>noTag </Normal Text><Symbol>/</Symbol><Symbol>></Symbol><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Element Tag><tag></Element Tag><Tag Content Text> </Tag Content Text><Element Tag></tag></Element Tag><br/>
<Normal Text>}</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Highlight "<T extends" as a type assertion, not as a tag</Comment><br/>
<Comment>// (the "cast" expression works and isn't supported in the TSX file)</Comment><br/>
<Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>goodHighlighting </Normal Text><Symbol>= <</Symbol><Normal Text>T </Normal Text><Reserved>extends</Reserved><Normal Text> </Normal Text><Normal Text>I</Normal Text><Symbol>></Symbol><Normal Text>(</Normal Text><br/>
<Normal Text>  </Normal Text><Parameter>arg</Parameter><Symbol>:</Symbol><Normal Text> </Normal Text><Normal Text>T</Normal Text><br/>
<Normal Text>) </Normal Text><Special Operators>=></Special Operators><Normal Text> {</Normal Text><br/>
<Normal Text>  </Normal Text><Keyword>const</Keyword><Normal Text> </Normal Text><Normal Text>a </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>arg</Normal Text><br/>
<Normal Text>  </Normal Text><ControlFlow>return</ControlFlow><Normal Text> </Normal Text><Normal Text>a</Normal Text><br/>
<Normal Text>}</Normal Text><br/>
<Element Tag><tag></Element Tag><Tag Content Text> text </Tag Content Text><Component Tag><T</Component Tag><Normal Text> </Normal Text><Attribute>extends</Attribute><Normal Text> </Normal Text><Attribute>I</Attribute><Component Tag>/></Component Tag><Tag Content Text> </Tag Content Text><Element Tag></tag></Element Tag><Normal Text> </Normal Text><Comment>// Here "<T extends I/>" is a tag</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>// Check character after tag name, do not highlight invalid tags</Comment><br/>
<Symbol><</Symbol><Normal Text>noTag  </Normal Text><Symbol>?</Symbol><br/>
<Symbol><</Symbol><Normal Text>noTag  </Normal Text><Symbol>,</Symbol><br/>
<Symbol><</Symbol><Normal Text>noTag </Normal Text><Comment>/* comment */</Comment><Normal Text> </Normal Text><Symbol>?</Symbol><br/>
<Symbol><</Symbol><Normal Text>noTag</Normal Text><Normal Text>#</Normal Text><br/>
<Symbol><</Symbol><Normal Text>noTag</Normal Text><Comment>/*comment*/</Comment><Normal Text>#</Normal Text><br/>
<Normal Text></Normal Text><br/>
<Comment>// Conditionals expressions</Comment><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>y </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>foo </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text> </Normal Text><Symbol>?</Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text> </Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Component Tag><Tag/></Component Tag><Symbol>;</Symbol><br/>
<Reserved>let</Reserved><Normal Text> </Normal Text><Normal Text>x </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Normal Text>(</Normal Text><Normal Text>foo </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><Keyword>null</Keyword><Normal Text> </Normal Text><Symbol>||</Symbol><Normal Text> </Normal Text><Normal Text>foo </Normal Text><Symbol>===</Symbol><Normal Text> </Normal Text><Keyword>undefined</Keyword><Normal Text>) </Normal Text><Symbol>?</Symbol><br/>
<Normal Text>    </Normal Text><Keyword>undefined</Keyword><Normal Text> </Normal Text><Symbol>:</Symbol><Element Tag><tag></Element Tag><Tag Content Text>hello</Tag Content Text><Element Tag></tag></Element Tag><Symbol>;</Symbol><br/>
