language/error-msgs.rkt
#lang racket

#|
File: language/error-msgs.rkt
Author: Bill Turtle (wrturtle)

Pypar error messages
|#

(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")