#language #error #operator #functional #template #domain #pattern

funki_templates

A framework for creating functional domain specific languages

1 unstable release

0.1.0 Mar 24, 2022

#122 in #operator

MIT license

100KB
3K SLoC

Funky Templates

TODOs:

Parser:

  • Patterns
  • Logic operators
  • Other number operators
  • Full document
  • Multiline string
  • String interpolation
  • Multi line string interpolation
  • Lambdas
  • Parse time errors
  • Underscores parse time error stuff
  • Move string escaping to lalrpop
  • Use parser errors better
  • Check scope rules at parse time

Interpreter:

  • Basic arithmetic and string building DONE
  • Basic function calling and frames
  • Arguments
  • String interpolation
    • Escape sequences
  • Pattern matching
    • TEST
  • Lists
  • Guards
    • TEST
  • Booleans
    • TEST
  • Token hashtable? - not doing
  • Better errors (@L @R)
    • Add location data to ast
    • Use AST to make errors
  • Underscores
  • Closures
  • Builtin function
    • List
      • TEST
    • Get
      • TEST
    • Map
    • Filter
    • Any
    • All
    • Fold
    • Length
  • Extra functions
  • Extra operators
  • Extra types

API:

  • Look into API design patterns in Rust
  • Define API
  • Adding arguments
  • Flesh out return types
  • Adding extra builtin functions, types, and operators

Documentation

API:

  • Continue Docs

Language:

  • Work out format for language documentation

Dependencies

~2.6–5MB
~79K SLoC