Project

conlang

0.01
No commit activity in last 3 years
No release in over 3 years
This gem allow users to generate random words. The user must provide a LANG file with defined phonemes and a regular grammatical expression. You can learn how to create LANG files, or explore some examples, at this project's source repository on Github: https://github.com/fluorine/ConlangWordGenerator
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies
 Project Readme

ConlangWordGenerator, v0.3.1

Now it's a gem!

Description

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.

Instructions

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.

Custom .lang files

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.

Root-level identifiers

  • WordGenerator - Main class
  • ConlangWordGenerator - Namespace module for the gem
  • Exceptions
    • LangFileError < StandardError, for LANG files
    • LangFileIOError < LangFileError
    • LangSyntaxError < LangFileError