Skip to content

patniharshit/Lexical-Interpreter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lexical Interpreter

Concrete Syntax

;;; ::= | |( …) | | (ifte ) | (assume (( ) …) ) | (assume& (( ) …) )
;;; op ::= one of op-symbols

Parser

;;; (parse '(+ 5 (/ 20 2 5))) := (primApp 'plus (list (num 5) (primApp 'div (list (num 20) (num 2) (num 5) ))))
;;; (parse '(^ 2 (* 3 (- 4 3)))) := (primApp 'pow (list (num 2) (primApp 'mul (list (num 3) (primApp 'minus (list (num 4) (num 3)))))))

Evaluator

;;; (eval (parse '(+ 5 (/ 20 2 5)))) := 7
;;; (eval (parse '(^ 2 (* 3 (- 4 3))))) := 8

Releases

No releases published

Packages

No packages published

Languages