RaCoCo result: Red::AST::StringFuncs

# Red::AST::StringFuncs 27.2%

    use Red::AST;
    use Red::AST::Value;
    use Red::AST::Function;

    #| Base role for string functions
    role Red::AST::StringFunction does Red::AST {
        method default-implementation {...}

    }

    #| Represents a substring call
    class Red::AST::Substring does Red::AST::StringFunction {
        has Red::AST $.base;
        has Int      $.offset = 0;
        has Int      $.size;

        method returns { Str }
        method find-column-name {
            $!base.find-column-name
        }
        method args {$!base, $!offset, $!size}

        method default-implementation {
            Red::AST::Function.new: :func<SUBSTR>, :args[$!base, ast-value($!offset + 1), |(.&ast-value with $!size)]
        }
    }