Displaying 1 to 20 from 61 results

json3 - A JSON polyfill. Looking for new maintainers.

  •    Javascript

JSON 3 is a JSON polyfill for older JavaScript platforms. The current version is 3.3.2. Special thanks to cdnjs and jsDelivr for hosting CDN copies of JSON 3.

chevrotain - Parser Building Toolkit for JavaScript

  •    TypeScript

Chevrotain is a blazing fast and feature rich Parser Building Toolkit for JavaScript. It can be used to build parsers/compilers/interpreters for various use cases ranging from simple configuration files, to full fledged programing languages. A more in depth description of Chevrotain can be found in this great article on: Parsing in JavaScript: Tools and Libraries.

csstree - A tool set for working with CSS including fast detailed parser, walker, generator and lexer based on W3C specs and browser implementations

  •    Javascript

CSSTree is a tool set to work with CSS, including fast detailed parser (string->AST), walker (AST traversal), generator (AST->string) and lexer (validation and matching) based on knowledge of spec and browser implementations. The main goal is to be efficient and W3C spec compliant, with focus on CSS analyzing and source-to-source transforming tasks. NOTE: The project is in alpha stage since some parts need further improvements, AST format and API are subjects to change. However it's stable enough and used by packages like CSSO (CSS minifier) and SVGO (SVG optimizer) in production.




language - A fast PEG parser written in JavaScript with first class errors

  •    Objective-J

Language.js is an experimental new parser based on PEG (Parsing Expression Grammar), with the special addition of the "naughty OR" operator to handle errors in a unique new way. It makes use of memoization to achieve linear time parsing speed, and support for automatic cut placement is coming to maintain mostly constant space as well (for a discussion of cut operators see: www.ialab.cs.tsukuba.ac.jp/~mizusima/publications/paste513-mizushima.pdf). The most unique addition Language.js makes to PEG is how it handles errors. No parse ever fails in Language.js, instead SyntaxErrorNodes are placed into the resultant tree. This makes it trivial to do things like write syntax highlighters that have live error reporting. This also means that Language.js is very competent at handling multiple errors (as opposed to aborting on the first one that is reached).

OILexer

  •    CSharp

OILexer is a LL parser generator for C# aimed at simple language parsing for language enthusiasts. Does not use recursive descent or bottom-up parsing methods, but rather, a top-down deterministic model is employed. This is a portion of the Abstraction Project.

Ragel lexer and Bison parser integration example

  •    C++

This a sample of win(bison) parser and Ragel lexer integration, with unicode support

ANLP - Another .NET Lexer Parser

  •    Silverlight

This project aims to have a lexer/parser working in Silverlight and help people to write their own grammar and make the lexer/parser available in Silverlight.


QLanguage

  •    C++

QLanguage is a compiler for open source

literalizer - Specialized heuristic lexer for JS to identify complex literals

  •    Javascript

Specialized heuristic lexer for JS to identify complex literals

kamino

  •    Javascript

A library for passing data structures between sandboxed environments in the browser via postMessage.

parse - Go parsers for web formats

  •    Go

This package contains several lexers and parsers written in Go. All subpackages are built to be streaming, high performance and to be in accordance with the official (latest) specifications.The lexers are implemented using buffer.Lexer in https://github.com/tdewolff/buffer and the parsers work on top of the lexers. Some subpackages have hashes defined (using Hasher) that speed up common byte-slice comparisons.

c-tokenizer - tokenize c/c++ source code

  •    Javascript

Return a new tokenize through stream with C/C++ syntax rules loaded into it.Each parsed token will fire the cb(src, token) callback.

participle - A parser library for Go

  •    Go

The goal of this package is to provide a simple, idiomatic and elegant way of defining parsers in Go.Participle's method of defining grammars should be familiar to any Go programmer who has used the encoding/json package: struct field tags define what and how input is mapped to those same fields. This is not unusual for Go encoders, but is unusual for a parser.

python.js - python interpreter in javascript

  •    Javascript

Years ago I wrote this for the browser while reading this article about top-down parsers in python.I got as far as making it into a nifty little calculator at least.

lexertk - C++ Lexer Toolkit Library (LexerTk)

  •    C++

The C++ Lexer Toolkit Library (LexerTk) is a simple to use, easy to integrate and extremely fast lexicographical generator - lexer. The tokens generated by the lexer can be used as input to a parser such as "ExprTk". The following example will take a string representing an expression, tokenize it using the generator and then proceed to dump each of the tokens to stdout, providing information related to the token such as its type, value and position within the expression.

lexmachine - Lex machinary for go.

  •    Go

Copyright 2014-2017, All Rights Reserved. Made available for public use under the terms of a BSD 3-Clause license. lexmachine is a full lexical analysis framework for the Go programming language. It supports a restricted but usable set of regular expressions appropriate for writing lexers for complex programming languages. The framework also supports sub lexers and non-regular lexing through an "escape hatch" which allows the users to consume any number of further bytes after a match. So if you want to support nested C-style comments or other paired structures you can do so at the lexical analysis stage.

libpypa - libpypa is a Python parser implemented in pure C++

  •    C++

libpypa is a Python parser implemented in pure C++. It neither uses any tools like flex, yacc, bison etc, nor is it using any parser framework like Boost.Spirit. It's implementation is pure C++ code. I started getting involved into the pyston project where it had an entry in their getting involved list for implementing a parser for Python. Never having properly tackled the problem of creating a parser library for any language, I decided it might be worth a try, since most of the libraries I found, where basically just using the builtin Python parser or where implemented in Python itself.