neotomex alternatives and similar packages
Based on the "Text and Numbers" category.
Alternatively, view neotomex alternatives based on common mentions on social networks and blogs.
-
money
Elixir library for working with Money safer, easier, and fun... Is an interpretation of the Fowler's Money pattern in fun.prog. -
nanoid
Elixir port of NanoID, a secure and URL-friendly unique ID generator. https://hex.pm/packages/nanoid -
secure_random
Convenience library for random base64 strings modeled after my love for Ruby's SecureRandom -
chinese_translation
An elixir module to translate simplified Chinese to traditional Chinese, and vice versa, based on wikipedia data -
veritaserum
Sentiment analysis based on afinn-165, emojis and some enhancements. -
abacus
Parses and evaluates mathematical expressions in Elixir. Inspired by math.js -
inet_cidr
CIDR library for Elixir that is compatible with Erlang's :inet and supports both IPv4 and IPv6 -
haikunator
Generate Heroku-like memorable random names to use in your apps or anywhere else. -
Ex_Cldr_Units
Unit formatting (volume, area, length, ...) functions for the Common Locale Data Repository (CLDR) -
mt940
MT940 (standard structured SWIFT Customer Statement message) parser for Elixir. -
convertat
An Elixir library for converting from and to arbitrary bases.
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of neotomex or a related project?
README
Neotomex

Obligatory Alpha Quality Disclaimer
A PEG implementation with an Elixir interface.
While inspired by neotoma, Neotomex doesn't use functional composition. Instead, it creates a data structure representing a grammar, and then applies the data structure to an input.
NB: For now, Neotomex is a recursive rather than packrat parser.
Usage
By taking advantage of pattern matching and Elixir's macros, Neotomex provides a fresh DSL for specifying grammars.
Here's a simple grammar for parsing a number:
defmodule Number do
use Neotomex.ExGrammar
@root true
define :number, "digit+" do
digits -> digits |> Enum.join |> String.to_integer
end
define :digit, "[0-9]"
end
42 = Number.parse! "42"
See the /examples
directory for other examples, including a
json grammar.
Learning More
Check out the module docs to learn more about how Neotomex specifies grammars, and how to write your own:
iex> h Neotomex.Grammar
iex> h Neotomex.ExGrammar
Look in examples/
for existing usage.
Roadmap
- Packrat parsing
- Match labels a la neotoma (e.g. a:match)
Copyright (c) Thomas Moulia, 2014