Skip to content

Crust is a procedural, C-like language that embeds awk functions. It is specifically designed for efficient string processing.

Notifications You must be signed in to change notification settings

zhenweigc/Crust

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍕 Crust

Crust 🍕 is a procedural, C-like language that embeds awk functions. It is specifically designed for efficient string processing.

Team Members

Role Name
👨‍💼 Manager Tianqi Zhao
🧑‍🔬 Language Guru Ruiyang Hu
👨‍💻 System Architect Shaun Luo
🕵️‍♂️ Tester Frank Zhang

Run the Project

cd src
ocamlbuild -pkgs llvm crust.native
make all
chmod +x crust.sh
./crust.sh

Essential Project Structure

.
├── README.md
├── proj                                    # Anything related to the project submission
│   ├── Crust Final Presentation.pdf
│   └── LRM.md
├── src
│   ├── Makefile                            # makefile
│   ├── ast.ml                              # AST
│   ├── crust.ml                            # Used to generate OCaml executable
│   ├── crust.sh                            # shell scripts to run test suite
│   ├── crustparse.mly                      # Parser
│   ├── helper_in_c.c                       # C library
│   ├── irgen.ml                            # LLVM
│   ├── run.sh
│   ├── sast.ml                             # type check AST
│   ├── scanner.mll                         # Scanner
│   ├── scanner_test.ml                     # Used to test scanner
│   ├── semant.ml                           # Type checking
│   └── semant_test.ml                      # Used to check semant
└── test                                    # Test Suite
    ├── array_test.crust
    ├── awk_test
    │   ├── awk_col.crust
    │   ├── awk_col_contain.crust
    │   ├── awk_line.crust
    │   ├── awk_line_range.crust
    │   ├── awk_line_range_end.crust
    │   ├── awk_line_range_start.crust
    │   ├── awk_max_length.crust
    │   └── range_ex.crust
    └── example.crust

About

Crust is a procedural, C-like language that embeds awk functions. It is specifically designed for efficient string processing.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • OCaml 84.2%
  • C 10.5%
  • Shell 3.8%
  • Makefile 1.5%