//
// This software is now distributed according to
// the Lesser Gnu Public License.  Please see
// http://www.gnu.org/copyleft/lesser.txt for
// the details.
//    -- Happy Computing!
//
package com.stevesoft.pat;

import java.util.Hashtable;

/**
 * This is the '.' character in a Pattern. It matches any character.
 */
class Any extends Pattern
{
  public int matchInternal(int pos, Pthings pt)
  {
    if (pos < pt.src.length())
    {
      if (pt.dotDoesntMatchCR)
      {
        if (pt.src.charAt(pos) != '\n')
        {
          return nextMatch(pos + 1, pt);
        }
      }
      else
      {
        return nextMatch(pos + 1, pt);
      }
    }
    return -1;
  }

  public String toString()
  {
    return "." + nextString();
  }

  public patInt minChars()
  {
    return new patInt(1);
  }

  public patInt maxChars()
  {
    return new patInt(1);
  }

  public Pattern clone1(Hashtable h)
  {
    return new Any();
  }
};
