Pearl
An Erlang lexer and syntax highlighter for Gleam!
Pearl is a lexer and syntax highlighter for Erlang, written in Gleam. The lexer is based on glexer and just , allowing you to convert Erlang source code into tokens. There is also an API which allows you to highlight Erlang code using ansi colours, html or a custom format. Heavily inspired by contour .
gleam add pearl@2
import pearl pub fn main ( ) { let code = " -module(hello). -export([hello_world/0]). hello_world() -> io:fwrite( \" Hello, world! \\ n \" ). " let lexer = pearl . new ( code ) // Lex syntax tokens for parsing or other uses let # ( tokens , errors ) = pearl . tokenise ( lexer ) let assert [ ] = errors parse_erlang ( tokens ) // Highlight with ansi codes to print in the terminal let highlighted = pearl . highlight_ansi ( code ) io . println ( highlighted ) // Render to html to show in the browser let html = pearl . highlight_html ( code ) io . println ( "
" <> html <> "
" ) // Convert to "highlighting tokens" to highlight in some other way let highlight_tokens = pearl . highlight_tokens ( code ) highlight_tokens_some_other_way ( highlight_tokens ) }
Further documentation can be found at https://hexdocs.pm/pearl.
Feature completeness