Commit Graph

2847 Commits

Author SHA1 Message Date
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
7c4b7495f3 [apps/poincare] Inline some methods 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
2709aacb4e [poincare] Fix Product constructor 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
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
51b09193ea [poincare] SequenceLayout: implement moving cursor up from the left of the sequence 2018-11-23 12:04:04 +01:00
Émilie Feral
937831295b [poincare] Fix tests with sum and product layout 2018-11-23 12:04:04 +01:00
Émilie Feral
31a5caff60 [poincare] Sum and Product can specify their variable name 2018-11-23 12:04:04 +01:00
Léa Saviot
5647f0577f [poincare] Fix logarithm parsing 2018-11-23 12:04:04 +01:00
Émilie Feral
03d0679d6f [poincare] Symbol: rename shouldBeReplacedWhileReducing in !isConstant 2018-11-23 12:04:04 +01:00
Émilie Feral
9a18f5dbf9 [poincare] Symbol Pi, i, e aren't approximate 2018-11-23 12:04:04 +01:00
Émilie Feral
74ae669c81 [poincare] Fix layout test 2018-11-23 12:04:04 +01:00
Émilie Feral
04096dd654 [expression] Parser: ANS is a final symbol and thereby will never appear
in sto rule
2018-11-23 12:04:03 +01:00
Émilie Feral
67970298c6 [poincare] Default integral has 'dx' and cursor skips dx when moving
towards right
2018-11-23 12:04:03 +01:00
Émilie Feral
244baec90f [poincare] Integral takes 4 arguments (integrand, differential variable,
lower bound, upper bound)
2018-11-23 12:04:03 +01:00
Léa Saviot
4d71a3a4c6 [apps/poincare] Do not replace symbols in result of 3+c->f(x) 2018-11-23 12:04:03 +01:00
Léa Saviot
7579294d9d [poincare] Fix Function (keep value after replaceSymbolWithExpression) 2018-11-23 12:04:03 +01:00
Léa Saviot
2c3a0ca558 [poincare] Prevent parsing of too long symbol/function names
This prevents the user from doing "3->tooLongFunctionName(x)"
2018-11-23 12:04:03 +01:00
Léa Saviot
ebb9b040a0 [poincare] Parser error on "2->f(3)" 2018-11-23 12:04:03 +01:00
Léa Saviot
8956e6f829 [poincare] Lexer should create "u(n)" symbol when lexing u_{n} 2018-11-23 12:04:03 +01:00
Léa Saviot
71d8358722 [apps/escher/poincare] Change KDText::FontSize to KDFont 2018-11-23 12:04:02 +01:00
Léa Saviot
dd5bf76882 [poincare] Remove old function attributes 2018-11-23 12:04:02 +01:00
Léa Saviot
c5713ce8c9 [poincare] Allow x to be a user defined function or variable 2018-11-23 12:04:02 +01:00
Léa Saviot
4dc54bb83b [poincare/lexer] Prevent functions named "x" 2018-11-23 12:04:02 +01:00
Léa Saviot
786807c6f2 [poincare] Fix compilation warning 2018-11-23 12:04:02 +01:00
Léa Saviot
b6ac925df6 [poincare] Limit Symbol names to 7 chars
Function names now fit in the title cells of graph/values and in the
banner view of graph/graph
2018-11-23 12:04:01 +01:00
Léa Saviot
da226f7861 [tests] Fix GlobalContext namespace and duplicate test 2018-11-23 12:04:01 +01:00
Léa Saviot
21b214e60f [apps] Build all apps 2018-11-23 12:04:01 +01:00
Léa Saviot
f3c4abe1c2 [apps/poincare] Use char constructor of Symbol instead of string 2018-11-23 12:04:01 +01:00
Léa Saviot
af41c42a97 [poincare] Store symbol children are not replaced during reduction 2018-11-23 12:04:01 +01:00
Léa Saviot
5a9c0b1b84 [apps] GlobalCtxt::SetExpForFunctionRecord used in StorageCartesianFunction 2018-11-23 12:04:01 +01:00