Add support for the <=> operator (C++20)

This commit is contained in:
Zackery Spytz 2019-09-03 16:48:24 -06:00 committed by Olly Betts
commit cb887ed2d4
6 changed files with 23 additions and 4 deletions

View file

@ -893,8 +893,18 @@ static int look(Scanner *s) {
}
if (c == '<')
state = 240;
else if (c == '=')
return SWIG_TOKEN_LTEQUAL;
else if (c == '=') {
if ((c = nextchar(s)) == 0) {
brackets_increment(s);
return SWIG_TOKEN_LTEQUAL;
} else if (c == '>') { /* Spaceship operator */
return SWIG_TOKEN_LTEQUALGT;
} else {
retract(s, 1);
brackets_increment(s);
return SWIG_TOKEN_LTEQUAL;
}
}
else {
retract(s, 1);
brackets_increment(s);

View file

@ -116,3 +116,4 @@ extern void Scanner_locator(Scanner *, String *loc);
#define SWIG_TOKEN_MODEQUAL 134 /* %= */
#define SWIG_TOKEN_ARROW 135 /* -> */
#define SWIG_TOKEN_ARROWSTAR 136 /* ->* */
#define SWIG_TOKEN_LTEQUALGT 137 /* <=> */