Class AvsAnRule

java.lang.Object
org.languagetool.rules.Rule
org.languagetool.rules.en.AvsAnRule

public class AvsAnRule extends Rule
Check if the determiner (if any) preceding a word is:
  • an if the next word starts with a vowel
  • a if the next word does not start with a vowel
This rule loads some exceptions from external files det_a.txt and det_an.txt (e.g. for an hour).
  • Field Details

    • cleanupPattern

      private static final Pattern cleanupPattern
    • delimPattern

      private static final Pattern delimPattern
    • dashQuotePattern

      private static final Pattern dashQuotePattern
    • anPrefixes

      private static final Pattern anPrefixes
    • anExceptionPrefixes

      private static final Pattern anExceptionPrefixes
  • Constructor Details

  • Method Details

    • getId

      public String getId()
      Description copied from class: Rule
      A string used to identify the rule in e.g. configuration files. This string is supposed to be unique and to stay the same in all upcoming versions of LanguageTool. It's supposed to contain only the characters A-Z and the underscore.
      Specified by:
      getId in class Rule
    • getDescription

      public String getDescription()
      Description copied from class: Rule
      A short description of the error this rule can detect, usually in the language of the text that is checked.
      Specified by:
      getDescription in class Rule
    • estimateContextForSureMatch

      public int estimateContextForSureMatch()
      Description copied from class: Rule
      A number that estimates how many words there must be after a match before we can be (relatively) sure the match is valid. This is useful for check-as-you-type, where a match might occur and the word that gets typed next makes the match disappear (something one would obviously like to avoid). Note: this may over-estimate the real context size. Returns -1 when the sentence needs to end to be sure there's a match.
      Overrides:
      estimateContextForSureMatch in class Rule
    • match

      public RuleMatch[] match(AnalyzedSentence sentence)
      Description copied from class: Rule
      Check whether the given sentence matches this error rule, i.e. whether it contains the error detected by this rule. Note that the order in which this method is called is not always guaranteed, i.e. the sentence order in the text may be different from the order in which you get the sentences (this may be the case when LanguageTool is used as a LibreOffice/OpenOffice add-on, for example). In other words, implementations must be stateless, so that a previous call to this method has no influence on later calls.
      Specified by:
      match in class Rule
      Parameters:
      sentence - a pre-analyzed sentence
      Returns:
      an array of RuleMatch objects
    • suggestAorAn

      public String suggestAorAn(String origWord)
      Adds "a" or "an" to the English noun. Used for suggesting the proper form of the indefinite article. For the rare cases where both "a" and "an" are considered okay (e.g. for "historical"), "a" is returned.
      Parameters:
      origWord - Word that needs an article.
      Returns:
      String containing the word with a determiner, or just the word if the word is an abbreviation.
    • getCorrectDeterminerFor

      static AvsAnRule.Determiner getCorrectDeterminerFor(AnalyzedTokenReadings token)
    • isVowel

      private static boolean isVowel(char c)