public override void GetUtokensAround(UnparsableAst target, out InsertedUtokens leftInsertedUtokens, out InsertedUtokens rightInsertedUtokens) { base.GetUtokensAround(target, out leftInsertedUtokens, out rightInsertedUtokens); if (target.BnfTerm == B.OBJECT_BEGIN) { rightInsertedUtokens = UtokenInsert.NewLine(); } else if (target.BnfTerm == B.OBJECT_END) { leftInsertedUtokens = rightInsertedUtokens = UtokenInsert.NewLine(); } else if (target.BnfTerm == B.ARRAY_BEGIN) { rightInsertedUtokens = UtokenInsert.NewLine(); } else if (target.BnfTerm == B.ARRAY_END) { leftInsertedUtokens = rightInsertedUtokens = UtokenInsert.NewLine(); } else if (target.BnfTerm == B.COMMA) { leftInsertedUtokens = UtokenInsert.NoWhitespace(); rightInsertedUtokens = UtokenInsert.NewLine(); } else if (target.BnfTerm == B.COLON && !CompactFormat) { rightInsertedUtokens = UtokenInsert.NewLine(); } }
public override void GetUtokensAround(UnparsableAst target, out InsertedUtokens leftInsertedUtokens, out InsertedUtokens rightInsertedUtokens) { base.GetUtokensAround(target, out leftInsertedUtokens, out rightInsertedUtokens); if (target.BnfTerm == B.Statement) { leftInsertedUtokens = new[] { UtokenInsert.NewLine(), UtokenInsert.NewLine() } } ; } }
public override InsertedUtokens GetUtokensBetween(UnparsableAst leftTerminalLeaveTarget, UnparsableAst rightTarget) { if (leftTerminalLeaveTarget.BnfTerm is KeyTerm && rightTarget.BnfTerm == B.LEFT_PAREN) { return(UtokenInsert.NoWhitespace()); } else { return(base.GetUtokensBetween(leftTerminalLeaveTarget, rightTarget)); } }
public override void GetUtokensAround(UnparsableAst target, out InsertedUtokens leftInsertedUtokens, out InsertedUtokens rightInsertedUtokens) { base.GetUtokensAround(target, out leftInsertedUtokens, out rightInsertedUtokens); if (target.BnfTerm == B.RIGHT_PAREN) { leftInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.LEFT_PAREN) { rightInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.UnaryOperator) { rightInsertedUtokens = UtokenInsert.NoWhitespace(); } }
public override InsertedUtokens GetUtokensBetween(UnparsableAst leftTerminalLeaveTarget, UnparsableAst rightTarget) { if (leftTerminalLeaveTarget.AstImage != null && leftTerminalLeaveTarget.AstImage.AstValue is DC.Name && rightTarget.BnfTerm == B.LEFT_PAREN) { return(UtokenInsert.NoWhitespace()); } else if (leftTerminalLeaveTarget.AstImage != null && leftTerminalLeaveTarget.AstImage.AstValue is DC.NameRef && rightTarget.BnfTerm == B.LEFT_PAREN) { return(UtokenInsert.NoWhitespace()); } else if (leftTerminalLeaveTarget.BnfTerm == B.WRITE && rightTarget.BnfTerm == B.LEFT_PAREN) { return(UtokenInsert.NoWhitespace()); } else if (leftTerminalLeaveTarget.BnfTerm == B.WRITELN && rightTarget.BnfTerm == B.LEFT_PAREN) { return(UtokenInsert.NoWhitespace()); } // alternative ways to handle "else if" spacing else if (FlattenIfHierarchy && leftTerminalLeaveTarget.BnfTerm == B.ELSE && rightTarget.BnfTerm == B.If) { return(UtokenInsert.Space().SetPriority(10)); } //else if (FlattenIfHierarchy && leftTerminalLeaveTarget.BnfTerm == B.ELSE && rightTarget.BnfTerm == B.IF) // return UtokenInsert.Space.SetPriority(10); //else if (FlattenIfHierarchy && leftTerminalLeaveTarget.BnfTerm == B.ELSE && rightTarget.AstValue is D.If) // return UtokenInsert.Space.SetPriority(10); else if (leftTerminalLeaveTarget.BnfTerm == B.END && rightTarget.BnfTerm == B.DOT) { return(UtokenInsert.NoWhitespace().SetPriority(10)); } else { return(base.GetUtokensBetween(leftTerminalLeaveTarget, rightTarget)); } }
public override InsertedUtokens GetUtokensBetween(UnparsableAst leftTerminalLeaveTarget, UnparsableAst rightTarget) { if (leftTerminalLeaveTarget.AstImage != null && leftTerminalLeaveTarget.AstImage.AstValue is DC.Name && rightTarget.BnfTerm == B.LEFT_PAREN) { return(UtokenInsert.NoWhitespace()); } else if (leftTerminalLeaveTarget.AstImage != null && leftTerminalLeaveTarget.AstImage.AstValue is DC.NameRef && rightTarget.BnfTerm == B.LEFT_PAREN) { return(UtokenInsert.NoWhitespace()); } else if (leftTerminalLeaveTarget.BnfTerm == B.WRITE && rightTarget.BnfTerm == B.LEFT_PAREN) { return(UtokenInsert.NoWhitespace()); } else if (leftTerminalLeaveTarget.BnfTerm == B.WRITELN && rightTarget.BnfTerm == B.LEFT_PAREN) { return(UtokenInsert.NoWhitespace()); } else if (FlattenIfHierarchy && leftTerminalLeaveTarget.BnfTerm == B.ELSE && rightTarget.BnfTerm == B.If) { return(UtokenInsert.Space().SetPriority(10)); } else if (rightTarget.BnfTerm == B.ELSE && leftTerminalLeaveTarget.BnfTerm == B.END && IndentStyle == GrammarC.IndentStyle.KernighanAndRitchie) { return(UtokenInsert.Space().SetPriority(10)); } else if (leftTerminalLeaveTarget.BnfTerm == B.END && rightTarget.BnfTerm == B.DOT) { return(UtokenInsert.NoWhitespace().SetPriority(10)); } else { return(base.GetUtokensBetween(leftTerminalLeaveTarget, rightTarget)); } }
public override void GetUtokensAround(UnparsableAst target, out InsertedUtokens leftInsertedUtokens, out InsertedUtokens rightInsertedUtokens) { base.GetUtokensAround(target, out leftInsertedUtokens, out rightInsertedUtokens); #if false // alternative way to handle "else if" spacing if (target.AstValue is D.If && target.AstParent != null && target.AstParent.AstValue is D.If && // target.ParentMember != null && target.ParentMember.MemberInfo == Util.GetType<D.If>().GetMember(@if => @if.ElseBody)) target.ParentMember != null && target.ParentMember.MemberInfo == Util.GetMember(() => Util.GetType <D.If>().ElseBody) && target.BnfTerm == B.ELSE) { var foo = target.BnfTerm; rightInsertedUtokens = UtokenInsert.Space.SetPriority(10); return; } #endif if (target.BnfTerm == B.DOT) { leftInsertedUtokens = rightInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.RIGHT_PAREN) { leftInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.LEFT_PAREN) { rightInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.SEMICOLON) { leftInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.COMMA) { leftInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.Statement) { leftInsertedUtokens = rightInsertedUtokens = UtokenInsert.NewLine(); } else if (target.BnfTerm == B.BEGIN) { leftInsertedUtokens = rightInsertedUtokens = UtokenInsert.NewLine(); } else if (target.BnfTerm == B.END) { leftInsertedUtokens = rightInsertedUtokens = UtokenInsert.NewLine(); if (target.AstValue is D.Function) { rightInsertedUtokens = UtokenInsert.EmptyLine().SetPriority(10); } } else if (target.BnfTerm == B.UnaryOperator) { rightInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.Name && target.AstParent != null && target.AstParent.AstValue is D.Program) { rightInsertedUtokens = UtokenInsert.EmptyLine(); } else if (target.BnfTerm == B.NamespaceName && target.AstParent != null && target.AstParent.AstValue is D.Program) { rightInsertedUtokens = UtokenInsert.EmptyLine(); } }
public override void GetUtokensAround(UnparsableAst target, out InsertedUtokens leftInsertedUtokens, out InsertedUtokens rightInsertedUtokens) { base.GetUtokensAround(target, out leftInsertedUtokens, out rightInsertedUtokens); if (target.BnfTerm == B.DOT) { leftInsertedUtokens = rightInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.RIGHT_PAREN) { leftInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.LEFT_PAREN) { rightInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.SEMICOLON) { leftInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.COMMA) { leftInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.Statement) { leftInsertedUtokens = rightInsertedUtokens = UtokenInsert.NewLine(); } else if (target.BnfTerm == B.BEGIN) { rightInsertedUtokens = UtokenInsert.NewLine(); if (IndentStyle.EqualToAny(GrammarC.IndentStyle.Allman, GrammarC.IndentStyle.Whitesmiths)) { leftInsertedUtokens = UtokenInsert.NewLine(); } else if (IndentStyle.EqualToAny(GrammarC.IndentStyle.Stroustrup, GrammarC.IndentStyle.KernighanAndRitchie)) { leftInsertedUtokens = UtokenInsert.Space(); } } else if (target.BnfTerm == B.END) { leftInsertedUtokens = rightInsertedUtokens = UtokenInsert.NewLine(); if (target.AstValue is D.Function) { rightInsertedUtokens = UtokenInsert.EmptyLine().SetPriority(10); } } else if (target.BnfTerm == B.UnaryOperator) { rightInsertedUtokens = UtokenInsert.NoWhitespace(); } else if (target.BnfTerm == B.Name && target.AstParent != null && target.AstParent.AstValue is D.Program) { rightInsertedUtokens = UtokenInsert.EmptyLine(); } else if (target.BnfTerm == B.NamespaceName && target.AstParent != null && target.AstParent.AstValue is D.Program) { rightInsertedUtokens = UtokenInsert.EmptyLine(); } }