Ruben Dashyan
4b72e4cef2
[poincare] Function constructor has additional length paramater
2018-11-23 12:04:05 +01:00
Ruben Dashyan
603e672cf3
[poincare] Add parsing tests
2018-11-23 12:04:05 +01:00
Ruben Dashyan
9c5ea70c24
[poincare] Make derived Expression s_functionHelper constexpr
2018-11-23 12:04:05 +01:00
Ruben Dashyan
61b1b8a09d
[poincare] Add Expression::FunctionHelper class
...
That class is meant to contain data about named functions (e.g. sin,
tan...) in one place: their name, their number of children and a pointer to
a builder. The derived class corresponding to each such function
contains a private instance (m_functionHelper) and a getter.
The previous parser is removed, along with unecessary
constructors (used by the previous parsers).
2018-11-23 12:04:05 +01:00
Ruben Dashyan
cda6f522f0
[poincare] New static NumberOfChildren() method in Expression subclasses
2018-11-23 12:04:05 +01:00
Ruben Dashyan
e2e5fd6551
[poincare] Delete an accidentally inserted line in Randint
2018-11-23 12:04:05 +01:00
Ruben Dashyan
23c07e02ca
[poincare] New static Name() method in Expression subclasses
...
Replaces the name() method in ExpressionNode subclasses.
When necessary, the createLayout and serialize methods in thoses
subclasses were moved to their .cpp file.
2018-11-23 12:04:05 +01:00
Ruben Dashyan
a859b69939
[poincare] No default type for Token constructor
2018-11-23 12:04:05 +01:00
Ruben Dashyan
799e59b031
[poincare] raiseError method in Parser
2018-11-23 12:04:05 +01:00
Ruben Dashyan
dd5bd7f39c
[poincare] Parsing error handling for bang token
2018-11-23 12:04:05 +01:00
Ruben Dashyan
b27f98c287
[poincare] Rename Power Token as Caret
2018-11-23 12:04:04 +01:00
Ruben Dashyan
6c52a62168
[poincare] Use const-ref when parsing
2018-11-23 12:04:04 +01:00
Ruben Dashyan
c1943cfb49
[poincare] Correct stoppingType for parseSlash
2018-11-23 12:04:04 +01:00
Ruben Dashyan
20a1e048de
[poincare] Simpler precedence comparison in parser
2018-11-23 12:04:04 +01:00
Ruben Dashyan
f5cbd56ac0
[poincare] Reorder Token::Types for Parser
2018-11-23 12:04:04 +01:00
Ruben Dashyan
4ec78a4f56
[poincare] Include matrix header
2018-11-23 12:04:04 +01:00
Ruben Dashyan
f6bdc2611e
[poincare] Add a comment about the parser's nature
2018-11-23 12:04:04 +01:00
Ruben Dashyan
cbf304b342
[poincare] Add const qualifier in tokenizer
2018-11-23 12:04:04 +01:00
Ruben Dashyan
6450a79022
[poincare] Add EE char from Ion charset to tokenizer
2018-11-23 12:04:04 +01:00
Ruben Dashyan
18d122faa1
[poincare] Correct square root precedence in parser
2018-11-23 12:04:04 +01:00
Ruben Dashyan
dea52a2df1
[poincare] Include Ion Charset in Tokenizer
2018-11-23 12:04:04 +01:00
Ruben Dashyan
281dd16838
[poincare] Simpler precedence comparison in parser
2018-11-23 12:04:04 +01:00
Ruben Dashyan
2e88df876b
[poincare] Parser composes over Tokenizer instead of inherting from it
2018-11-23 12:04:04 +01:00
Ruben Dashyan
06fda37e2b
[poincare] Don't manually pop RightParenthesis
2018-11-23 12:04:04 +01:00
Ruben Dashyan
de0efe69f2
[poincare] Use a recursive-descent-alike parser
2018-11-23 12:04:04 +01:00
Ruben Dashyan
d0f2a54d6d
[poincare] Second version of homemade parser
...
Using function stack instead of auxiliary stack.
2018-11-23 12:04:04 +01:00
Émilie Feral
2b87c735d3
[poincare] Number: add a new constructor to parse Number
2018-11-23 12:04:04 +01:00
Ruben Dashyan
8d203aaf48
[poincare] Start implementing a new parser
2018-11-23 12:04:04 +01:00
Léa Saviot
b3f5bf13de
[apps/escher] Code layouting and typo
2018-11-23 12:04:04 +01:00
Léa Saviot
b9bf5be5f6
[apps/escher] Remove wrong markRectAsDirty, use reloadCell instead
2018-11-23 12:04:04 +01:00
Léa Saviot
f47a6549b8
[escher] Remove duplicate Stack in Toolbox and NestedMenuController
...
This created a bug for instance when going deep down in the Python
toolbox, then going one step up: the user arrived in the highest menu
2018-11-23 12:04:04 +01:00
Léa Saviot
9ee0f94ba4
[apps] Reload VariableBox cells before displaying them
2018-11-23 12:04:04 +01:00
Léa Saviot
549c9ed1fd
[apps] Fix variable box layout memoization
...
Reset the memoization when changing the variable box tab
2018-11-23 12:04:04 +01:00
Léa Saviot
7c4b7495f3
[apps/poincare] Inline some methods
2018-11-23 12:04:04 +01:00
Léa Saviot
fbe4c14d0d
[apps] Prevent function defined as a store
...
For instance, from the Graph application, one should not be able to
defined f(x) as 3->g(x)
2018-11-23 12:04:04 +01:00
Léa Saviot
bd52162b10
Fix typo
2018-11-23 12:04:04 +01:00
Léa Saviot
be195ce70e
[apps/graph] Fix storage pointers that expired
2018-11-23 12:04:04 +01:00
Émilie Feral
8770c9010a
[poincare] Create Constant inheriting from SymbolAbstrac
...
pi, e and i are not symbols anymore but constant
2018-11-23 12:04:04 +01:00
Émilie Feral
138e955cfd
[poincare] Factorize Symbol and Function code in SymbolAbstract
2018-11-23 12:04:04 +01:00
Émilie Feral
0cc7052d45
[apps] Fix variable box handle event
2018-11-23 12:04:04 +01:00
Émilie Feral
2709aacb4e
[poincare] Fix Product constructor
2018-11-23 12:04:04 +01:00
Émilie Feral
80c1fe627c
[sequence] Fix CacheContext
2018-11-23 12:04:04 +01:00
Émilie Feral
d9861f32c4
[poincare] Constant symbol are not variables
2018-11-23 12:04:04 +01:00
Émilie Feral
e3d2b13758
[poincare] Fix Expression::getLinearCoefficients
2018-11-23 12:04:04 +01:00
Émilie Feral
d0d81c4eca
[solver] Fix resolveLinearSystem (special case: no variable)
2018-11-23 12:04:04 +01:00
Émilie Feral
9197e8ffbf
[solver] Clean EquationStore
2018-11-23 12:04:04 +01:00
Émilie Feral
d522fd77d3
[poincare] Fix test on store
2018-11-23 12:04:04 +01:00
Émilie Feral
432713fbb6
[poincare][solver] Variable whose names are too long are not parsed
...
anymore
2018-11-23 12:04:04 +01:00
Émilie Feral
a4877ad900
[poincare] Fix tests with new constructors of int, sum and product
2018-11-23 12:04:04 +01:00
Émilie Feral
8099c5a2af
[i18n] Variable box messages
2018-11-23 12:04:04 +01:00