@@ -102,28 +102,28 @@ public UncompiledStringParser(TextStream reader) {
102102 public ImmutableArray < StringToken > Parse ( ) {
103103 List < StringToken > tokens = [ ] ;
104104 GlyphStyle style = GlyphStyle . Normal ;
105- while ( _reader . Has ( 0 ) && _reader . Peek ( 0 ) != '\n ' ) {
106- if ( _reader . Peek ( 0 ) == '〔' ) {
107- _reader . Next ( ) ;
105+ while ( _reader . Has ( 0 ) && _reader . PeekRune ( 0 ) != new Rune ( '\n ' ) ) {
106+ if ( _reader . PeekRune ( 0 ) == new Rune ( '〔' ) ) {
107+ _reader . NextRune ( ) ;
108108 tokens . Add ( new StringTokenTag ( "nameStart" , [ ] ) ) ;
109- } else if ( _reader . Peek ( 0 ) == '〕' ) {
110- _reader . Next ( ) ;
109+ } else if ( _reader . PeekRune ( 0 ) == new Rune ( '〕' ) ) {
110+ _reader . NextRune ( ) ;
111111 tokens . Add ( new StringTokenTag ( "nameEnd" , [ ] ) ) ;
112- } else if ( _reader . Peek ( 0 ) == '\\ ' ) {
113- if ( _reader . Has ( 1 ) && _reader . Peek ( 1 ) is '\\ ' or '〔' or '〕' ) {
112+ } else if ( _reader . PeekRune ( 0 ) == new Rune ( '\\ ' ) ) {
113+ if ( _reader . Has ( 1 ) && ( _reader . PeekRune ( 1 ) == new Rune ( '\\ ' ) || _reader . PeekRune ( 1 ) == new Rune ( '〔' ) || _reader . PeekRune ( 1 ) == new Rune ( '〕' ) ) ) {
114114 _reader . Skip ( 1 ) ;
115115 tokens . Add ( new StringTokenRune ( _reader . NextRune ( ) , style ) ) ;
116116 } else {
117- tokens . Add ( ParseTag ( ) ) ;
117+ tokens . Add ( ParseTag ( ) ) ;
118118 }
119119 } else if ( ParseUtils . TrySkip ( _reader , "<i>" ) ) {
120- style = GlyphStyle . Italic ;
120+ style = GlyphStyle . Italic ;
121121 } else if ( ParseUtils . TrySkip ( _reader , "</i>" ) ) {
122- style = GlyphStyle . Normal ;
122+ style = GlyphStyle . Normal ;
123123 } else {
124- tokens . Add ( new StringTokenRune ( _reader . NextRune ( ) , style ) ) ;
124+ tokens . Add ( new StringTokenRune ( _reader . NextRune ( ) , style ) ) ;
125125 }
126- }
126+ }
127127 return [ ..tokens ] ;
128128 }
129129
0 commit comments