// Path: Core/src/main/java/me/rbrickis/mojo/Arguments.java
// public class Arguments {
// 
//     private List<String> arguments;
// 
//     public Arguments() {
//         this.arguments = new ArrayList<>();
//     }
// 
//     public Arguments(String... arguments) {
//         this.arguments = Arrays.asList(arguments);
//     }
// 
//     public Arguments(List<String> arguments) {
//         this.arguments = arguments;
//     }
// 
// 
//     /**
//      *  @see Arguments#size()
//      */
//     public int length() {
//         return size();
//     }
// 
//     /**
//      * @return The size of the arguments provide
//      */
//     public int size() {
//         return arguments.size();
//     }
// 
//     /**
//      * @param index the index to pull from
//      * @return 'null' if the index is out of bounds, or the String at the index.
//      */
//     public String get(int index) {
//         try {
//             return arguments.get(index);
//         } catch (IndexOutOfBoundsException ex) {
//             return null;
//         }
//     }
// 
//     public String join(int at, char delimiter) {
//         StringBuilder builder = new StringBuilder();
//         for (int x = at; x < arguments.size(); x++) {
//             builder.append(get(x)).append(delimiter);
//         }
//         return builder.toString();
//     }
// 
//     public String join(int at) {
//         return join(at, ' ');
//     }
// 
// 
//     public List<String> getArguments() {
//         return arguments;
//     }
// }
// 
// Path: Core/src/main/java/me/rbrickis/mojo/utils/PrimitiveUtils.java
// public final class PrimitiveUtils {
// 
//     public static Object toPrimitiveNumber(Number number) {
//         if (number instanceof Byte) {
//             return number.byteValue();
//         } else if (number instanceof Long) {
//             return number.longValue();
//         } else if (number instanceof Short) {
//             return number.shortValue();
//         } else if (number instanceof Integer) {
//             return number.intValue();
//         } else if (number instanceof Float) {
//             return number.floatValue();
//         } else if (number instanceof Double) {
//             return number.doubleValue();
//         }
//         return 0;
//     }
// 
//     public static Object toPrimitiveBoolean(Boolean booleans) {
//         return booleans.booleanValue();
//     }
// }


import me.rbrickis.mojo.Arguments;
import me.rbrickis.mojo.utils.PrimitiveUtils;
import java.util.ArrayList;
import java.util.List;
package me.rbrickis.mojo.parametric;



public class ParametricParser {

    private List<Parameter> parameters;


    public ParametricParser(List<Parameter> parameters) {
        this.parameters = parameters;
    }

// Path: Core/src/main/java/me/rbrickis/mojo/Arguments.java
// public class Arguments {
// 
//     private List<String> arguments;
// 
//     public Arguments() {
//         this.arguments = new ArrayList<>();
//     }
// 
//     public Arguments(String... arguments) {
//         this.arguments = Arrays.asList(arguments);
//     }
// 
//     public Arguments(List<String> arguments) {
//         this.arguments = arguments;
//     }
// 
// 
//     /**
//      *  @see Arguments#size()
//      */
//     public int length() {
//         return size();
//     }
// 
//     /**
//      * @return The size of the arguments provide
//      */
//     public int size() {
//         return arguments.size();
//     }
// 
//     /**
//      * @param index the index to pull from
//      * @return 'null' if the index is out of bounds, or the String at the index.
//      */
//     public String get(int index) {
//         try {
//             return arguments.get(index);
//         } catch (IndexOutOfBoundsException ex) {
//             return null;
//         }
//     }
// 
//     public String join(int at, char delimiter) {
//         StringBuilder builder = new StringBuilder();
//         for (int x = at; x < arguments.size(); x++) {
//             builder.append(get(x)).append(delimiter);
//         }
//         return builder.toString();
//     }
// 
//     public String join(int at) {
//         return join(at, ' ');
//     }
// 
// 
//     public List<String> getArguments() {
//         return arguments;
//     }
// }
// 
// Path: Core/src/main/java/me/rbrickis/mojo/utils/PrimitiveUtils.java
// public final class PrimitiveUtils {
// 
//     public static Object toPrimitiveNumber(Number number) {
//         if (number instanceof Byte) {
//             return number.byteValue();
//         } else if (number instanceof Long) {
//             return number.longValue();
//         } else if (number instanceof Short) {
//             return number.shortValue();
//         } else if (number instanceof Integer) {
//             return number.intValue();
//         } else if (number instanceof Float) {
//             return number.floatValue();
//         } else if (number instanceof Double) {
//             return number.doubleValue();
//         }
//         return 0;
//     }
// 
//     public static Object toPrimitiveBoolean(Boolean booleans) {
//         return booleans.booleanValue();
//     }
// }


// Path: Core/src/main/java/me/rbrickis/mojo/parametric/ParametricParser.java
import me.rbrickis.mojo.Arguments;
import me.rbrickis.mojo.utils.PrimitiveUtils;
import java.util.ArrayList;
import java.util.List;

package me.rbrickis.mojo.parametric;



public class ParametricParser {

    private List<Parameter> parameters;


    public ParametricParser(List<Parameter> parameters) {
        this.parameters = parameters;
    }

    public ParsedResult parse(Object sender, Arguments arguments) {