-------------------------------------------------------------------- -- | -- Copyright : (c) Edward Kmett and Dan Doel 2012-2013 -- License : BSD3 -- Maintainer: Edward Kmett <ekmett@gmail.com> -- Stability : experimental -- Portability: non-portable -- -------------------------------------------------------------------- module Ermine.Parser.Keywords where import Data.HashSet import Data.Monoid -- | This is the set of keywords that can only occur at the beginning of the line for auto-completion purposes. startingKeywords :: HashSet String startingKeywords = fromList [ "abstract" , "class" , "data" , "database" , "export" , "field" , "foreign" , "import" , "instance" , "private" , "type" ] -- | This is the set of keywords that can occur anywhere on the line for auto-completion purposes. otherKeywords :: HashSet String otherKeywords = fromList [ "case" , "constraint" , "constructor" , "do" , "exists" , "forall" , "hole" , "in" , "infix" , "infixl" , "infixr" , "let" , "of" , "phi" , "postfix" , "prefix" , "rho" , "subtype" , "table" , "where" , "_" , "Γ" , "ρ" , "φ" ] -- | The set of all keywords. -- -- @'keywords' = 'startingKeywords' '<>' 'otherKeywords'@ keywords :: HashSet String keywords = startingKeywords <> otherKeywords