aboutsummaryrefslogtreecommitdiff
path: root/TODO.rst
diff options
context:
space:
mode:
Diffstat (limited to 'TODO.rst')
-rw-r--r--TODO.rst32
1 files changed, 32 insertions, 0 deletions
diff --git a/TODO.rst b/TODO.rst
new file mode 100644
index 0000000..2d00ec7
--- /dev/null
+++ b/TODO.rst
@@ -0,0 +1,32 @@
+TODO
+====
+
+- More detailed checking in regex for:
+
+ - char constant (done)
+ - string constant (done)
+
+- Fix:
+
+ - check global definition (if type is complete) when semantic analysis finishes
+ - local function declaration is not in a local scope (external linkage issue) (will not be fixed)
+ - incomplete type issues
+ - function **definition** requires complete return type (function declaration does not) (done)
+ - array requires **complete** elem type (done)
+ - struct or union requires **complete** fields (done)
+ - pointer may **allow incomplete** type (done)
+ - calculate type memory footprint at proper time
+ - function to 'pointer to function' conversion (according the std 6.3.2/4) (done)
+ - vague var table management (done)
+ - incorrect address reference ``&`` (done)
+ - const function name (done)
+ - remove the redundant edge from blocks that break a loop
+ - ``<<`` operation in pre-calculation (done)
+ - support ``addui``, ``sll``, etc. (done)
+
+- Not Implemented:
+
+ - complex type name (to be in agreement with complex decl) (done)
+ - initializer checking (done)
+ - typedef support (via adding mid-rule actions to bision to inform flex) (done)
+ - ``&&`` and ``||`` (done)