📄 html_token_visitor.cs
字号:
namespace CSharp
{
using System;
public sealed class HTMLTokenVisitor : ITokenVisitor
{
// Add methods here
private void SpannedFilteredWrite(string spanName, IToken token)
{
Console.Write("<span class=\"{0}\">", spanName);
FilteredWrite(token);
Console.Write("</span>");
}
private void FilteredWrite(IToken token)
{
string src = token.ToString();
for (int i = 0; i != src.Length; i++)
{
string dst;
switch (src[i])
{
case '<' : dst = "<"; break;
case '>' : dst = ">"; break;
case '&' : dst = "&"; break;
default : dst = new string(src[i], 1); break;
}
Console.Write(dst);
}
}
public void Visit(ILineStartToken line)
{
Console.Write("<span class=\"line_number\">");
Console.Write("{0,3}", line.Number());
Console.Write("</span>");
}
public void Visit(ILineEndToken t)
{
Console.WriteLine();
}
public void Visit(IIdentifierToken token)
{
SpannedFilteredWrite("identifier", token);
}
public void Visit(ICommentToken token)
{
SpannedFilteredWrite("comment", token);
}
public void Visit(IKeywordToken token)
{
SpannedFilteredWrite("keyword", token);
}
public void Visit(IWhiteSpaceToken token)
{
Console.Write(token.ToString());
}
public void Visit(IDirectiveToken token)
{
SpannedFilteredWrite("directive", token);
}
public void Visit(IOtherToken token)
{
FilteredWrite(token);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -