/yapl

a toy interpreter :construction:

Primary LanguageHaskell

YAPL - Yapl Ain't Programming Language

How to run

After

$ make

run

$ ./yapl <source_code>

Functionality

  • Int, String and Boolean types
  • Literals, arithmetics, comparisons
  • Variables and assignments
  • Print function
  • While, if
  • Recursive functions
  • For loop
  • Static binding, local and global variables
  • Error handling pointing positions
  • Both void and non-void functions
  • Nested functions
  • Lists
  • Break, continue
  • Higher-order, anonymous functions, closures

Examples

Both valid and invalid example source codes can be found in examples/good and examples/bad directories.

Issues

In the current version, indentation blocks are partially supported (needs fix on grammar layout), however curly bracket blocks are fully supported.