#lang racket
(provide (all-defined-out))
(define MSG-DEF-INVALID-ID
(lambda (e)
(format "def: \"~a\" is not a valid identifier"
e)))
(define MSG-DEF-NO-EXPR
"def: there is no expression to bind to")
(define MSG-PLUS-NO-ARGS
(string-append "+: expects an expression on the "
"the right hand side."))
(define MSG-MINUS-NO-ARGS
(string-append "-: expects an expression on the "
"right-hand side."))
(define MSG-TIMES-NO-ARGS
(string-append "*: expects an expression on the "
"left-hand side, and an expression"
"on the right"))
(define MSG-DIVIDE-NO-ARGS
(string-append "/: expects an expression on the "
"left-hand side, and an expression"
"on the right"))
(define MSG-DIVISION-BY-ZERO
"/: division by zero")
(define MSG-MOD-BY-ZERO
"%: modulo by zero not defined")
(define MSG-MOD-NO-ARGS
(string-append "%: expects an expression on the "
"left-hand side, and an expression"
"on the right"))
(define MSG-EXPT-NO-ARGS
(string-append "**: expects an expression on the "
"left-hand side, and an expression"
"on the right"))
(define MSG-NOT-NO-ARGS
(string-append "not: there should be an expression after "
"the `not' keyword"))
(define MSG-AND-WRONG-ARGS
(string-append "and: there should be an expression before "
"and after the `and' keyword"))
(define MSG-OR-WRONG-ARGS
(string-append "or: there should be an expression before "
"and after the `or' keyword"))
(define MSG-COND-FELLTHROUGH
"if: all question results were false")
(define MSG-FUN-ZERO-ARITY
"fun: function definitions must include at least one argument")