@Override
    public Void visitTraversalDirection(final GremlinParser.TraversalDirectionContext ctx) {
        final String direction = ctx.getText().toLowerCase();
        sb.append("Direction.");
        if (direction.contains("out"))
            sb.append("Out");
        else if (direction.contains("in"))
            sb.append("In");
        else if (direction.contains("from"))
            sb.append("From");
        else if (direction.contains("to"))
            sb.append("To");
        else
            sb.append("Both");
        return null;
    }
Converts a Gremlin traversal string into a C# source code representation of that traversal with an aim at
sacrificing some formatting for the ability to compile correctly.
<ul>
    <li>Range syntax has no direct support</li>
    <li>Normalizes whitespace</li>
    <li>Normalize numeric suffixes to lower case</li>
    <li>If floats are not suffixed they will translate as BigDecimal</li>
    <li>Makes anonymous traversals explicit with double underscore</li>
    <li>Makes enums explicit with their proper name</li>
</ul>
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java