Commit Graph

314 Commits (8653605b0a977bc76852f753928ee32e14a5d278)

Author SHA1 Message Date
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 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 7ce7151ad2 cgen: v2 compiles itself - defer stmt / if * in opt parens. 2020-03-27 17:21:22 +11: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
Alexander Medvednikov de55a26cfe cgen: lots of fixes 2020-03-10 23:21:29 +01: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
Alexey ee0a0afb25
v2: process `or` block for `CallExpr` 2020-02-29 15:03:32 +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
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 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
Alexander Medvednikov 71653273f6 v2: range, *, function object 2020-02-02 14:32:12 +01:00
Alexander Medvednikov 9f4661391d v2: simplify the type system; an initial version of the V interpreter 2020-02-02 07:56:18 +01:00
Shun Sakai c8c43a2475 update copyright year 2020-01-23 21:04:46 +01:00
joe-conigliaro 3a8b437b8d v2: move array_init to checker 2020-01-19 13:52:34 +01:00
joe-conigliaro 09d1eb7c55 v2: type checker + lots of other changes 2020-01-18 23:26:14 +01:00
Alexander Medvednikov 706c6066d5 index expression 2020-01-07 12:18:13 +01:00
joe-conigliaro b7509577b5 v: cleanup & fixes. update variadic & multiple return 2020-01-07 12:10:07 +01:00
Alexander Medvednikov 69f3c42b99 method calls; skip string interpolation for now; fix () 2020-01-07 01:08:24 +01:00
Alexander Medvednikov 48ea1153a5 for ;; syntax 2020-01-07 00:14:19 +01:00
Alexander Medvednikov 1e28c1d4fd clean up the parser a bit; run vfmt; add x64 to ci 2020-01-06 23:15:37 +01:00
Alexander Medvednikov b815878d60
simplify and improve pratt 2020-01-06 16:13:12 +01:00
joe-conigliaro 2061394ad7 v: initial impl of new type sys w/ pointer & placeholder support (#3323) 2020-01-04 17:57:25 +01:00
Alexander Medvednikov 492dfebd15 SelectorExpr; receivers; struct field check; if expression 2020-01-02 20:09:23 +01:00
Alexander Medvednikov 460b35137a handle unknown fns; fn.v; type fixes 2020-01-02 08:30:15 +01:00
Alexander Medvednikov e7e07be38c handle unknown functions; fix var types 2020-01-01 23:15:20 +01:00
Alexander Medvednikov b1d6021875 x64 fixes 2020-01-01 22:34:46 +01:00
Alexander Medvednikov 4d31d5882d x64, v2 backends 2019-12-31 19:42:16 +01:00
Alexander Medvednikov da5fb5dcbd Revert "x64, v2 backends"
This reverts commit 81ae54d9bd.
2019-12-31 13:23:12 +01:00
Alexander Medvednikov 81ae54d9bd x64, v2 backends 2019-12-31 13:21:22 +01:00
joe-conigliaro 80da2341aa v: fix unary `+`,`-` & rename token.TokenKind to token.Kind 2019-12-31 10:53:30 +01:00
Alexander Medvednikov 093a025ebf parse_files(); ast.File 2019-12-30 16:55:59 +01:00
Alexander Medvednikov 2d597d7804 array initialization 2019-12-30 10:37:09 +01:00
Alexander Medvednikov 806691c1db for loop; struct decl; struct init; < > <= >= 2019-12-30 08:05:20 +01:00
Alexander Medvednikov 2d2e0307b8 fn call; if expression; bool literals; 100k line program gen
fix

yay

lovely
2019-12-30 05:57:36 +01:00
Alexander Medvednikov 349576b5cd fn call + fn args 2019-12-29 08:47:41 +01:00
Alexander Medvednikov 5a6428f1ff AssignStmt 2019-12-29 06:37:08 +01:00
Alexander Medvednikov b5fe40624c staments + a sum type fix 2019-12-28 18:53:08 +01:00
Alexander Medvednikov 651c7e8de1 cgen tests 2019-12-28 11:55:14 +01:00
Alexander Medvednikov 379c79025b run vfmt on v/ 2019-12-28 10:38:29 +01:00
joe-conigliaro a986321b6d v: update parser / token & split parsing into methods 2019-12-28 09:15:32 +01:00
Alexander Medvednikov 66a07d7fe0 FnDecl, Return, statement block 2019-12-27 18:39:19 +01:00
Alexander Medvednikov d27c5eb345 handle floats 2019-12-27 10:09:06 +01:00
Alexander Medvednikov 1af274a714 test_parser + minor fixes 2019-12-27 10:00:44 +01:00
Alexander Medvednikov 55dbb8b81c v.types module 2019-12-27 09:09:55 +01:00
Alexander Medvednikov 14e9c3c7bb rename compiler2.parser to v.parser etc 2019-12-27 06:09:16 +01:00