Parse unary question mark operator

This commit is contained in:
Alexander Luzgarev 2018-04-03 19:40:04 +02:00
parent d376d691c4
commit 0995df197e
3 changed files with 5 additions and 1 deletions

View File

@ -58,7 +58,7 @@
"+", // UnaryPlus = 57, "+", // UnaryPlus = 57,
"-", // UnaryMinus = 58, "-", // UnaryMinus = 58,
"~", // UnaryNot = 59, "~", // UnaryNot = 59,
"?", // UnaryQuestionMark = 60,
}; };
public PureToken CreatePunctuation(TokenKind kind) public PureToken CreatePunctuation(TokenKind kind)

View File

@ -50,5 +50,6 @@
UnaryPlus = 57, UnaryPlus = 57,
UnaryMinus = 58, UnaryMinus = 58,
UnaryNot = 59, UnaryNot = 59,
UnaryQuestionMark = 60,
} }
} }

View File

@ -495,6 +495,7 @@ namespace Parser
case TokenKind.Plus: case TokenKind.Plus:
case TokenKind.Minus: case TokenKind.Minus:
case TokenKind.Not: case TokenKind.Not:
case TokenKind.QuestionMark:
return true; return true;
default: default:
return false; return false;
@ -549,6 +550,8 @@ namespace Parser
return TokenKind.UnaryMinus; return TokenKind.UnaryMinus;
case TokenKind.Not: case TokenKind.Not:
return TokenKind.UnaryNot; return TokenKind.UnaryNot;
case TokenKind.QuestionMark:
return TokenKind.UnaryQuestionMark;
default: default:
throw new ArgumentException(nameof(kind)); throw new ArgumentException(nameof(kind));
} }