• Stars
    star
    54
  • Rank 525,093 (Top 11 %)
  • Language
    Scala
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

LL(1) parser combinators in Scala

SCALL1ON

Overview

Scallion is a library for writing parsers and pretty printers for LL(1) languages in Scala.

Documentation

A comprehensive Scaladoc API is available online.

Parsing Algorithm

Scallion uses a novel parsing algorithm that we have described in the PLDI'20 paper: Zippy LL(1) Parsing with Derivatives. The algorithm has been formally proven correct in Coq.

Examples

  • JSON: This example showcases how to build a basic JSON parser using Scallion.
  • Lambda Calculus: This example shows how to get a pretty printer almost for free alongside your parser.
  • Calculator: This example shows how to use the operators combinator to easily handle operators with various associativities and priorities.
  • Roman Numerals: This example presents a simple parser and pretty printer for roman numerals.

More Repositories

1

stainless

Verification framework and tool for higher-order Scala programs
HTML
347
star
2

leon

The Leon system for verification, synthesis, repair
Scala
162
star
3

ScalaZ3

DSL in Scala for Constraint Solving with Z3 SMT Solver
Scala
117
star
4

inox

Solver for higher-order functional programs
Scala
87
star
5

smart

Verification and Generation of Smart Contracts using Stainless and Scala
HTML
35
star
6

treenet

Recursive Neural Networks for PyTorch
Python
31
star
7

lisa

Proof assistant based on first-order logic and set theory
Scala
29
star
8

bolts

Bolts: Stainless Verified Scala Examples
Scala
15
star
9

nugget

Neural-Network Guided Expression Transformation
Python
13
star
10

jahob

Jahob Verification System
C
11
star
11

comfusy

Implementation of the "Complete Functional Synthesis" approach described in the eponymous PLDI 2010 paper.
Scala
11
star
12

silex

Lexing library for Scala
Scala
10
star
13

welder

Interactive Theorem Proving based on Inox
Scala
10
star
14

SystemFR

System FR: Formalized Foundations for Stainless
Coq
9
star
15

scallion-proofs

Proofs of correctness for Scallion (https://github.com/epfl-lara/scallion)
Coq
9
star
16

rust-stainless

An experimental Rust frontend for Stainless
Rust
6
star
17

StainlessFit

Stainless directly built on System FR, with standalone front-end
Scala
5
star
18

verified-2048

A 2048 clone verified by Stainless
Scala
4
star
19

stainless-actors

Actor System library for Stainless which runs on Akka
Scala
4
star
20

asplos2022tutorial

ASPLOS 2022 Tutorial on Stainless
C
4
star
21

OCBSL

A minimal algorithm to decide the word problem in Orthocomplemented Bisemilattices, in Scala.
Scala
4
star
22

fit-code

TypeScript
3
star
23

verifythis2020

VerifyThis2020 Challenge in Stainless
Scala
2
star
24

silex-proofs

Proofs on lexing with derivatives and zippers
Coq
2
star
25

cs550

Scala
2
star
26

lattices-algorithms

This repository contains two algorithms for the word problem and normalization problem of Ortholattices and Orthocomplemented Bisemilattices
Scala
2
star
27

muscat

A unit testing framework for concurrent Scala programs
Scala
2
star
28

grammar-web

An online tutoring system for context-free grammars
Scala
2
star
29

compiler2024-labs-public

Scala
2
star
30

leon-web

Web-interface for Leon
Scala
2
star
31

stainless-project.g8

Giter8 template for Stainless-enabled projects
Scala
2
star
32

GrammarComparison

A System for Analyzing and Comparing Context-Free Grammars
Scala
2
star
33

scala-native-stainless-sample

Scala
1
star
34

Deep_Learning_On_Code_With_A_Graph_Vocabulary

Code to reproduce the experiments in the paper Deep Learning On Code With A Graph Vocabulary
Python
1
star
35

funprog-lambda

Scala
1
star
36

STIX-showcase

Scala
1
star
37

verified-lambda

A verified lambda interpreter
Scala
1
star