mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-19 05:40:38 +01:00
[apps/shared/global_context] Remove ExpressionFromSymbolRecord and ExpressionFromFunctionRecord
This commit is contained in:
committed by
LeaNumworks
parent
abf5169edd
commit
c7f15385a6
@@ -14,26 +14,10 @@ bool GlobalContext::SymbolAbstractNameIsFree(const char * baseName) {
|
||||
return SymbolAbstractRecordWithBaseName(baseName).isNull();
|
||||
}
|
||||
|
||||
Poincare::Expression GlobalContext::ExpressionFromSymbolRecord(Ion::Storage::Record record) {
|
||||
assert(Ion::Storage::FullNameHasExtension(record.fullName(), Ion::Storage::expExtension, strlen(Ion::Storage::expExtension)));
|
||||
// An expression record value is the expression itself
|
||||
Ion::Storage::Record::Data d = record.value();
|
||||
return Expression::ExpressionFromAddress(d.buffer, d.size);
|
||||
}
|
||||
Poincare::Expression GlobalContext::ExpressionFromFunctionRecord(Ion::Storage::Record record) {
|
||||
if (!Ion::Storage::FullNameHasExtension(record.fullName(), Ion::Storage::funcExtension, strlen(Ion::Storage::funcExtension))) {
|
||||
return Expression();
|
||||
}
|
||||
/* An function record value has metadata before the expression. To get the
|
||||
* expression, use the function record handle. */
|
||||
ContinuousFunction f = ContinuousFunction(record);
|
||||
return f.expressionClone();
|
||||
}
|
||||
|
||||
const Layout GlobalContext::LayoutForRecord(Ion::Storage::Record record) {
|
||||
assert(!record.isNull());
|
||||
if (Ion::Storage::FullNameHasExtension(record.fullName(), Ion::Storage::expExtension, strlen(Ion::Storage::expExtension))) {
|
||||
return PoincareHelpers::CreateLayout(ExpressionFromSymbolRecord(record));
|
||||
return PoincareHelpers::CreateLayout(ExpressionForActualSymbol(record));
|
||||
} else {
|
||||
assert(Ion::Storage::FullNameHasExtension(record.fullName(), Ion::Storage::funcExtension, strlen(Ion::Storage::funcExtension)));
|
||||
return ContinuousFunction(record).layout();
|
||||
@@ -84,8 +68,18 @@ const Expression GlobalContext::ExpressionForActualSymbol(Ion::Storage::Record r
|
||||
if (!Ion::Storage::FullNameHasExtension(r.fullName(), Ion::Storage::expExtension, strlen(Ion::Storage::expExtension))) {
|
||||
return Expression();
|
||||
}
|
||||
// Look up the file system for symbol
|
||||
return ExpressionFromSymbolRecord(r);
|
||||
// An expression record value is the expression itself
|
||||
Ion::Storage::Record::Data d = r.value();
|
||||
return Expression::ExpressionFromAddress(d.buffer, d.size);
|
||||
}
|
||||
|
||||
const Expression GlobalContext::ExpressionForFunction(const SymbolAbstract & symbol, Ion::Storage::Record r) {
|
||||
if (!Ion::Storage::FullNameHasExtension(r.fullName(), Ion::Storage::funcExtension, strlen(Ion::Storage::funcExtension))) {
|
||||
return Expression();
|
||||
}
|
||||
/* An function record value has metadata before the expression. To get the
|
||||
* expression, use the function record handle. */
|
||||
return ContinuousFunction(r).expressionClone();
|
||||
}
|
||||
|
||||
Ion::Storage::Record::ErrorStatus GlobalContext::SetExpressionForActualSymbol(const Expression & expression, const SymbolAbstract & symbol, Ion::Storage::Record previousRecord) {
|
||||
|
||||
@@ -19,10 +19,6 @@ public:
|
||||
// Storage information
|
||||
static bool SymbolAbstractNameIsFree(const char * baseName);
|
||||
|
||||
// Expression from record
|
||||
static Poincare::Expression ExpressionFromSymbolRecord(Ion::Storage::Record record);
|
||||
static Poincare::Expression ExpressionFromFunctionRecord(Ion::Storage::Record record);
|
||||
|
||||
static const Poincare::Layout LayoutForRecord(Ion::Storage::Record record);
|
||||
|
||||
// Destroy records
|
||||
@@ -38,10 +34,7 @@ private:
|
||||
// Expression getters
|
||||
static const Poincare::Expression ExpressionForSymbolAndRecord(const Poincare::SymbolAbstract & symbol, Ion::Storage::Record r);
|
||||
static const Poincare::Expression ExpressionForActualSymbol(Ion::Storage::Record r);
|
||||
static const Poincare::Expression ExpressionForFunction(const Poincare::SymbolAbstract & symbol, Ion::Storage::Record r) {
|
||||
assert(symbol.type() == Poincare::ExpressionNode::Type::Function);
|
||||
return ExpressionFromFunctionRecord(r);
|
||||
}
|
||||
static const Poincare::Expression ExpressionForFunction(const Poincare::SymbolAbstract & symbol, Ion::Storage::Record r);
|
||||
// Expression setters
|
||||
static Ion::Storage::Record::ErrorStatus SetExpressionForActualSymbol(const Poincare::Expression & expression, const Poincare::SymbolAbstract & symbol, Ion::Storage::Record previousRecord);
|
||||
static Ion::Storage::Record::ErrorStatus SetExpressionForFunction(const Poincare::Expression & expression, const Poincare::SymbolAbstract & symbol, Ion::Storage::Record previousRecord);
|
||||
|
||||
Reference in New Issue
Block a user