nskeip / sche

Yet another Scheme interpreter in C

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

__   __   _        _                _   _               
\ \ / /__| |_     / \   _ __   ___ | |_| |__   ___ _ __ 
 \ V / _ \ __|   / _ \ | '_ \ / _ \| __| '_ \ / _ \ '__|
  | |  __/ |_   / ___ \| | | | (_) | |_| | | |  __/ |   
  |_|\___|\__| /_/   \_\_| |_|\___/ \__|_| |_|\___|_|   
                                                        
          _           __            __  
 ___  ___| |__   ___ / / __ ___   __\ \ 
/ __|/ __| '_ \ / _ \ | '_ ` _ \ / _ \ |
\__ \ (__| | | |  __/ | | | | | |  __/ |
|___/\___|_| |_|\___| |_| |_| |_|\___| |
                     \_\            /_/ 
 ___       _                           _            
|_ _|_ __ | |_ ___ _ __ _ __  _ __ ___| |_ ___ _ __ 
 | || '_ \| __/ _ \ '__| '_ \| '__/ _ \ __/ _ \ '__|
 | || | | | ||  __/ |  | |_) | | |  __/ ||  __/ |   
|___|_| |_|\__\___|_|  | .__/|_|  \___|\__\___|_|   
                       |_|                          


Usage:
    -t, --tests    Run tests
        -c expr    Evaluate expression (in quotes)

Roadmap:

[x] Write a simple parser (without nesting).
[x] Fix the bug that invalidates pointers in Arena. Introduce ChainedArena.
  [x] Switch from Arena to simple memory tracker (as GNU C Library already has Arenas under the hood).
[x] Make a usable calculator.
[x] Add 0xdeadbeef and 0777 :)
[x] Add nesting to the parser.
[x] Add n-variable functions.
[ ] Running code from a file.
[ ] User defined functions.
[ ] Useful data types:
  [ ] Real numbers support.
  [ ] Big numbers support.
[ ] ...

About

Yet another Scheme interpreter in C

License:GNU General Public License v3.0


Languages

Language:C 97.5%Language:Makefile 2.5%