matlab: support Octave 4.0.0
[jackhill/mal.git] / cpp / Validation.cpp
CommitLineData
179e8eaf
ST
1#include "Validation.h"
2
3int checkArgsIs(const char* name, int expected, int got)
4{
0997015d 5 MAL_CHECK(got == expected,
179e8eaf
ST
6 "\"%s\" expects %d arg%s, %d supplied",
7 name, expected, PLURAL(expected), got);
8 return got;
9}
10
11int checkArgsBetween(const char* name, int min, int max, int got)
12{
0997015d 13 MAL_CHECK((got >= min) && (got <= max),
179e8eaf
ST
14 "\"%s\" expects between %d and %d arg%s, %d supplied",
15 name, min, max, PLURAL(max), got);
16 return got;
17}
18
19int checkArgsAtLeast(const char* name, int min, int got)
20{
0997015d 21 MAL_CHECK(got >= min,
179e8eaf
ST
22 "\"%s\" expects at least %d arg%s, %d supplied",
23 name, min, PLURAL(min), got);
24 return got;
25}
26
27int checkArgsEven(const char* name, int got)
28{
0997015d 29 MAL_CHECK(got % 2 == 0,
179e8eaf
ST
30 "\"%s\" expects an even number of args, %d supplied",
31 name, got);
32 return got;
33}