Now it's a gem!
This gem allows the user to generate words for constructed languages, given a LANG file that describes the language. It can also be useful for linguistics to study and generate valid words from a descripted language.
The *.lang
file must include sets of phonemes with
their individual probability weight, and a grammatical
expression, to describe how to generate words for the
described language.
Usage as a command line executable:
conlang <words count> '<LANG file>'
This command produces an output-<name>.txt
file that includes a list of the generated words,
separated by newlines.
Usage as a gem:
require 'conlang'
# Path to LANG file, as constructor.
x = WordGenerator.new("tokipona.lang")
# Print ten generated words as
# an array of strings.
p x.get_words(10)
There are *.lang
files as examples at lang-examples
directory of this project's source.
You must create your own .lang files to generate random words for your constructed languages.
There files include a simple lightweight markup language to describe sets of phonemes, their probability, replacements (for exceptions) and a simple regular grammatical expression.
You can learn how to create LANG files here.
Again, examples at lang-examples
directory can help you a lot.
The class WordGenerator
takes a path to a valid *.lang
file to produce a generator of words, as described previously
in the Instructions section.
- WordGenerator - Main class
- ConlangWordGenerator - Namespace module for the gem
- Exceptions
- LangFileError < StandardError, for LANG files
- LangFileIOError < LangFileError
- LangSyntaxError < LangFileError