Commit Graph

383 Commits

Author SHA1 Message Date
Marc Vertes
a5baa304fe Add support for promoted methods on embedded struct fields 2018-03-11 14:14:42 +01:00
Marc Vertes
4b00724c5a Implement methods and receivers 2018-03-09 17:34:18 +01:00
Marc Vertes
d488cc2c0b Improve function call expressions 2018-03-07 19:11:03 +01:00
Marc Vertes
906148b81f fix callExpr 2018-03-07 14:38:21 +01:00
Marc Vertes
08ddc4518c Fix var declaration 2018-03-07 14:13:28 +01:00
Marc Vertes
c1f764ed40 Handle promoted fields in embedded structs 2018-03-06 12:42:20 +01:00
Marc Vertes
750f6e30e7 cfg: many improvements in struct management 2018-03-05 17:17:53 +01:00
Marc Vertes
33d19bf2a5 Implement access to struct fields, (1 level only for now) 2018-02-27 17:23:47 +01:00
Marc Vertes
045fcd6d66 struct type support, in progress 2018-02-26 19:00:30 +01:00
Marc Vertes
31bdcefff5 Add struct and composite types, in progress 2018-02-26 09:21:58 +01:00
Marc Vertes
bb63091920 fix basic types, fix _return 2018-02-21 23:04:04 +01:00
Marc Vertes
b4fd48e72e Handle out of order or absence of default in switch statement 2018-02-21 14:37:26 +01:00
Marc Vertes
835dd9c805 Add switch/case support. Some corner cases still missing 2018-02-21 13:23:20 +01:00
Marc Vertes
9b92ceb79f Add logical AND and OR statements 2018-02-20 19:15:50 +01:00
Marc Vertes
41bd7a8505 Refactoring of AST is now ok 2018-02-20 17:11:18 +01:00
Marc Vertes
20753f94e3 Refactor cfg creation, in progress 2018-02-16 23:19:18 +01:00
Marc Vertes
3aa38a2908 Use int instead of int64 2018-02-15 23:15:55 +01:00
Marc Vertes
c2fb2db341 Fix cfg 2018-02-15 15:09:50 +01:00
Marc Vertes
b5af29ca57 Implement for-range statement on arrays 2018-02-14 16:31:49 +01:00
Marc Vertes
11795336f5 Get rid of reflect pkg when handling arrays 2018-02-14 11:45:08 +01:00
Marc Vertes
87edd051e2 Add support of arrays initialized from litterals 2018-02-13 23:48:13 +01:00
Marc Vertes
f24e75120d Fix IF with init statement 2018-02-13 16:20:52 +01:00
Marc Vertes
bd06be616d better implementation of multiple assign 2018-02-13 12:43:37 +01:00
Marc Vertes
592d1bc0ac handle multiple assign/return statements 2018-02-12 17:22:37 +01:00
Marc Vertes
1bbf5b14f9 Fix and test recursive functions with fibonacci numbers 2018-02-12 10:09:02 +01:00
Marc Vertes
bef44db73c handle return values in functions 2018-02-10 21:10:34 +01:00
Marc Vertes
b5ab905e2d Make gi a a real interpreter
Handle #! in first line to allow gi executable scripts.
Load program source from files.
Display AST and CFG graphs on command line flags.
2018-02-08 17:23:23 +01:00
Marc Vertes
e7614c95ef Make function calls work.
Function calls with parameters passed as value now work.
Return value handling and scopes still missing.
2018-02-08 12:01:59 +01:00
Marc Vertes
f440b82788 function calls, in progress 2018-02-07 09:09:11 +01:00
Marc Vertes
24e3acd16a Revert non-recursive tree walk. Make CFG re-entrant. 2018-02-05 13:40:23 +01:00
Marc Vertes
bf9ac2df4c Use frames 2018-02-02 18:34:07 +01:00
Marc Vertes
2f1e444aab Add frames (in progress) 2018-02-02 09:21:06 +01:00
Marc Vertes
75f96aeac7 Apply better names for function and files. Add images for doc 2018-02-01 15:20:37 +01:00