Commit Graph

285 Commits (b3f2c629c68747e19f6a84d448f6133c754b6ab5)

Author SHA1 Message Date
Alexander Medvednikov a25f47124d cgen: make array_set/map_set work with pointers 2020-04-03 10:41:01 +02:00
Delyan Angelov 6b9bf8cbf7 v2: fixes for most of vlib/builtin/map_test.v . 2020-04-03 00:42:08 +03:00
Delyan Angelov 07c53b1b70 v2: report ill defined consts by name/line, not only how many they are 2020-04-02 22:33:36 +03:00
hazohelet 0e6fe0a4f2
V: fix const bugs and pass const_test.v (#4206)
* fix const bug in v2

* v2: fix const decl

* small comment fix
2020-04-02 19:39:17 +02:00
Alexander Medvednikov fb4b93dfc0 ci fixes 2020-04-02 00:10:11 +02:00
Alexander Medvednikov e3713de41d fix compilation 2020-04-01 17:17:35 +02:00
Alexander Medvednikov 0de853a2ab v2: lots of minor test fixes 2020-04-01 17:14:21 +02:00
Alexander Medvednikov b1b811b5ed v2: static (for translated code only) 2020-04-01 13:38:05 +02:00
Alexander Medvednikov a3bd19ce73 cgen: generate enums earlier 2020-03-31 20:26:15 +02:00
Alexander Medvednikov 2b563bc69f v2: initial interface support; fix enum_hex_test.v 2020-03-31 19:59:41 +02:00
Alexander Medvednikov 2fe0e80569 cgen: enum default values 2020-03-31 19:43:11 +02:00
joe-conigliaro 602bc06bee
ast: use multi return optional for find_scope_and_var 2020-03-31 15:39:14 +11:00
joe-conigliaro 3440d7edd8
ast: first step merging CallExpr & MethodCallExpr 2020-03-30 21:39:20 +11:00
Delyan Angelov a9724fd38d
v2: typeof() 2020-03-28 17:37:22 +01:00
Alexander Medvednikov 831be43740 checker: check ! operator 2020-03-28 14:38:16 +01:00
joe-conigliaro 718819eb7a
map/scope/checker: update just var type & ret zero in map.get3 2020-03-29 00:00:28 +11:00
Joe Conigliaro 7ce7151ad2 cgen: v2 compiles itself - defer stmt / if * in opt parens. 2020-03-27 17:21:22 +11:00
Delyan Angelov f489c89987
v2: more informative assert output; string interpolation formatting 2020-03-26 19:17:14 +01:00
Alexander Medvednikov c71d36356b v2: optionals fixes 2020-03-26 14:58:11 +01:00
Joe Conigliaro 9c6ac7cb71 cgen: fix variadics called with 0 vargs 2020-03-26 21:09:59 +11:00
Alexander Medvednikov f2c9592b86 cgen: fix () in & exprs 2020-03-26 10:44:59 +01:00
Alexander Medvednikov 41a089e513 cgen: or block 2020-03-25 16:00:22 +01:00
Delyan Angelov 2a7bc63919
vmft2: support for multiline comments, CompIf, AssertStmt, octal literals 2020-03-24 22:18:58 +01:00
Alexander Medvednikov 5d976d841b v2: raw strings 2020-03-24 17:07:27 +01:00
Alexander Medvednikov e012966291 parser/ast: Block 2020-03-24 15:44:17 +01:00
joe-conigliaro e5a111396c cgen: add for map 2020-03-24 17:25:10 +11:00
Joe Conigliaro 076bc2b773 cgen/checker: fixes & fixes & tmp fixes :D 2020-03-23 02:22:49 +11:00
Alexander Medvednikov ce73ced932 cgen: #else 2020-03-22 14:54:31 +01:00
Alexander Medvednikov c2ce06eba7 cgen: generate #ifdefs 2020-03-22 13:55:39 +01:00
Alexander Medvednikov 7b689d8c52 ast: CompIf position 2020-03-22 11:53:08 +01:00
Alexander Medvednikov ab3f6d9202 cgen: generate indents for more readable C code 2020-03-22 10:12:45 +01:00
Alexander Medvednikov e5f6a0949f cgen: autofree: first step 2020-03-21 19:52:19 +01:00
Alexander Medvednikov c12985d1d7 cgen: for in; init fixes 2020-03-21 10:22:19 +01:00
Alexander Medvednikov 5072320803 cgen/ast/checker: string interpolation 2020-03-21 07:01:11 +01:00
Joe Conigliaro a331abf675 ast/cgen/parser: combine IfExpr branches into single node 2020-03-21 00:39:56 +11:00
Alexander Medvednikov b290efa394 ast: TypeOf 2020-03-19 12:15:42 +01:00
Joe Conigliaro 6c56528cd7 checker: update assoc type 2020-03-19 19:52:33 +11:00
Joe Conigliaro a456c21249 gen: cgen sum cast in struct init 2020-03-19 19:40:21 +11:00
Alexander Medvednikov 28309da1f1 cgen: assoc 2020-03-19 08:14:09 +01:00
Alexander Medvednikov c514f0b672 cgen: automatic dereference and match fix 2020-03-18 16:07:54 +01:00
lydiandy 04184f1715
ast: make ReturnStmt field public 2020-03-18 15:39:26 +01:00
Joe Conigliaro c4f6125a31 gen/checker: add errors for as cast & for in var 2020-03-19 00:50:21 +11:00
Joe Conigliaro 96af21ff68 gen: impl as cast 2020-03-18 23:55:46 +11:00
Alexander Medvednikov 91378583cc cgen: another expected_type fix 2020-03-18 12:34:27 +01:00
Alexander Medvednikov af289da844 ast: MatchExpr: expr_type => cond_type 2020-03-18 12:23:32 +01:00
Alexander Medvednikov a011b8951a cgen: if/match expressions and other fixes 2020-03-18 08:41:49 +01:00
Joe Conigliaro 3fecf154aa gen: move helper fns to ast 2020-03-18 11:19:23 +11:00
Joe Conigliaro 91e47caf38 gen: add if guard to cgen 2020-03-18 02:40:41 +11:00
Delyan Angelov f73b38a0d8
vfmt2: fix literal integer number formatting 2020-03-17 02:49:15 +01:00
Alexander Medvednikov 900ada1112 cgen: match: do not use a temp var; minor fixes 2020-03-16 10:53:36 +01:00
Alexander Medvednikov 0f160707a4 cgen: GoStmt; experimental parallel parser 2020-03-16 08:33:42 +01:00
joe-conigliaro c947e6ebe6 cgen: cast to sum type 2020-03-16 17:42:45 +11:00
Alexander Medvednikov 37504c487a cgen: sum types: match 2020-03-16 03:19:26 +01:00
Joe Conigliaro 3e05939b65 cgen: enum fixes 2020-03-15 12:51:31 +11:00
Alexander Medvednikov 843bb6dac1 cgen: lots of fixes 2020-03-15 00:46:08 +01:00
Joe Conigliaro 50ed4004f4 ast/table: use common struct fn decl arguments 2020-03-15 09:21:36 +11:00
Joe Conigliaro cc338df77f parser/checker/gen: update call args to use ast.CallArg 2020-03-14 21:11:43 +11:00
Alexander Medvednikov b173cea177 cgen: optionals 2020-03-13 05:57:55 +01:00
Alexander Medvednikov 4b4c47461b cgen: error fixes; table: simplify; compiler tests 2020-03-13 01:43:30 +01:00
Alexander Medvednikov 92d6eec09a cgen: fix remaining errors. hello world now compiles 2020-03-12 09:11:41 +01:00
Alexander Medvednikov e0c85f87ae cgen: args fixes 2020-03-11 21:11:27 +01:00
Alexander Medvednikov aada19f574 cgen: fix [] => string casts and for in 2020-03-11 19:00:55 +01:00
Joe Conigliaro a1314bd199 checker/gen/table: impl fn types & sum/other fixes & tidy 2020-03-12 02:10:46 +11:00
Joe Conigliaro 7513dab185 table/checker: proper parent field/method lookup & cleanup 2020-03-11 20:48:45 +11:00
Alexander Medvednikov 22e558aecb cgen: fix C style loops without an init; fix integer consts 2020-03-11 02:44:30 +01:00
Joe Conigliaro 083964522b cgen/fmt: fix assign_stmt fix & cgen test & hash tests & fmt 2020-03-11 11:31:24 +11:00
Alexander Medvednikov de55a26cfe cgen: lots of fixes 2020-03-10 23:21:29 +01:00
Joe Conigliaro c9d30f78b7 v: no optional for scope.innermost & more blank_ident 2020-03-10 23:35:25 +11:00
Joe Conigliaro f7a93a69f6 v: fix/gen multi return/assign + merge VarDecl & AssignStmt 2020-03-10 22:01:37 +11:00
Alexander Medvednikov d9854f2abd cgen: fix mutable receivers 2020-03-07 22:37:03 +01:00
Delyan Angelov 5e541e1f11
vfmt: alias type and sum type + sum type fix 2020-03-07 17:37:55 +01:00
Alexander Medvednikov fbf80dc315 cgen: array_set() 2020-03-07 16:39:15 +01:00
Alexander Medvednikov 63032c4bb7 cgen: minor fixes 2020-03-07 16:23:10 +01:00
Joe Conigliaro 09d9dd2607 v: add map init 2020-03-07 18:13:00 +11:00
Alexander Medvednikov c14c81ace6 cgen: fix -> 2020-03-07 04:45:35 +01:00
Alexander Medvednikov 180b9b971a cgen: string_add() 2020-03-07 00:34:14 +01:00
Alexander Medvednikov 1a8b7d0447 cgen: fix slices 2020-03-06 22:24:42 +01:00
Alexey 81ce524705
ast: add Expr to AsCast 2020-03-06 22:12:15 +01:00
Alexander Medvednikov 5c8617ec68 ast: set IndexType.container_type; array_get() 2020-03-06 17:06:03 +01:00
Alexander Medvednikov be2480c320 cgen: fix several errors 2020-03-06 16:31:44 +01:00
Alexander Medvednikov 91269961d0 cgen: array types 2020-03-06 13:44:13 +01:00
Joe Conigliaro 49f3ce0571 v2: add method call receiver to cgen & check method args 2020-03-06 20:52:03 +11:00
Joe Conigliaro 7008b1a92c v2: update ident name for resolved const/fn objects 2020-03-06 10:10:01 +11:00
Alexander Medvednikov 9c1e50b1aa
vdoc: don't show deprecated functions 2020-03-05 16:13:14 +01:00
Alexander Medvednikov 6659f1751e
ast: make IdentInfo public 2020-03-05 14:16:08 +01:00
Joe Conigliaro 272eaaa704 v2: remove type fields from parser & some cleanup 2020-03-05 23:57:05 +11:00
Alexander Medvednikov 4161cfcdb8 cgen: lots of fixes 2020-03-05 00:43:09 +01:00
Alexander Medvednikov f27f832ede cgen: definitions + other fixes; calloc fix 2020-03-04 17:08:28 +01:00
Alexander Medvednikov 37453945d0 cgen: remaining nodes; match type fix; v2.c is now generated 2020-03-04 15:48:43 +01:00
Joe Conigliaro e71948461e v2: update MatchExpr 2020-03-04 21:59:45 +11:00
Joe Conigliaro d501ea0afb v2: fix array init 2020-03-04 12:50:32 +11:00
Joe Conigliaro 147ecc5e17 v2: time - prefix C struct & ast.TypeName to ast.Type 2020-03-04 01:06:21 +11:00
Alexander Medvednikov 22ffe336cb checker: AsCast, CharLiteral, fix integer index check 2020-03-02 19:00:33 +01:00
Joe Conigliaro f57a651e3b v2: match expr fixes & tmp typeof skip 2020-03-02 20:53:38 +11:00
Alexander Medvednikov 82b0024758 fix v2 parser int.v error 2020-03-01 14:57:54 +01:00
Alexander Medvednikov 7a499b3cd3 checker: fix first() and last(); call_args; method cgen 2020-03-01 13:07:51 +01:00
Alexander Medvednikov 27ce38937c checker: fix Assoc 2020-02-29 18:07:29 +01:00
Alexander Medvednikov d5faf36aa9 fmt: comments 2020-02-29 17:51:38 +01:00
yuyi 6c85e285e7
vdoc: show variadic args correctly 2020-02-29 15:04:07 +01:00
Alexey ee0a0afb25
v2: process `or` block for `CallExpr` 2020-02-29 15:03:32 +01:00
Alexander Medvednikov 6855c746bb vfmt: EnumDecl 2020-02-28 17:21:24 +01:00
Alexander Medvednikov ccf4f61521 ast: ParExpr, OrExpr, IfGuardExpr; ForInStmt fix; remove all cap vars 2020-02-28 15:36:41 +01:00
Alexander Medvednikov 6a198df3af v2: ParExpr; mut var decl 2020-02-28 14:41:19 +01:00
Joe Conigliaro c4b9ef388f v2: handle var decl & assign stmt together 1st step combining 2020-02-28 23:29:04 +11:00
Alexander Medvednikov 87205367d1 v2: minor fixes 2020-02-27 21:51:40 +01:00
Alexander Medvednikov 3204f036da ast: move all str() methods to ast/str.v 2020-02-27 21:29:38 +01:00
Alexander Medvednikov d619944cf5 vfmt: []xxx; mut args 2020-02-27 21:00:33 +01:00
Alexander Medvednikov 4f0d505c65 v2: `if x := `; fix `for key, val in`; CastExpr 2020-02-27 18:02:40 +01:00
Joe Conigliaro 237d83b2ee v2: more work on AssignStmt & multi ret & initial blank ident 2020-02-27 21:12:30 +11:00
Alexey ca9fa6407f
v2: distinguish public and private constants 2020-02-26 22:43:37 +01:00
Alexey 70f085be18
v2: process unsafe statements 2020-02-26 20:45:03 +01:00
Alexander Medvednikov 857cbfb0d2 v2: short struct init syntax; .xxx enum checks; unions; assert 2020-02-26 15:51:05 +01:00
Alexander Medvednikov 28ee0f4ebe checker: check enums 2020-02-25 15:02:34 +01:00
Alexander Medvednikov d510cd1e0d fmt: else, for in 2020-02-22 16:59:50 +01:00
Alexander Medvednikov cd41967aa1 fmt: struct pub/mut fields, map init 2020-02-22 14:13:22 +01:00
joe-conigliaro b250ded3fa v2: fix typo & remove unneeded field 2020-02-22 23:08:14 +11:00
joe-conigliaro 30c8a5a010 v2: temp const fix 2020-02-22 23:04:56 +11:00
Alexander Medvednikov 4c95e59d5c fmt, doc: &; update 0.2 roadmap 2020-02-21 18:13:34 +01:00
Alexander Medvednikov b309e7d0e5 type_to_str() 2020-02-21 14:47:42 +01:00
joe-conigliaro fcd97f513a v2: module/type/fn name fixes, compile fixes 2020-02-20 21:13:18 +11:00
Alexander Medvednikov ec3d67c19f checker: print multiple errors; none 2020-02-19 19:54:42 +01:00
Alexander Medvednikov 092c09d81f vdoc using the new parser 2020-02-19 16:13:34 +01:00
Alexander Medvednikov bc11419ff9 v2: fix for position and check 2020-02-19 11:06:36 +01:00
Alexander Medvednikov 19520ccf4e v2: for in checker 2020-02-18 21:59:42 +01:00
Alexander Medvednikov 31c1483b9d vfmt2: fn args, comments 2020-02-18 20:20:15 +01:00
Alexander Medvednikov 480af3f381 v2: checker fixes 2020-02-18 20:06:01 +01:00
Alexander Medvednikov 4e9bfa95ec v2: the new parser can now parse the entire V compiler 2020-02-18 17:45:59 +01:00
Alexander Medvednikov 59beec8fae new vfmt using the new parser 2020-02-17 22:50:11 +01:00
Alexander Medvednikov 1dd6491a2f v2: more parser fixes 2020-02-17 14:15:49 +01:00
joe-conigliaro d7f74ecf52
v2: move more type handling to checker + some clean up 2020-02-17 12:25:18 +01:00
joe-conigliaro dc90f4f4a6
v2: remove unresolved types; handle types in checker; add ast.scope 2020-02-15 13:37:48 +01:00
Alexander Medvednikov 9610821884 v2: defer; match a,b; if x := 2020-02-11 10:26:46 +01:00
Alexander Medvednikov 747f6829ab v2: enum decl; type decl; [start..end] fix; %= 2020-02-10 23:19:50 +01:00
Alexander Medvednikov 26cfaa150e v2: match expr; enum val; string formatting 2020-02-10 20:33:46 +01:00
joe-conigliaro bf5ed5e451
v2: fix array index, for loop, add cast expr & other minor fixes 2020-02-10 14:43:17 +01:00
Alexander Medvednikov c9f619dc72 v2: parse `filter()` 2020-02-10 14:42:57 +01:00
joe-conigliaro e274c5c485 v2: type sys - store type idx/ptr in int & add helpers 2020-02-10 08:32:08 +01:00
joe-conigliaro 9e9bdc32ea
v2: lots of small fixes parent method/field resolution 2020-02-08 09:50:12 +01:00
Alexander Medvednikov 9034b1fd08 v2: match cgen; use `as` for casting 2020-02-07 14:50:52 +01:00
joe-conigliaro 67a13fc916
v2: start impl multi assign 2020-02-06 17:38:02 +01:00
joe-conigliaro d9e92a08cb
v2: use pointer to table.type, fix unresolved array/map sub-types 2020-02-06 13:57:35 +01:00
Alexander Medvednikov 2b433cdf64 v2: match, <<=, >>=, |=, ~, unsafe, map init 2020-02-05 10:00:14 +01:00
joe-conigliaro 85e4e4cb40
v2: resolve unresolved call expression types & add test 2020-02-04 12:03:12 +01:00
Alexander Medvednikov 83f0c228e9 v2: parse builtin.v, cfns.v float.v 2020-02-04 09:54:15 +01:00
Alexander Medvednikov 432ee93916 v2: break, continue, for in fixes, fixed size array, | 2020-02-04 08:29:50 +01:00
Alexander Medvednikov c7f07cd0b6 v2: postfix_expr() checker 2020-02-04 07:37:41 +01:00
Alexander Medvednikov 6489b48c9c v2: clean up IndexExpr type check 2020-02-03 11:29:50 +01:00
Alexander Medvednikov d918903252 v2: move index expr type check 2020-02-03 07:45:09 +01:00
joe-conigliaro 2d5c70832c
v2: initial module support 2020-02-03 07:31:54 +01:00
Alexander Medvednikov d87cb3f672 v2: consts, $if, attributes, globals, if/for type check, prefs 2020-02-03 07:03:32 +01:00