Commit Graph

148 Commits (bdaa421e8a5782f46d0c6778261bc374d49a961c)

Author SHA1 Message Date
Alexander Medvednikov 00b3557ce1 parser: start removing start_tmp() 2019-11-11 05:06:24 +03:00
Alexander Medvednikov 3c4bb16ce9 disable dereferencing error for now 2019-11-10 20:32:11 +03:00
Alexander Medvednikov aea5b2e3b6 make unsafe dereferncing warning an error 2019-11-10 20:14:57 +03:00
Alexander Medvednikov fdf6682254 require `unsafe` for dereferencing 2019-11-10 19:57:17 +03:00
Alexander Medvednikov c7f3413d70 more vfmt fixes 2019-11-10 19:49:19 +03:00
Alexander Medvednikov 3d4f85069f more vfmt fixes 2019-11-10 02:44:26 +03:00
Daren Liang e6c9c7d571 parser: check type for all integer only assignment operators 2019-11-09 21:57:36 +03:00
Alexander Medvednikov b1d2c6c730 lots of vfmt fixes 2019-11-09 20:42:29 +03:00
Alexander Medvednikov cac719c078 []interface 2019-11-08 22:08:02 +03:00
Alexander Medvednikov 985fb91ee8 rewrite interfaces 2019-11-08 07:16:53 +03:00
lorenzo pirro 6bcd0fd9cc optimize reserved type check 2019-11-07 18:45:38 +03:00
Alexander Medvednikov 6d98203572 fix "undefined" error 2019-11-07 17:57:54 +03:00
Daren Liang df6bdf59e6 parser: fix mod assign type check 2019-11-07 17:49:40 +03:00
Alexander Medvednikov fbd71e1539 expression.v 2019-11-07 17:48:48 +03:00
lorenzo pirro d57c0cfde0 parser: fix builtin as name not allowed 2019-11-07 06:00:48 +03:00
Alexander Medvednikov fdd4afa392 for.v and match.v; do not allow arrays in `match` 2019-11-06 23:30:08 +03:00
Alexander Medvednikov 7c70f3df93 parser: & and | type check 2019-11-06 21:20:37 +03:00
Alexander Medvednikov 0f0bef2d33 parser: more typing checks 2019-11-06 20:47:03 +03:00
Alexander Medvednikov 73134035a9 parser: remove `last` 2019-11-06 18:17:14 +03:00
Alexander Medvednikov 6afd7d50a6 parser: fix mod type check 2019-11-06 17:52:35 +03:00
Alexander Medvednikov ca259331e4 parser: fix % type check 2019-11-06 17:35:32 +03:00
Alexander Medvednikov 8dd335295e new enum step 2 2019-11-06 06:26:04 +03:00
Alexander Medvednikov 4d876d1980 new enum step 1 2019-11-06 06:16:12 +03:00
Alexander Medvednikov 855a736a2c parser: C enums + another enum simplification 2019-11-06 05:14:34 +03:00
Alvydas Vitkauskas af81b02ef0 parser: fix shift-assign to work with all integer types 2019-11-06 03:37:31 +03:00
Alvydas Vitkauskas 3080959084 parser: make let shift operators work with all types 2019-11-06 01:02:50 +03:00
Alexander Medvednikov b2f8944b1f fix V.js 2019-11-05 18:18:10 +03:00
Alexander Medvednikov 425c9ce401 a special `last` variable in for loops (experimental) 2019-11-05 17:17:55 +03:00
Alexander Medvednikov f60d44eda9 --enable-globals 2019-11-05 02:43:52 +03:00
Alexander Medvednikov f8d14a216b parser: print backtrace only in debug mode 2019-11-05 02:30:51 +03:00
joe-conigliaro 5d16f30a3d parser: add error when trying to assign from a function that does not return a value 2019-11-04 14:35:10 +03:00
joe-conigliaro 5f1e634d82 compiler: improve typo detection, support all types and fn definitions 2019-11-04 04:59:28 +03:00
joe-conigliaro df5faf35e5 compiler: optionals default value 2019-11-04 02:38:49 +03:00
Alexander Medvednikov 4e64a58ac1 scanner: fix string interpolation in raw strings 2019-11-03 23:57:26 +03:00
joe-conigliaro 4120982da1 compiler: add varg str method & varg / parser optimizations 2019-11-02 13:17:56 +03:00
Alexander Medvednikov 128d37c671 vh fixes for the UI module 2019-10-31 21:26:12 +03:00
ytakahashi 114953f28d match: fix typo and remove arrows 2019-10-31 18:58:19 +03:00
Alexander Medvednikov aa39451c8b arrays.range(min, max) 2019-10-30 16:21:57 +03:00
Alexander Medvednikov 96f7620628 instead of `Enum.foo` require `.foo` if it's enough + some UI fixes 2019-10-30 15:48:33 +03:00
Delyan Angelov ba6cc5df2a compiler: print asserted source line on failure 2019-10-30 12:15:33 +03:00
Danil-Lapirow a2bafaa254 parser: add error on array comparison 2019-10-28 10:26:42 +03:00
Alexander Medvednikov 1390a39053 clean up switch tokens 2019-10-27 22:42:52 +03:00
Alexander Medvednikov 9c5abd575f parser: remove switch_statement() 2019-10-27 13:03:40 +03:00
Alexander Medvednikov d00fdca38f [if vfmt] for fgen() functions 2019-10-27 12:13:08 +03:00
joe-conigliaro 59378dce46 compiler/vlib: replace substr/left/right with `[start..end]` everywhere 2019-10-27 10:03:15 +03:00
joe-conigliaro a075ce160e compiler: add `[..2]` & `[2..]` support for slices 2019-10-27 09:36:04 +03:00
Alexander Medvednikov e80cf185b9 allow public unions and interfaces 2019-10-27 02:23:52 +03:00
Alexander Medvednikov ef022c2326 [if vfmt] function attribute for skipping functions for performance 2019-10-27 02:11:31 +03:00
Alexander Medvednikov 570a7aaaf3 a[start..end] slicing 2019-10-26 22:20:13 +03:00
Alexander Medvednikov 70c9565607 array: fix map() return type and handle []bool 2019-10-26 14:49:36 +03:00
Alexander Medvednikov 4ef10c92f4 array: map() method 2019-10-26 14:28:11 +03:00
Simon Heuser 280c7d396c generics: generic methods, cast to T 2019-10-25 21:32:27 +03:00
Alexander Medvednikov c30f16a038 parser: add ; after a goto label 2019-10-25 18:53:45 +03:00
joe-conigliaro 7d418e9105 parser: cleanup & reuse 2019-10-25 16:34:12 +03:00
Alexander Medvednikov 4e21e9ed44 minor V.js fixes 2019-10-25 12:13:38 +03:00
Toby Webb c456ba6bde parser: fix incorrect unused var message 2019-10-25 10:27:43 +03:00
joe-conigliaro 4443fef6c3 compiler: add const to typo suggestions + small typo format update 2019-10-25 10:26:14 +03:00
Alexander Medvednikov 892d1c6aab vweb: first step to revive it 2019-10-24 22:46:58 +03:00
Alexander Medvednikov 36eb1b77d0 compiler: remove remaining switch statements and show a warning 2019-10-24 19:26:51 +03:00
Alexander Medvednikov 753fe32793 parser: remove more switch statements 2019-10-24 16:02:24 +03:00
Alexander Medvednikov 695245d307 struct.v 2019-10-24 15:56:10 +03:00
Alexander Medvednikov bac690bbc8 parser: replace the switch statement in `parse()` 2019-10-24 15:50:46 +03:00
Alexander Medvednikov 3a929faf26 enums: make `in` work without specifying the full type 2019-10-24 15:41:34 +03:00
Alexander Medvednikov 560ae9352c nice enum works 2019-10-24 15:41:34 +03:00
Alexander Medvednikov dca49e43d9 c defs 2019-10-24 15:41:34 +03:00
Alexander Medvednikov 75a6c759c7 enum snake_case check 2019-10-24 14:25:03 +03:00
Alexander Medvednikov 3d6bdc2dc3 public enums + more public structs (libs/examples/tests) 2019-10-24 13:24:50 +03:00
Alexander Medvednikov 4a88a28a3b make all necessary structs public 2019-10-24 12:51:00 +03:00
Alexander Medvednikov dce3275df4 make necessary consts public 2019-10-24 12:36:57 +03:00
Alexander Medvednikov 1c564bc118 compiler: public consts and structs 2019-10-24 12:26:43 +03:00
Alexander Medvednikov f14425ec18 do not allow one letter struct names 2019-10-23 23:46:07 +03:00
Alexander Medvednikov e69117a8f3 vh types + fn receiver name check 2019-10-23 15:42:50 +03:00
Alexander Medvednikov 8b74c711c6 vh generation: consts + cleanup 2019-10-23 11:09:54 +03:00
Alexander Medvednikov 0806aa353c match: second step 2019-10-23 01:06:06 +03:00
Alexander Medvednikov d8edc27805 match: this needs a 2 step PR 2019-10-23 01:00:52 +03:00
Alexander Medvednikov 9743b04fe6 update match statement 2019-10-23 00:56:25 +03:00
Alexander Medvednikov 4574039e4d new vh generation + simpler match statement 2019-10-23 00:45:17 +03:00
Toby Webb fdfa564865 parser: minor syntax fix 2019-10-21 22:04:57 +03:00
Delyan Angelov eef73eea22 tools: new tool to extracts function names declared in V files 2019-10-21 14:14:28 +03:00
Toby Webb dfc654f84e const declarations should be order independent 2019-10-21 08:57:29 +03:00
Alexander Medvednikov 3d6b936f38 parser: undefined error 2019-10-20 20:47:27 +03:00
Alexander Medvednikov 1b518c158b unsafe keyword + make array.free() an unsafe method 2019-10-20 20:10:44 +03:00
joe-conigliaro f7c00b8180 compiler: blank ident - consolidate duplicated code into single function 2019-10-20 12:24:12 +03:00
Simon Heuser 8a31ee4b53 generic functions 2019-10-20 10:19:37 +03:00
Danil-Lapirow bb9d95e9aa parser: allow '' in attributes 2019-10-18 20:17:23 +03:00
Alexander Medvednikov c355e967ad move array filter codegen to comptime.v 2019-10-18 07:58:54 +03:00
Alexander Medvednikov d501dc4c11 compiler: first step to validate cmd flags 2019-10-18 07:48:46 +03:00
Alexander Medvednikov 80e79a3966 array: optimized generic filter() 2019-10-18 07:30:39 +03:00
Alexander Medvednikov 5cd38ec91b V shell scripts 2019-10-17 08:27:27 +03:00
Vinicius Rangel 96152510e5 parser: interpolation calling twice fix
if string interpolation needs to call a function, it will cache the
return to .len & .str usage in the generated code
2019-10-17 07:02:02 +03:00
Vinicius Rangel 5481f226dd parser: Infinite multi-dimensional array 2019-10-17 06:52:58 +03:00
Alexander Medvednikov 526f1a3172 Revert "Revert "parser: fix programs without fn main""
This reverts commit 61af044316.
2019-10-16 03:20:16 +03:00
Alexander Medvednikov 49d6c26da4 parser: do not allow str[i++]; update contributing.md 2019-10-15 11:06:22 +03:00
Alexander Medvednikov f9593bd857 builtin: float.v + remove #include <math.h> 2019-10-15 08:41:45 +03:00
Nicolas Sauzede eb031b6800 compiler: enhance non-pub struct fields error message 2019-10-14 10:15:21 +03:00
Alexander Medvednikov 61af044316 Revert "parser: fix programs without fn main"
This reverts commit bf21108fdb.
2019-10-13 17:55:12 +03:00
joe-conigliaro a90427a663 parser: fix variadic function unused var C error 2019-10-13 16:58:54 +03:00
Delyan Angelov 53c64abdeb compiler: make compiler an ordinary vlib/compiler module
* Move compiler/ under vlib/compiler/ .

* Add a minimal compiler/main.v driver program.

* Cleanup compiler/main.v .

* Make most compiler tests pass again.

* Apply the fix by @joe-conigliaro , so that the rest of the compiler tests are fixed too.

* Thanks to @avitkauskas, now the vlib/vcompiler/tests/str_gen_test.v test does not need to be special cased anymore.

* Reapply @joe-conigliaro fix for vgen.
2019-10-13 16:37:43 +03:00