In Grail, a finite language is specified by simply listing the words which belong to the language. Each word must be separated from the next by a newline character. The words may employ only alphabetic characters, and leading and trailing whitespace is ignored.
The empty language is represented by a file containing no characters. The empty string is represented by a line with no alphabetic characters. Duplicate words are ignored.
The words in the language need not be ordered.
Grail supports parameterizable finite languages. If the alphabet of your language is not the ASCII characters, then the symbols that form the words will be a textual representation of the objects in your alphabet.