📄 prettyprintvisitor.cs
字号:
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
if (foreachStatement.EmbeddedStatement is BlockStatement) {
Visit((BlockStatement)foreachStatement.EmbeddedStatement, false);
} else {
foreachStatement.EmbeddedStatement.AcceptVisitor(this, data);
}
--outputFormatter.IndentationLevel;
return null;
}
public override object Visit(WhileStatement whileStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.While);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenParenthesis);
whileStatement.Condition.AcceptVisitor(this, data);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
if (whileStatement.EmbeddedStatement is BlockStatement) {
Visit((BlockStatement)whileStatement.EmbeddedStatement, false);
} else {
whileStatement.EmbeddedStatement.AcceptVisitor(this, data);
}
--outputFormatter.IndentationLevel;
return null;
}
public override object Visit(DoWhileStatement doWhileStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Do);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
if (doWhileStatement.EmbeddedStatement is BlockStatement) {
Visit((BlockStatement)doWhileStatement.EmbeddedStatement, false);
} else {
doWhileStatement.EmbeddedStatement.AcceptVisitor(this, data);
}
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.While);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenParenthesis);
doWhileStatement.Condition.AcceptVisitor(this, data);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.PrintToken(Tokens.Semicolon);
outputFormatter.NewLine();
return null;
}
public override object Visit(BreakStatement breakStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Break);
outputFormatter.PrintToken(Tokens.Semicolon);
outputFormatter.NewLine();
return null;
}
public override object Visit(ContinueStatement continueStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Continue);
outputFormatter.PrintToken(Tokens.Semicolon);
outputFormatter.NewLine();
return null;
}
public override object Visit(CheckedStatement checkedStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Checked);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
checkedStatement.Block.AcceptChildren(this, false);
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
outputFormatter.NewLine();
return null;
}
public override object Visit(UncheckedStatement uncheckedStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Unchecked);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
uncheckedStatement.Block.AcceptVisitor(this, false);
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
outputFormatter.NewLine();
return null;
}
public override object Visit(FixedStatement fixedStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Fixed);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenParenthesis);
Visit(fixedStatement.TypeReference, data);
outputFormatter.Space();
AppendCommaSeparatedList(fixedStatement.PointerDeclarators);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
if (fixedStatement.EmbeddedStatement is BlockStatement) {
Visit((BlockStatement)fixedStatement.EmbeddedStatement, false);
} else {
fixedStatement.EmbeddedStatement.AcceptVisitor(this, data);
}
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
outputFormatter.NewLine();
return null;
}
public override object Visit(GotoCaseStatement gotoCaseStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Goto);
outputFormatter.Space();
if (gotoCaseStatement.IsDefaultCase) {
outputFormatter.PrintToken(Tokens.Default);
} else {
outputFormatter.PrintToken(Tokens.Case);
outputFormatter.Space();
gotoCaseStatement.CaseExpression.AcceptVisitor(this, data);
}
outputFormatter.PrintToken(Tokens.Semicolon);
outputFormatter.NewLine();
return null;
}
public override object Visit(GotoStatement gotoStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Goto);
outputFormatter.Space();
outputFormatter.PrintIdentifier(gotoStatement.Label);
outputFormatter.PrintToken(Tokens.Semicolon);
outputFormatter.NewLine();
return null;
}
public override object Visit(IfElseStatement ifElseStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.If);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenParenthesis);
ifElseStatement.Condition.AcceptVisitor(this,data);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
ifElseStatement.EmbeddedStatement.AcceptVisitor(this,data);
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Else);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
ifElseStatement.EmbeddedElseStatement.AcceptVisitor(this,data);
--outputFormatter.IndentationLevel;
return null;
}
public override object Visit(IfStatement ifStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.If);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenParenthesis);
ifStatement.Condition.AcceptVisitor(this,data);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.Space();
++outputFormatter.IndentationLevel;
ifStatement.EmbeddedStatement.AcceptVisitor(this,data);
--outputFormatter.IndentationLevel;
return null;
}
public override object Visit(LabelStatement labelStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintIdentifier(labelStatement.Label);
outputFormatter.PrintToken(Tokens.Colon);
outputFormatter.NewLine();
return null;
}
public override object Visit(LockStatement lockStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Lock);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenParenthesis);
lockStatement.LockExpression.AcceptVisitor(this, data);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
lockStatement.EmbeddedStatement.AcceptVisitor(this, data);
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
outputFormatter.NewLine();
return null;
}
public override object Visit(ReturnStatement returnStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Return);
if (returnStatement.ReturnExpression != null) {
outputFormatter.Space();
returnStatement.ReturnExpression.AcceptVisitor(this, data);
}
outputFormatter.PrintToken(Tokens.Semicolon);
outputFormatter.NewLine();
return null;
}
public override object Visit(SwitchStatement switchStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Switch);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenParenthesis);
switchStatement.SwitchExpression.AcceptVisitor(this, data);
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
foreach (SwitchSection section in switchStatement.SwitchSections) {
for (int i = 0; i < section.SwitchLabels.Count; ++i) {
Expression label = (Expression)section.SwitchLabels[i];
if (label == null) {
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Default);
outputFormatter.PrintToken(Tokens.Colon);
outputFormatter.NewLine();
continue;
}
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Case);
outputFormatter.Space();
label.AcceptVisitor(this, data);
outputFormatter.PrintToken(Tokens.Colon);
outputFormatter.NewLine();
}
++outputFormatter.IndentationLevel;
section.AcceptChildren(this, data);
--outputFormatter.IndentationLevel;
}
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
outputFormatter.NewLine();
return null;
}
public override object Visit(ThrowStatement throwStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Throw);
if (throwStatement.ThrowExpression != null) {
outputFormatter.Space();
throwStatement.ThrowExpression.AcceptVisitor(this, data);
}
outputFormatter.PrintToken(Tokens.Semicolon);
outputFormatter.NewLine();
return null;
}
public override object Visit(TryCatchStatement tryCatchStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Try);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
tryCatchStatement.StatementBlock.AcceptChildren(this, data);
--outputFormatter.IndentationLevel;
if (tryCatchStatement.CatchClauses != null) {
// int generated = 0;
foreach (CatchClause catchClause in tryCatchStatement.CatchClauses) {
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.Catch);
outputFormatter.Space();
if (catchClause.Type == null) {
} else {
outputFormatter.PrintToken(Tokens.OpenParenthesis);
outputFormatter.PrintIdentifier(catchClause.Type);
if (catchClause.VariableName != null) {
outputFormatter.Space();
outputFormatter.PrintIdentifier(catchClause.VariableName);
}
outputFormatter.PrintToken(Tokens.CloseParenthesis);
}
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
catchClause.StatementBlock.AcceptChildren(this, data);
--outputFormatter.IndentationLevel;
}
}
if (tryCatchStatement.FinallyBlock != null) {
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.Finally);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
tryCatchStatement.FinallyBlock.AcceptChildren(this, data);
--outputFormatter.IndentationLevel;
}
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
outputFormatter.NewLine();
return null;
}
public override object Visit(UsingStatement usingStatement, object data)
{
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.Using);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenParenthesis);
outputFormatter.DoIndent = false;
outputFormatter.DoNewLine = false;
outputFormatter.EmitSemicolon = false;
usingStatement.UsingStmnt.AcceptVisitor(this,data);
outputFormatter.DoIndent = true;
outputFormatter.DoNewLine = true;
outputFormatter.EmitSemicolon = true;
outputFormatter.PrintToken(Tokens.CloseParenthesis);
outputFormatter.Space();
outputFormatter.PrintToken(Tokens.OpenCurlyBrace);
outputFormatter.NewLine();
++outputFormatter.IndentationLevel;
usingStatement.EmbeddedStatement.AcceptVisitor(this,data);
--outputFormatter.IndentationLevel;
outputFormatter.Indent();
outputFormatter.PrintToken(Tokens.CloseCurlyBrace);
outputFormatter.NewLine();
return null;
}
public override object Visit(LocalVariableDeclaration localVariableDeclaration, object data)
{
// Console.WriteLine(localVariableDeclaration);
outputFormatter.Indent();
VisitModifier(localVariableDeclaration.Modifier);
Visit(localVariableDeclaration.Type, data);
outputFormatter.Space();
this.AppendCommaSeparatedList(localVariableDeclaration.Variables);
outputFormatter.PrintToken(Tokens.Semicolon);
outputFormatter.NewLine();
return null;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -