element.version === currentVersion)) { versionNodes.unshift({ version: currentVersion, url: "#" }); } document.querySelector("#project-version").innerHTML = versionNodes.reduce( (acc, element) => { const status = currentVersion === element.version ? "selected disabled" : ""; return ` ${acc} `; }, `
js_parser · v0.5.0

js_parser

Package Version Hex Docs

A lexer and parser for JavaScript, written in Gleam.

This project is inspired by the js-tokens and glexer packages, and aims to provide a tool to build ECMA-262 syntax trees for gleam projects.

Installation

gleam add js_parser

Usage

someFile.js

export function someFunction() {
    let someVar;
}

The lexer can take any string and returns a list of tokens, including whitespace characters.

import js_parser

pub fn main() {
  let contents = js_parser.read_file("path/to/someFile.js")
  |> js_parser.parse
  |> io.debug
}

Should output:

[
  KeywordExport, CharWhitespace(" "), KeywordFunction, CharWhitespace(" "), IdentifierName("someFunction"),CharOpenParen, CharCloseParen, CharWhitespace(" "), CharOpenBrace,
  LineTerminatorSequence("\n"), CharWhitespace("    "),
  IdentifierName("let"), CharWhitespace(" "), IdentifierName("someVar"), CharSemicolon,LineTerminatorSequence("\n"),
  CharCloseBrace, LineTerminatorSequence("\n")
]
gleam run -- --f samples/js/index.js
gleam test
Search Document