All Projects → melt-umn → copper

melt-umn / copper

Licence: LGPL-3.0 license
An integrated context-aware scanner and parser generator

Programming Languages

java
68154 projects - #9 most used programming language
XSLT
1337 projects
Logos
282 projects

Projects that are alternatives of or similar to copper

Covfefe
A parser for nondeterministic context free languages
Stars: ✭ 49 (+250%)
Mutual labels:  parsing, parser-generator
Cpp Peglib
A single file C++ header-only PEG (Parsing Expression Grammars) library
Stars: ✭ 435 (+3007.14%)
Mutual labels:  parsing, parser-generator
YaccConstructor
Platform for parser generators and other grammarware research and development. GLL, RNGLR, graph parsing algorithms, and many others are included.
Stars: ✭ 36 (+157.14%)
Mutual labels:  parsing, parser-generator
Owl
A parser generator for visibly pushdown languages.
Stars: ✭ 645 (+4507.14%)
Mutual labels:  parsing, parser-generator
Nice Parser
Nice parsers in OCaml without the boilerplate
Stars: ✭ 91 (+550%)
Mutual labels:  parsing, parser-generator
abnf parsec
ABNF in, parser out
Stars: ✭ 42 (+200%)
Mutual labels:  parsing, parser-generator
inmemantlr
ANTLR as a libray for JVM based languages
Stars: ✭ 87 (+521.43%)
Mutual labels:  parsing, parser-generator
Rust Peg
Parsing Expression Grammar (PEG) parser generator for Rust
Stars: ✭ 836 (+5871.43%)
Mutual labels:  parsing, parser-generator
Lug
Parsing expression grammar (PEG) embedded domain specific language and parsing machine for C++17
Stars: ✭ 44 (+214.29%)
Mutual labels:  parsing, parser-generator
Antlr4
ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
Stars: ✭ 11,227 (+80092.86%)
Mutual labels:  parsing, parser-generator
pe
Fastest general-purpose parsing library for Python with a familiar API
Stars: ✭ 21 (+50%)
Mutual labels:  parsing, parser-generator
tangle-rs
a collection of tools to do tangle in rust
Stars: ✭ 23 (+64.29%)
Mutual labels:  parsing
memology
Memes - why so popular?
Stars: ✭ 32 (+128.57%)
Mutual labels:  parsing
wrangler
Wrangler Transform: A DMD system for transforming Big Data
Stars: ✭ 63 (+350%)
Mutual labels:  parsing
cvscan
Your not so typical resume parser
Stars: ✭ 46 (+228.57%)
Mutual labels:  parsing
racket-bitsyntax
Erlang-style binaries/bitstrings for Racket
Stars: ✭ 29 (+107.14%)
Mutual labels:  parsing
siemstress
Very basic CLI SIEM (Security Information and Event Management system).
Stars: ✭ 24 (+71.43%)
Mutual labels:  parsing
Aphid
A multiparadigm language intended to be embedded in .NET applications or compiled into other languages like Python or PHP. The internals of Aphid are clean and easy to work with, allowing for rapid creation of derivative domain-specific languages.
Stars: ✭ 32 (+128.57%)
Mutual labels:  parser-generator
Concrete-Syntax-Tree
Concrete Syntax Trees represent s-expressions with source information
Stars: ✭ 48 (+242.86%)
Mutual labels:  parsing
librxvm
non-backtracking NFA-based regular expression library, for C and Python
Stars: ✭ 57 (+307.14%)
Mutual labels:  parsing

Description

Copper is a Java-based integrated scanner and parser generator developed by the Minnesota Extensible Language Tools (MELT) research group at the University of Minnesota with assistance from the National Science Foundation, IBM, the McKnight Foundation, and Adventium Labs. It serves as the parsing back-end of Silver, another MELT tool.

Copper employs the LALR(1) parsing algorithm in conjunction with a modified scanning algorithm, context-aware scanning, which uses parsing context to resolve lexical ambiguities. This allows for more declarative parser specifications, especially of embedded and extensible languages.

It also provides an analysis for use with extensible languages. The pass/fail analysis is applied independently to each language extension, and any combination of passing extensions is guaranteed to compile without parse-table conflicts. This lets any end-user pick and choose extensions in the same manner as libraries.

Downloads and documentation

This site offers the following downloads:

  • JARs for Copper versions 0.6.0 and greater (see CHANGELOG.md for detailed Copper version information).
  • Copper's source code, including example parser specifications
  • A user manual (in online and PDF formats) intended for those who use Copper directly.
  • Javadoc for the APIs of Copper's parser compiler and parsers, intended primarily for developers who wish to use Copper as a back-end.

MELT's Copper website contains:

Papers

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].