Package kawa.lang

Class ListPat

  • All Implemented Interfaces:
    gnu.kawa.format.Printable

    public class ListPat
    extends Pattern
    Match a list whose length in in the range [min_length..max_length].
    • Constructor Detail

      • ListPat

        public ListPat​(int len)
      • ListPat

        public ListPat​(int min,
                       int max)
      • ListPat

        public ListPat​(int min,
                       int max,
                       Object default_val)
    • Method Detail

      • match

        public static boolean match​(int min,
                                    int max,
                                    Object default_val,
                                    Object obj,
                                    Object[] vars,
                                    int start_vars)
      • match

        public static Object[] match​(int min,
                                     int max,
                                     Object default_val,
                                     Object obj)
        Succeeds if obj is a list of length [min..max].
        Parameters:
        obj - the object to match against
        Returns:
        true iff the match succeeded On success, max_length values from the elements of the list are placed in vars (starting at start_vars); if obj is shorter, missing elements are set to default_value.
      • match

        public boolean match​(Object obj,
                             Object[] vars,
                             int start_vars)
        Succeeds if obj is a list of length [min_length..max_length].
        Specified by:
        match in class Pattern
        Parameters:
        obj - the object to match against
        vars - the "pattern variable" values extracted from obj go here
        start_vars - where in vars to strt putting the varCount() values
        Returns:
        null on failure, or an array of bound pattern variables: max_length values from the elements of the list are placed in the result; if obj is shorter, missing elements are set to default_value.
      • varCount

        public int varCount()
        Specified by:
        varCount in class Pattern
      • print

        public void print​(Consumer out)
        Specified by:
        print in interface gnu.kawa.format.Printable
        Overrides:
        print in class Pattern