• Stars
    star
    56
  • Rank 530,104 (Top 11 %)
  • Language
    Scala
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated about 2 years 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
Scala
356
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
122
star
4

inox

Solver for higher-order functional programs, used by Stainless
Scala
88
star
5

smart

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

lisa

Proof assistant based on first-order logic and set theory
Scala
33
star
7

treenet

Recursive Neural Networks for PyTorch
Python
31
star
8

bolts

Bolts: Stainless Verified Scala Examples
Scala
17
star
9

nugget

Neural-Network Guided Expression Transformation
Python
12
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

OCBSL

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

verified-2048

A 2048 clone verified by Stainless
Scala
4
star
20

actors-in-stainless

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

asplos2022tutorial

ASPLOS 2022 Tutorial on Stainless
C
4
star
22

fit-code

TypeScript
3
star
23

muscat

A unit testing framework for concurrent Scala programs
Scala
3
star
24

stainless-project.g8

Giter8 template for Stainless-enabled projects
Scala
3
star
25

verifythis2020

VerifyThis2020 Challenge in Stainless
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

silex-proofs

Proofs on lexing with derivatives and zippers
Coq
2
star
28

cs550

Scala
2
star
29

compiler2024-labs-public

Scala
2
star
30

leon-web

Web-interface for Leon
Scala
2
star
31

GrammarComparison

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

grammar-web

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

scala-native-stainless-sample

Scala
1
star
34

funprog-lambda

Scala
1
star
35

STIX-showcase

Scala
1
star
36

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
37

verified-lambda

A verified lambda interpreter
Scala
1
star