Socket
Book a DemoInstallSign in
Socket

aprils

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aprils

A little parsing library

latest
Source
npmnpm
Version
1.0.8
Version published
Maintainers
1
Created
Source

Aprils

Aprils is a little library for quickly writing parsers from scratch 🔥.

Here's simple parser for words.

const { match, peek, feed } = require('aprils')

function letters() {
  return match(/^\w+/)
}

function separator() {
  return match(/^\W*/) // stuff like spaces and periods
}

function word() {
  sparator()
  return letters()
}

Let's test it out!

feed('Luke, I am your father')

word() // returns 'Luke'
word() // returns 'I'"
word() // returns 'am'

Use peek to check the next token

function upper() {
  return match(/^[A-Z]/)
}

function lower() {
  return match(/^[a-z]/)
}

feed("AbCdE")

peek(upper) // returns `true` because the next token is uppercase
peek(lower) // returns `false` because the next token isn't lowercase

Use skip to add choices

const { skip } = require('aprils')

// match lowercase or uppercase

function letter() {
  return skip(lower) || upper()
}

feed('AbC')

letter() // returns 'A'
letter() // returns 'b'
letter() // returns 'C'

You can add more choices using JavaScript's || operator

// accept A or B or ... or Z

skip(A) || skip(B) || ... || skip(Y) || Z()

API

feed(string)

Sets the input string.

match(pattern)

Consumes and returns part of the input string that matches pattern. Note that pattern should start with ^ to match from the start of the input string.

peek(parser, [args...])

Executes a parser and returns true if it was successful. The input string isn't consumed.

skip(parser, [args...])

Executes a parser and returns the result if it was successful. The input string is only consumed on success.

Keywords

lexer

FAQs

Package last updated on 02 May 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts