colorsyntaxvisitor.cs

来自「微软(Microsoft)出版社C井练习文件及解答」· CS 代码 · 共 63 行

CS
63
字号
namespace Tokenizer
{
    using System;
	using System.Windows.Forms;
	using System.Drawing;

    sealed class ColorSyntaxVisitor : ITokenVisitor
    {
        public ColorSyntaxVisitor(RichTextBox rtb)
        {
            this.target = rtb;
            this.target.Clear();
            this.index = 0;
        }

        private void Write(string token, Color color)
        {
            target.AppendText(token);
            target.Select(this.index, this.index + token.Length);
            this.index += token.Length;
            target.SelectionColor = color;
        }

        void ITokenVisitor.VisitComment(string token)
        {
            Write(token, Color.Black);
        }

        void ITokenVisitor.VisitIdentifier(string token)
        {
            Write(token, Color.Black);
        }

        void ITokenVisitor.VisitKeyword(string token)
        {
            Write(token, Color.Blue);
        }

        void ITokenVisitor.VisitOperator(string token)
        {
            Write(token, Color.Black);
        }

        void ITokenVisitor.VisitPunctuator(string token)
        {
            Write(token, Color.Black);
        }

        void ITokenVisitor.VisitStringLiteral(string token)
        {
            Write(token, Color.Green);
        }

        void ITokenVisitor.VisitWhitespace(string token)
        {
            Write(token, Color.Black);
        }

        private readonly RichTextBox target;
		private int index;        
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?