private bool TryAdaptParenthesizedExpression(JassMapScriptAdapterContext context, JassParenthesizedExpressionSyntax parenthesizedExpression, [NotNullWhen(true)] out IExpressionSyntax?adaptedParenthesizedExpression) { if (TryAdaptExpression(context, parenthesizedExpression.Expression, out var adaptedExpression)) { adaptedParenthesizedExpression = new JassParenthesizedExpressionSyntax(adaptedExpression); return(true); } adaptedParenthesizedExpression = null; return(false); }
private bool TryAdaptExpression(JassMapScriptAdapterContext context, IExpressionSyntax?expression, [NotNullWhen(true)] out IExpressionSyntax?adaptedExpression) { return(expression switch { JassFunctionReferenceExpressionSyntax functionReferenceExpression => TryAdaptFunctionReferenceExpression(context, functionReferenceExpression, out adaptedExpression), JassInvocationExpressionSyntax invocationExpression => TryAdaptInvocationExpression(context, invocationExpression, out adaptedExpression), JassArrayReferenceExpressionSyntax arrayReferenceExpression => TryAdaptArrayReferenceExpression(context, arrayReferenceExpression, out adaptedExpression), JassVariableReferenceExpressionSyntax variableReferenceExpression => TryAdaptVariableReferenceExpression(context, variableReferenceExpression, out adaptedExpression), JassParenthesizedExpressionSyntax parenthesizedExpression => TryAdaptParenthesizedExpression(context, parenthesizedExpression, out adaptedExpression), JassUnaryExpressionSyntax unaryExpression => TryAdaptUnaryExpression(context, unaryExpression, out adaptedExpression), JassBinaryExpressionSyntax binaryExpression => TryAdaptBinaryExpression(context, binaryExpression, out adaptedExpression), _ => TryAdaptDummy(context, expression, out adaptedExpression), });
public ExpressionSyntax Transpile(IExpressionSyntax expression) { return(expression switch { JassCharacterLiteralExpressionSyntax characterLiteralExpression => Transpile(characterLiteralExpression), JassFourCCLiteralExpressionSyntax fourCCLiteralExpression => Transpile(fourCCLiteralExpression), JassHexadecimalLiteralExpressionSyntax hexadecimalLiteralExpression => Transpile(hexadecimalLiteralExpression), JassRealLiteralExpressionSyntax realLiteralExpression => Transpile(realLiteralExpression), JassOctalLiteralExpressionSyntax octalLiteralExpression => Transpile(octalLiteralExpression), JassDecimalLiteralExpressionSyntax decimalLiteralExpression => Transpile(decimalLiteralExpression), JassBooleanLiteralExpressionSyntax booleanLiteralExpression => Transpile(booleanLiteralExpression), JassStringLiteralExpressionSyntax stringLiteralExpression => Transpile(stringLiteralExpression), JassNullLiteralExpressionSyntax nullLiteralExpression => Transpile(nullLiteralExpression), JassFunctionReferenceExpressionSyntax functionReferenceExpression => Transpile(functionReferenceExpression), JassInvocationExpressionSyntax invocationExpression => Transpile(invocationExpression), JassArrayReferenceExpressionSyntax arrayReferenceExpression => Transpile(arrayReferenceExpression), JassVariableReferenceExpressionSyntax variableReferenceExpression => Transpile(variableReferenceExpression), JassParenthesizedExpressionSyntax parenthesizedExpression => Transpile(parenthesizedExpression), JassUnaryExpressionSyntax unaryExpression => Transpile(unaryExpression), JassBinaryExpressionSyntax binaryExpression => Transpile(binaryExpression), });
public ExpressionSyntax Transpile(JassParenthesizedExpressionSyntax parenthesizedExpression) { return(SyntaxFactory.ParenthesizedExpression(Transpile(parenthesizedExpression.Expression))); }
public LuaExpressionSyntax Transpile(JassParenthesizedExpressionSyntax parenthesizedExpression, out JassTypeSyntax type) { return(new LuaParenthesizedExpressionSyntax(Transpile(parenthesizedExpression.Expression, out type))); }
public void Render(JassParenthesizedExpressionSyntax parenthesizedExpression) { Write(JassSymbol.LeftParenthesis); Render(parenthesizedExpression.Expression); Write(JassSymbol.RightParenthesis); }