--[[ Semantic Opcode Module for the Kamin Scheme Interpreter
     KILT -- Kamin Interpreters in Lua Toolset
     H. Conrad Cunningham, Professor
     Computer and Information Science
     University of Mississippi

Developed for CSci 658, Software Language Engineering, Fall 2013

2013-08-17: Separated Scheme interpreter code into a Scmodule
2013-08-29: Added return of empty table

1234567890123456789012345678901234567890123456789012345678901234567890

--]]

-- All of these are constants introduced as GLOBAL variables.

-- BEGIN delete for Scheme
-- FUNDEF     = "FunDef"
-- END delete for Scheme
VARVAL     = "VarVal"

-- BEGIN change/add for Lisp
-- NUMVAL     = "NumVal"
NUMSXP     = "SExprNum"
SYMSXP     = "SExprSym"
NILSXP     = "SExprNil"
LISTSXP    = "SExprList"
-- END add for Lisp
-- BEGIN add for Scheme
PRIMSXP    = "SExprPrim"
CLOSXP     = "SExprClo"
-- END add for Scheme

IFOP       = "IfOp" 
WHILEOP    = "WhileOp" 
SETOP      = "SetOp" 
BEGINOP    = "BeginOp" 
-- BEGIN change for Scheme
-- APPLYFUN   = "ApplyFun"
LAMBDAOP   = "LambdaOp" 
APPLYCLO   = "ApplyClo"
-- END change for Scheme
APPLYOP    = "ApplyOp"

ADDOP      = "+"
SUBOP      = "-"
MULOP      = "*"
DIVOP      = "/"
EQOP       = "="
LTOP       = "<"
GTOP       = ">"
PRINTOP    = "print"
-- BEGIN add for Lisp
CONSOP     = "cons"
CAROP      = "car"
CDROP      = "cdr"
NUMBERPOP  = "number?"
SYMBOLPOP  = "symbol?"
NULLPOP    = "null?"
LISTPOP    = "list?"
-- END add for Lisp
-- BEGIN add for Scheme
PRIMOPPOP  = "primop?"
CLOSUREPOP = "closure?"
-- END add for Scheme

return {}
