mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-20 01:08:15 +01:00
[poincare] Product, Sum, Integral, Floor etc (special layouts) serialize
to identifier[arg1, arg2, ...] instead of identifier([arg1, arg2, ...]) which is not parseable
This commit is contained in:
@@ -159,13 +159,7 @@ int IntegralLayoutNode::serialize(char * buffer, int bufferSize, Preferences::Pr
|
||||
return bufferSize-1;
|
||||
}
|
||||
|
||||
// Write the opening parenthesis
|
||||
numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, '(');
|
||||
if (numberOfChar >= bufferSize-1) {
|
||||
return bufferSize-1;
|
||||
}
|
||||
|
||||
/* Add an extra system parenthesis to avoid serializing:
|
||||
/* Add an system parenthesis to avoid serializing:
|
||||
* 2)+(1
|
||||
* ∫ (5)dx
|
||||
* 1
|
||||
@@ -190,12 +184,6 @@ int IntegralLayoutNode::serialize(char * buffer, int bufferSize, Preferences::Pr
|
||||
|
||||
// Write the closing system parenthesis
|
||||
numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, UCodePointRightSystemParenthesis);
|
||||
if (numberOfChar >= bufferSize-1) {
|
||||
return bufferSize-1;
|
||||
}
|
||||
|
||||
// Write the closing parenthesis
|
||||
numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, ')');
|
||||
buffer[numberOfChar] = 0;
|
||||
return numberOfChar;
|
||||
}
|
||||
|
||||
@@ -212,12 +212,7 @@ int SequenceLayoutNode::writeDerivedClassInBuffer(const char * operatorName, cha
|
||||
int numberOfChar = strlcpy(buffer, operatorName, bufferSize);
|
||||
if (numberOfChar >= bufferSize-1) { return bufferSize-1; }
|
||||
|
||||
// Write the opening parenthesis
|
||||
numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, '(');
|
||||
if (numberOfChar >= bufferSize-1) { return bufferSize-1; }
|
||||
|
||||
|
||||
/* Add an extra system parenthesis to avoid serializing:
|
||||
/* Add an system parenthesis to avoid serializing:
|
||||
* 2)+(1
|
||||
* ∑ (5)
|
||||
* n=1
|
||||
@@ -240,12 +235,6 @@ int SequenceLayoutNode::writeDerivedClassInBuffer(const char * operatorName, cha
|
||||
|
||||
// Write the closing system parenthesis
|
||||
numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, UCodePointRightSystemParenthesis);
|
||||
if (numberOfChar >= bufferSize-1) {
|
||||
return bufferSize-1;
|
||||
}
|
||||
|
||||
// Write the closing parenthesis
|
||||
numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, ')');
|
||||
buffer[numberOfChar] = 0;
|
||||
return numberOfChar;
|
||||
}
|
||||
|
||||
@@ -111,19 +111,11 @@ int InfixPrefix(
|
||||
assert(buffer[bufferSize - 1] == 0);
|
||||
return bufferSize-1;
|
||||
}
|
||||
// Add the opening parenthesis
|
||||
numberOfChar += UTF8Decoder::CodePointToChars('(', buffer+numberOfChar, bufferSize - numberOfChar);
|
||||
// Add the opening (system or user) parenthesis
|
||||
numberOfChar += UTF8Decoder::CodePointToChars(needsSystemParentheses ? UCodePointLeftSystemParenthesis : CodePoint('('), buffer+numberOfChar, bufferSize - numberOfChar);
|
||||
if (numberOfChar >= bufferSize-1) {
|
||||
return bufferSize-1;
|
||||
}
|
||||
|
||||
if (needsSystemParentheses) {
|
||||
// Add the opening system parenthesis
|
||||
numberOfChar += UTF8Decoder::CodePointToChars(UCodePointLeftSystemParenthesis, buffer+numberOfChar, bufferSize - numberOfChar);
|
||||
if (numberOfChar >= bufferSize-1) {
|
||||
return bufferSize-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int childrenCount = node->numberOfChildren();
|
||||
@@ -157,16 +149,8 @@ int InfixPrefix(
|
||||
}
|
||||
|
||||
if (prefix) {
|
||||
if (needsSystemParentheses) {
|
||||
// Add the closing system parenthesis
|
||||
numberOfChar += UTF8Decoder::CodePointToChars(UCodePointRightSystemParenthesis, buffer+numberOfChar, bufferSize - numberOfChar);
|
||||
if (numberOfChar >= bufferSize-1) {
|
||||
return bufferSize-1;
|
||||
}
|
||||
}
|
||||
|
||||
// Add the closing parenthesis
|
||||
numberOfChar += UTF8Decoder::CodePointToChars(')', buffer+numberOfChar, bufferSize - numberOfChar);
|
||||
// Add the closing system parenthesis
|
||||
numberOfChar += UTF8Decoder::CodePointToChars(needsSystemParentheses ? UCodePointRightSystemParenthesis : CodePoint(')'), buffer+numberOfChar, bufferSize - numberOfChar);
|
||||
if (numberOfChar >= bufferSize-1) {
|
||||
return bufferSize-1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user