public String getRankExpressionString() {
        if (!containsOtherLanguageData(LanguageType.RANK_EXPRESSION)) return null;

        if (originalSchemaNode instanceof consumedExpressionElm) {
            consumedExpressionElm expressionNode = (consumedExpressionElm)originalSchemaNode;
            return expressionNode.getRankingExpression();
        } else if (originalSchemaNode instanceof consumedFeatureListElm) {
            consumedFeatureListElm featureListNode = (consumedFeatureListElm)originalSchemaNode;
            return featureListNode.getFeatureList();
        }
        return null;
    }
SchemaNode represents a node in the AST of a file the language server parses.
The node exposes a general interface to handle different AST from different parsers.
integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/tree/SchemaNode.java