public static void Highlighting() { var t = LexNext(); while (t.kind != TokenKind.END) { switch (t.kind) { case TokenKind.ADD: case TokenKind.SUB: case TokenKind.MULT: case TokenKind.DIV: case TokenKind.EQU: case TokenKind.GT: case TokenKind.LT: SourceViewModel.Colorize(t.offset, t.value.Length, HLKind.OPERATOR); break; case TokenKind.SEMI: case TokenKind.LBRA: case TokenKind.RBRA: case TokenKind.LPAR: case TokenKind.RPAR: SourceViewModel.Colorize(t.offset, t.value.Length, HLKind.PUNCT); break; case TokenKind.BREAK: case TokenKind.DO: case TokenKind.ELSE: case TokenKind.IF: case TokenKind.WHILE: SourceViewModel.Colorize(t.offset, t.value.Length, HLKind.KEYWORD); break; case TokenKind.ID: SourceViewModel.Colorize(t.offset, t.value.Length, HLKind.ID); break; case TokenKind.NUM: SourceViewModel.Colorize(t.offset, t.value.Length, HLKind.NUM); break; case TokenKind.ANNO: SourceViewModel.Colorize(t.offset, t.value.Length, HLKind.ANNO); break; case TokenKind.ERROR: SourceViewModel.Colorize(t.offset, t.value.Length, HLKind.ERROR); break; } t = LexNext(); } }