MakeupElixir

Build Status

A Makeup lexer for the Elixir language.

Installation

Add makeup_elixir to your list of dependencies in mix.exs:

def deps do
  [
    {:makeup_elixir, "~> 0.14.0"}
  ]
end

The lexer will be automatically registered in Makeup for the languages “elixir” and “iex” as well as the extensions “.ex” and “.exs”.

Benchmarks

Schism: “inline vs no inline”

Should we inline parsec or not? Currently this can be done using a config option. By default, parsers are not inlined because inlining doubles compilation time.

Schism: “map lookup vs pattern matching”

Postprocessing the token lists using map lookup VS pattern matching

Schism: “parse delimiter pairs”

This lexer used to use a very expensive operation to match some delimiters, which seemed to have supralinear complexity. Now, only a couple delimiters are parsed like this.