summaryrefslogtreecommitdiffstats
path: root/tools/Sandcastle/Source/BuildAssembler/SyntaxComponents/CSharpDeclarationSyntax.cs
diff options
context:
space:
mode:
Diffstat (limited to 'tools/Sandcastle/Source/BuildAssembler/SyntaxComponents/CSharpDeclarationSyntax.cs')
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/SyntaxComponents/CSharpDeclarationSyntax.cs180
1 files changed, 95 insertions, 85 deletions
diff --git a/tools/Sandcastle/Source/BuildAssembler/SyntaxComponents/CSharpDeclarationSyntax.cs b/tools/Sandcastle/Source/BuildAssembler/SyntaxComponents/CSharpDeclarationSyntax.cs
index 3b5922d..26ddcb3 100644
--- a/tools/Sandcastle/Source/BuildAssembler/SyntaxComponents/CSharpDeclarationSyntax.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/SyntaxComponents/CSharpDeclarationSyntax.cs
@@ -153,6 +153,7 @@ namespace Microsoft.Ddue.Tools {
// normal method: done
public override void WriteNormalMethodSyntax (XPathNavigator reflection, SyntaxWriter writer) {
+ if (IsUnsupportedVarargs(reflection, writer)) return;
string name = (string) reflection.Evaluate(apiNameExpression);
@@ -185,91 +186,100 @@ namespace Microsoft.Ddue.Tools {
public override void WriteOperatorSyntax (XPathNavigator reflection, SyntaxWriter writer) {
string name = (string) reflection.Evaluate(apiNameExpression);
- string identifier;
- switch (name) {
- // unary math operators
- case "UnaryPlus":
- identifier = "+";
- break;
- case "UnaryNegation":
- identifier = "-";
- break;
- case "Increment":
- identifier = "++";
- break;
- case "Decrement":
- identifier = "--";
- break;
- // unary logical operators
- case "LogicalNot":
- identifier = "!";
- break;
- case "True":
- identifier = "true";
- break;
- case "False":
- identifier = "false";
- break;
- // binary comparison operators
- case "Equality":
- identifier = "==";
- break;
- case "Inequality":
- identifier = "!=";
- break;
- case "LessThan":
- identifier = "<";
- break;
- case "GreaterThan":
- identifier = ">";
- break;
- case "LessThanOrEqual":
- identifier = "<=";
- break;
- case "GreaterThanOrEqual":
- identifier = ">=";
- break;
- // binary math operators
- case "Addition":
- identifier = "+";
- break;
- case "Subtraction":
- identifier = "-";
- break;
- case "Multiply":
- identifier = "*";
- break;
- case "Division":
- identifier = "/";
- break;
- case "Modulus":
- identifier = "%";
- break;
- // binary logical operators
- case "BitwiseAnd":
- identifier = "&";
- break;
- case "BitwiseOr":
- identifier = "|";
- break;
- case "ExclusiveOr":
- identifier = "^";
- break;
- // bit-array operators
- case "OnesComplement":
- identifier = "~";
- break;
- case "LeftShift":
- identifier = "<<";
- break;
- case "RightShift":
- identifier = ">>";
- break;
- // unrecognized operator
- default:
- identifier = null;
- break;
- }
+ string identifier = null;
+ bool evalulate = (bool)reflection.Evaluate(apiIsUdtReturnExpression);
+
+ if (!(bool)reflection.Evaluate(apiIsUdtReturnExpression))
+ {
+ switch (name)
+ {
+ // unary math operators
+ case "UnaryPlus":
+ identifier = "+";
+ break;
+ case "UnaryNegation":
+ identifier = "-";
+ break;
+ case "Increment":
+ identifier = "++";
+ break;
+ case "Decrement":
+ identifier = "--";
+ break;
+ // unary logical operators
+ case "LogicalNot":
+ identifier = "!";
+ break;
+ case "True":
+ identifier = "true";
+ break;
+ case "False":
+ identifier = "false";
+ break;
+ // binary comparison operators
+ case "Equality":
+ identifier = "==";
+ break;
+ case "Inequality":
+ identifier = "!=";
+ break;
+ case "LessThan":
+ identifier = "<";
+ break;
+ case "GreaterThan":
+ identifier = ">";
+ break;
+ case "LessThanOrEqual":
+ identifier = "<=";
+ break;
+ case "GreaterThanOrEqual":
+ identifier = ">=";
+ break;
+ // binary math operators
+ case "Addition":
+ identifier = "+";
+ break;
+ case "Subtraction":
+ identifier = "-";
+ break;
+ case "Multiply":
+ identifier = "*";
+ break;
+ case "Division":
+ identifier = "/";
+ break;
+ case "Modulus":
+ identifier = "%";
+ break;
+ // binary logical operators
+ case "BitwiseAnd":
+ identifier = "&";
+ break;
+ case "BitwiseOr":
+ identifier = "|";
+ break;
+ case "ExclusiveOr":
+ identifier = "^";
+ break;
+ // bit-array operators
+ case "OnesComplement":
+ identifier = "~";
+ break;
+ case "LeftShift":
+ identifier = "<<";
+ break;
+ case "RightShift":
+ identifier = ">>";
+ break;
+ case "Assign":
+ identifier = "=";
+ break;
+ // unrecognized operator
+ default:
+ identifier = null;
+ break;
+ }
+ }
if (identifier == null) {
writer.WriteMessage("UnsupportedOperator_" + Language);
} else {