-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathTODO
More file actions
64 lines (46 loc) · 2.62 KB
/
TODO
File metadata and controls
64 lines (46 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Here is a TODO list of the things that must be done very soon.
* Parser have problems with complex expressions like:
[DONE] f(x)[0] -- no rule to parse that.
[DONE] a * {b + c} -- the same stuff.
and so on.
* Lexer need some major improvement:
- [DONE] Numbers must be handled properly, including \hex {12fcc}
- [DONE] Strings are not considered at all.
- [DONE] LaTeX specific stuff like escaped underscore.
* [DONE] In LaTeX it is possible to write an operation in the form:
\left< a + b \right>
I would assume that we need to consider such an oepration
as a separate function call. Basically this is always one-argument
function. May be user can redefine these functions
depending on the type of argument. Also we need to consider
that LaTeX supports \left and \right with no ending character.
This is used in cases when you need only one graphical symbol
but if you open the group with \leftX, you must close it with \right
or \rightX.
* Printing routines must be decoupled in severla functions which
would allow easier modifications.
* [DONE] Freeng stuff works very poorly, function free_tree must be adjusted.
* [PARTLY DONE] In the code base we have a lot of dead code. This must be eliminated
as soon as possible.
* Unknown tokens are just ignored now. This is wrong! Unknwon token
means that your lexer failed. It means that further parsing should
not happen at all.
* In some cases when we found that token does not fit the rule, we just
go further, eating up this token, which could be a starting token
of the next expression, if for example a user missed the closing
bracket or something similar.
* [DONE] A support of boolean operations in `sexpr` is needed.
* Errors have to be handled better (let's see how it's implemented in gcc).
* [DONE] Comments that could be viewed in LaTeX are needed.
* [DONE] In addition to `\not \eq`, `\neq` has to be supported too.
* Type conversion is done fairly bad now. The only supported conversion is
z_type_node => r_type_node. Need to extend it.
* Type construction can be improved in `\matrix`. For instance, if we define
matrix as [3; 5; 2.1; 3], then the resulting type could be `a vector of
float`. At this moment, this example will cause an error due to disagreement
of matrix elements types.
* Size property is included in the type, yet it is useless. Nevertheless, we
are to handle it properly.
* Arrays with custom dimensions (`*` in SaC) are not supported as function
arguments.
* There is no distinction between signed and unsigned integer types.