Skip to content

dcsommer/CS240H-Final-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

==========================================
CS240H Final Project - Historical Debugger
==========================================
authors: Daniel Sommermann, Michael Gummelt


For this project, we define a toy language to implement our debugger
on. The BNF of the language is given below:

f = fn(x1, .., xn) { s; [s;] }

s = var = e
    return e
    returnif e, e

e = c1 | ... | cn (constants)
    (e)
    x
    e1 + e2
    e1 - e2
    e1 * e2
    e1 / e2
    e1 == e2
    !e1
    e1 && e2
    e1 || e2
    e1 == e2
    e1 < e2
    e1 > e2
    if e1 then e2 else e3
    f(e1, ..., en)

Every function must return a value (that is, have a return
statement). Explicitly, there must always be some return statement that is
executed. The function can return early through the use of a
returnif(). If the first argument to returnif is non-zero, the second
argument is evaluated and returned. The return keyword may only be used as
the last statement in a function body. 

e interpreter. Also changed the semantics and grammar of the language (added assignment and return statements)
There must be exactly one function called 'main' in every text file. The 
value of the return of main will be printed once it has been computed.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published