mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[poincare/parser] Use infinity symbol
- Use infinity symbol - Parse inf, oo, infity
This commit is contained in:
@@ -56,7 +56,7 @@ public:
|
||||
static Infinity Builder(bool negative);
|
||||
Expression setSign(ExpressionNode::Sign s);
|
||||
static const char * Name() {
|
||||
return "inf";
|
||||
return "∞";
|
||||
}
|
||||
static int NameSize() {
|
||||
return 4;
|
||||
|
||||
@@ -44,6 +44,9 @@ bool Parser::IsSpecialIdentifierName(const char * name, size_t nameLength) {
|
||||
return (
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, Symbol::k_ans) == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, Infinity::Name()) == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, "inf") == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, "infinity") == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, "oo") == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, Undefined::Name()) == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, Unreal::Name()) == 0 ||
|
||||
Token::CompareNonNullTerminatedName(name, nameLength, "u") == 0 ||
|
||||
@@ -426,7 +429,14 @@ void Parser::parseSequence(Expression & leftHandSide, const char * name, Token::
|
||||
void Parser::parseSpecialIdentifier(Expression & leftHandSide) {
|
||||
if (m_currentToken.compareTo(Symbol::k_ans) == 0) {
|
||||
leftHandSide = Symbol::Ans();
|
||||
} else if (m_currentToken.compareTo(Infinity::Name()) == 0) {
|
||||
} else if (m_currentToken.compareTo(Infinity::Name()) == 0 ||
|
||||
m_currentToken.compareTo("inf") == 0 ||
|
||||
m_currentToken.compareTo("infinity") == 0 ||
|
||||
m_currentToken.compareTo("oo") == 0
|
||||
) {
|
||||
|
||||
leftHandSide = Infinity::Builder(false);
|
||||
} else if (m_currentToken.compareTo("inf") == 0) {
|
||||
leftHandSide = Infinity::Builder(false);
|
||||
} else if (m_currentToken.compareTo(Undefined::Name()) == 0) {
|
||||
leftHandSide = Undefined::Builder();
|
||||
|
||||
@@ -224,7 +224,7 @@ Token Tokenizer::popToken() {
|
||||
if (c == '}') {
|
||||
return Token(Token::RightBrace);
|
||||
}
|
||||
if (c == UCodePointSquareRoot) {
|
||||
if (c == UCodePointSquareRoot || c == UCodePointInfinity) {
|
||||
Token result(Token::Identifier);
|
||||
result.setString(start, UTF8Decoder::CharSizeOfCodePoint(c));
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user