<Comment>// Comment </Comment><Alert Level 3>NOTE</Alert Level 3><br/>
<Comment>/* Comment </Comment><Alert Level 2>FIXME</Alert Level 2><Comment> </Comment><Alert Level 1>ALERT</Alert Level 1><br/>
<Comment>	*/</Comment><br/>
<Normal Text></Normal Text><br/>
<Comment>// Identifiers</Comment><br/>
<Macro>hellóñαωΑΩµo!</Macro><Normal Text>()</Normal Text><Symbol>;</Symbol><br/>
<Scope>HellóñαωΑΩµ::</Scope><Normal Text>Hello</Normal Text><Symbol>;</Symbol><br/>
<Lifetime>'hellóñαωΑΩµo</Lifetime><br/>
<Normal Text></Normal Text><br/>
<Keyword>pub</Keyword><Normal Text> </Normal Text><Keyword>use</Keyword><Normal Text> </Normal Text><Self>self</Self><Scope>::PathParameters::</Scope><Symbol>*;</Symbol><br/>
<Keyword>pub</Keyword><Normal Text> </Normal Text><Keyword>use</Keyword><Normal Text> </Normal Text><Scope>symbol::</Scope><Symbol>{</Symbol><Normal Text>Ident</Normal Text><Symbol>,</Symbol><Normal Text> Symbol </Normal Text><Keyword>as</Keyword><Normal Text> Name</Normal Text><Symbol>};</Symbol><br/>
<Keyword>use</Keyword><Normal Text> </Normal Text><Scope>serialize::</Scope><Symbol>{</Symbol><Self>self</Self><Symbol>,</Symbol><Normal Text> Encoder</Normal Text><Symbol>,</Symbol><Normal Text> Decoder</Normal Text><Symbol>};</Symbol><br/>
<Keyword>use</Keyword><Normal Text> </Normal Text><Scope>std::</Scope><Type>u32</Type><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Attribute>#[derive(</Attribute><Trait>Clone</Trait><Symbol>,</Symbol><Attribute> </Attribute><Trait>PartialEq</Trait><Symbol>,</Symbol><Attribute> </Attribute><Trait>Eq</Trait><Symbol>,</Symbol><Attribute> </Attribute><Trait>Hash</Trait><Symbol>,</Symbol><Attribute> </Attribute><Trait>Copy</Trait><Attribute>)]</Attribute><br/>
<Normal Text></Normal Text><br/>
<Keyword>pub</Keyword><Normal Text> </Normal Text><Keyword>struct</Keyword><Normal Text> Lifetime </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>pub</Keyword><Normal Text> id</Normal Text><Symbol>:</Symbol><Normal Text> NodeId</Normal Text><Symbol>,</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>pub</Keyword><Normal Text> span</Normal Text><Symbol>:</Symbol><Normal Text> Span</Normal Text><Symbol>,</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>pub</Keyword><Normal Text> bounds</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>Vec</Type><Symbol><</Symbol><Normal Text>PathSegment</Normal Text><Symbol>></Symbol><br/>
<Symbol>}</Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>impl</Keyword><Normal Text> </Normal Text><Scope>fmt::</Scope><Trait>Debug</Trait><Normal Text> </Normal Text><Keyword>for</Keyword><Normal Text> Lifetime </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>fn</Keyword><Definition> fmt</Definition><Normal Text>(</Normal Text><Symbol>&</Symbol><Self>self</Self><Symbol>,</Symbol><Normal Text> f</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol>&</Symbol><Keyword>mut</Keyword><Normal Text> </Normal Text><Scope>fmt::</Scope><Normal Text>Formatter) </Normal Text><Symbol>-></Symbol><Normal Text> </Normal Text><Scope>fmt::</Scope><Type>Result</Type><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>		</Normal Text><Macro>write!</Macro><Normal Text>(f</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><String>"lifetime({}: {})"</String><Symbol>,</Symbol><Normal Text> </Normal Text><Self>self</Self><Symbol>.</Symbol><Normal Text>id</Normal Text><Symbol>,</Symbol><Normal Text> </Normal Text><Scope>pprust::</Scope><Normal Text>lifetime_to_string(</Normal Text><Self>self</Self><Normal Text>))</Normal Text><br/>
<Normal Text>	</Normal Text><Symbol>}</Symbol><br/>
<Symbol>}</Symbol><br/>
<Keyword>impl</Keyword><Symbol><</Symbol><Lifetime>'a</Lifetime><Symbol>></Symbol><Normal Text> </Normal Text><Trait>PartialEq</Trait><Symbol><&</Symbol><Lifetime>'a</Lifetime><Normal Text> </Normal Text><Type>str</Type><Symbol>></Symbol><Normal Text> </Normal Text><Keyword>for</Keyword><Normal Text> </Normal Text><Type>Path</Type><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>fn</Keyword><Definition> eq</Definition><Normal Text>(</Normal Text><Symbol>&</Symbol><Self>self</Self><Symbol>,</Symbol><Normal Text> string</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Symbol>&&</Symbol><Lifetime>'a</Lifetime><Normal Text> </Normal Text><Type>str</Type><Normal Text>) </Normal Text><Symbol>-></Symbol><Normal Text> </Normal Text><Type>bool</Type><Normal Text> </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>		</Normal Text><Self>self</Self><Symbol>.</Symbol><Normal Text>segments</Normal Text><Symbol>.</Symbol><Normal Text>len() </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Number>1</Number><Normal Text> </Normal Text><Symbol>&&</Symbol><Normal Text> </Normal Text><Self>self</Self><Symbol>.</Symbol><Normal Text>segments[</Normal Text><Number>0</Number><Normal Text>]</Normal Text><Symbol>.</Symbol><Normal Text>identifier</Normal Text><Symbol>.</Symbol><Normal Text>name </Normal Text><Symbol>==</Symbol><Normal Text> </Normal Text><Symbol>*</Symbol><Normal Text>string</Normal Text><br/>
<Normal Text>	</Normal Text><Symbol>}</Symbol><br/>
<Symbol>}</Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>enum</Keyword><Normal Text> TraitBoundModifier </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>	</Normal Text><Constant>None</Constant><Symbol>,</Symbol><br/>
<Normal Text>	Maybe</Normal Text><Symbol>,</Symbol><br/>
<Symbol>}</Symbol><br/>
<Normal Text></Normal Text><br/>
<Keyword>union</Keyword><Normal Text> tests </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>	a</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>i128</Type><Symbol>,</Symbol><br/>
<Normal Text>	b</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>isize</Type><Symbol>,</Symbol><br/>
<Symbol>}</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Self vs self</Comment><br/>
<Keyword>trait</Keyword><Normal Text> T </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>    </Normal Text><Keyword>type</Keyword><Definition> Item</Definition><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Comment>// `Self` will be whatever type that implements `T`.</Comment><br/>
<Normal Text>    </Normal Text><Keyword>fn</Keyword><Definition> new</Definition><Normal Text>() </Normal Text><Symbol>-></Symbol><Normal Text> </Normal Text><Type>Self</Type><Symbol>;</Symbol><br/>
<Normal Text>    </Normal Text><Comment>// `Self::Item` will be the type alias in the implementation.</Comment><br/>
<Normal Text>    </Normal Text><Keyword>fn</Keyword><Definition> f</Definition><Normal Text>(</Normal Text><Symbol>&</Symbol><Self>self</Self><Normal Text>) </Normal Text><Symbol>-></Symbol><Normal Text> </Normal Text><Type>Self</Type><Scope>::</Scope><Normal Text>Item</Normal Text><Symbol>;</Symbol><br/>
<Symbol>}</Symbol><br/>
<Normal Text></Normal Text><br/>
<Comment>// Raw identifiers</Comment><br/>
<Keyword>extern</Keyword><Normal Text> </Normal Text><Keyword>crate</Keyword><Normal Text> foo</Normal Text><Symbol>;</Symbol><br/>
<Keyword>fn</Keyword><Definition> main</Definition><Normal Text>() </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>    </Normal Text><Scope>foo::</Scope><Raw Identifier>r#</Raw Identifier><Normal Text>try()</Normal Text><Symbol>;</Symbol><br/>
<Symbol>}</Symbol><br/>
<Normal Text></Normal Text><br/>
<Attribute>#[valid types]</Attribute><br/>
<Keyword>fn</Keyword><Definition> types</Definition><Normal Text>() </Normal Text><Symbol>{</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> num </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>333_3_</Number><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> num_u8</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u8</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>333u8</Number><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> num_u16</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u16</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>333u16</Number><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> num_u32</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>333u32</Number><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> num_u64</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u64</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>333u64</Number><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> num_u128</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u128</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>333u128</Number><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> num_usize</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>usize</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>333usize</Number><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> num_float</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>f32</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>333.45f32</Number><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> binary </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>0b1_010</Number><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> octal </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>0o21535</Number><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> hexadecimal </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Number>0x73A2_F</Number><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> char1</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>char</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>'a'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> char2</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>char</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>'</Character><CharEscape>\n</CharEscape><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> char3</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>char</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>'</Character><CharEscape>\u{123_AF}</CharEscape><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> byte1</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u8</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>b'a'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> byte2</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u8</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>b'</Character><CharEscape>\x13</CharEscape><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> string</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>str</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"hello </String><CharEscape>\n</CharEscape><String> </String><CharEscape>\r</CharEscape><String> </String><CharEscape>\u{123_________fd_}</CharEscape><String> </String><CharEscape>\</CharEscape><br/>
<String>						bye"</String><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> byte_string</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>str</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>b"hello </String><CharEscape>\t</CharEscape><String> </String><CharEscape>\0</CharEscape><String> </String><CharEscape>\</CharEscape><Error>u</Error><String>{123} </String><CharEscape>\</CharEscape><Error>b</Error><String> bye"</String><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> raw_string1</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>str</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>r"hello \t \b"</String><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> raw_string2</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>str</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>r####"hello \n "### bye"####</String><Normal Text>####</Normal Text><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> raw_string3</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>str</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>br####"hello \n"####</String><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text>    </Normal Text><Comment>// Invalid</Comment><br/>
<Normal Text></Normal Text><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_binary</Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Error>0b1_015</Error><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_octal </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Error>0o64_92</Error><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_hexadecimal </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Error>0x7_3AY</Error><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text>    </Normal Text><Keyword>let</Keyword><Normal Text> invalid_char1</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>char</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>'</Character><Error>\y</Error><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_char2</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>char</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>'</Character><Error>\324</Error><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_char3</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>char</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>'</Character><Error>%%</Error><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_char4</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>char</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>'</Character><Error>\n\dfd</Error><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_char5</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>char</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Lifetime>'aaaa</Lifetime><Normal Text>a</Normal Text><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> open_char</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>char</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><Character>'</Character><Symbol>&&&;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_byte1</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u8</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> b</Normal Text><Lifetime>'a</Lifetime><Normal Text>b</Normal Text><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_byte2</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u8</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> b</Normal Text><Character>'</Character><Error>\b</Error><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_byte2</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>u8</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> b</Normal Text><Character>'</Character><CharEscape>\u{123}</CharEscape><Character>'</Character><Symbol>;</Symbol><br/>
<Normal Text></Normal Text><br/>
<Normal Text>	</Normal Text><Keyword>let</Keyword><Normal Text> invalid_string</Normal Text><Symbol>:</Symbol><Normal Text> </Normal Text><Type>str</Type><Normal Text> </Normal Text><Symbol>=</Symbol><Normal Text> </Normal Text><String>"hello </String><CharEscape>\</CharEscape><Error>b</Error><String> </String><CharEscape>\</CharEscape><Error>u</Error><String>{_123} </String><CharEscape>\</CharEscape><Error>u</Error><String>{1234567} </String><CharEscape>\</CharEscape><Error> </Error><String> bye"</String><Symbol>;</Symbol><br/>
<Symbol>}</Symbol><br/>
