public static List <CodeItem> MapMember(Node member) { switch (member.Kind) { case SyntaxKind.FunctionDeclaration: return(FunctionMapperJS.MapFunction(member as FunctionDeclaration, _control)); case SyntaxKind.FunctionExpression: return(FunctionMapperJS.MapFunctionExpression(member as FunctionExpression, _control)); case SyntaxKind.VariableStatement: return(MapVariable(member as VariableStatement)); case SyntaxKind.ExpressionStatement: case SyntaxKind.PrefixUnaryExpression: case SyntaxKind.CallExpression: case SyntaxKind.PropertyAccessExpression: return(MapChildren(member)); case SyntaxKind.BinaryExpression: return(MapBinaryExpression(member as BinaryExpression)); default: break; } return(new List <CodeItem>()); }
private static List <CodeItem> MapBinaryExpression(BinaryExpression expression) { if (expression.Right.Kind != SyntaxKind.FunctionExpression) { return(new List <CodeItem>()); } var function = expression.Right as FunctionExpression; return(FunctionMapperJS.MapFunction(function, function.Parameters, expression.First.IdentifierStr, _control)); }