Synox

Synox implements program synthesis of string transformations from input-output examples. Perhaps the most well-known use of string program synthesis in end-user programs is the Flash Fill feature in Excel. These string transformations are learned from input-output examples.
Synox currently implements BlinkFill (Singh '16, in Proc. VLDB), an algorithm similar to Flash Fill.
Usage
Add this to your Cargo.toml:
[]
= "0.1"
Example
Consider the following table, with a missing entry in an output column.
| Name | Graduation Year | Output |
|---|---|---|
| Alyssa P. Hacker | 1985 | A. Hacker '85 |
| Ben Bitdiddle | 2002 | B. Bitdiddle '02 |
| Cy D. Fect | 2017 | ? |
Synox can infer a program that automatically fills in the missing entry with "C. Fect '17".
use StringProgram;
use blinkfill;
let unpaired: & = &;
let examples = &;
let prog = learn?;
let result = prog.run?;
assert_eq!;
License
Copyright (c) 2021 Anish Athalye. Released under the MIT License. See LICENSE.md for details.