internal void Render(LuaPropertyAdapterExpressionSyntax node) { if (node.Expression != null) { node.Expression.Render(this); Write(node.OperatorToken); } node.Name.Render(this); node.ArgumentList.Render(this); }
public override LuaSyntaxNode VisitElementAccessExpression(ElementAccessExpressionSyntax node) { var expression = (LuaExpressionSyntax)node.Expression.Accept(this); var symbol = (IPropertySymbol)semanticModel_.GetSymbolInfo(node).Symbol; LuaIdentifierNameSyntax baseName = symbol == null ? LuaIdentifierNameSyntax.Empty : GetMemberName(symbol); LuaPropertyOrEventIdentifierNameSyntax identifierName = new LuaPropertyOrEventIdentifierNameSyntax(true, baseName); LuaPropertyAdapterExpressionSyntax propertyAdapter = new LuaPropertyAdapterExpressionSyntax(expression, identifierName, true); if (symbol != null) { List <LuaExpressionSyntax> arguments = BuildArgumentList(symbol, symbol.Parameters, node.ArgumentList); propertyAdapter.ArgumentList.AddArguments(arguments); } else { var argumentList = (LuaArgumentListSyntax)node.ArgumentList.Accept(this); propertyAdapter.ArgumentList.Arguments.AddRange(argumentList.Arguments); } return(propertyAdapter); }