Commit Graph

253 Commits (870ed86afc4023d46ca2433285de20b4c2e5d088)

Author SHA1 Message Date
Delyan Angelov 022cc72740 scanner: parse multiple comments and long strings without a stackoverflow 2020-07-11 20:52:08 +03:00
Alexander Medvednikov 2a696cb837 vet: prohibit spaces before `)` 2020-07-11 12:14:19 +02:00
Alexander Medvednikov 549d7a487d tests: fix scanner_test.v 2020-07-11 11:51:58 +02:00
Alexander Medvednikov d4d552fb00 vet: prohibit spaces after `(` 2020-07-11 11:41:39 +02:00
Delyan Angelov 2fb5c91f4d scanner: remove error check for embedded \x00 chars in c'literals' 2020-07-10 21:42:03 +03:00
Delyan Angelov d2a2db7bff vfmt: format scanner.v 2020-07-04 16:14:30 +03:00
Uwe Krüger 6c022db786
scanner: fix string interpolation for '$a.b().c' (#5612) 2020-07-02 00:02:59 +02:00
yuyi 2f614ad79f
parser: optimize cross assign using expr.str() (#5604) 2020-07-01 16:43:13 +02:00
yuyi 6c5b638202
parser: fix array cross assign (fix #5577) (#5591) 2020-07-01 12:11:03 +02:00
Delyan Angelov 78e1127d99
cgen: treat the main module like any other v module 2020-07-01 00:53:53 +02:00
Delyan Angelov fcd73bcb63 scanner: ignore CR signs in string literals 2020-06-23 21:10:58 +03:00
Uwe Krüger 3b6e66db0d
fmt: further fixes for string interpolation and builtin macros 2020-06-18 18:48:23 +02:00
Adam Stankiewicz b3fc462a78
scanner: fix parsing multiple .amp 2020-06-13 00:01:44 +02:00
Delyan Angelov 8d3f680d07 vdoc: implement .toplevel_comments parsing mode 2020-06-06 19:05:26 +03:00
joe-conigliaro 34af7ccba9
scanner: cut keyword lookups in half 2020-06-06 19:49:50 +10:00
Alexander Medvednikov fb3e52ca63 all: `!is` operator 2020-06-02 16:18:12 +02:00
Delyan Angelov ae8f7cf569 tests: fix some tests, that failed due to the stricter immutable checks 2020-06-01 18:24:38 +03:00
Delyan Angelov 86862d6a94 checker: remove mod_file_cacher exception 2020-06-01 17:43:03 +03:00
Delyan Angelov 75b8822f06 scanner: prevent infinite looping, when reaching .eof due to parser bugs 2020-05-28 19:22:11 +03:00
Delyan Angelov f6bdb3ae81 v.vmod: cleanup vmod.mod_file_cacher API 2020-05-28 01:38:11 +03:00
Larpon 6ca53d7b39 scanner: improve @FN substitution for anon functions 2020-05-27 12:05:50 +03:00
Uwe Krüger 013fdb8a4b
checker: restrict numeric promotions to cases where no data is lost 2020-05-27 05:42:48 +02:00
yuyi 23c0bb600c
scanner: fix vmod_file on windows 2020-05-27 03:32:39 +02:00
Delyan Angelov 3cfdd2a4cd scanner: add support for @VMOD_FILE 2020-05-26 23:39:15 +03:00
Larpon 31ba64b409
scanner: add support for `@STRUCT` compile time substitution 2020-05-26 15:35:11 +02:00
Delyan Angelov b0cfd3fa67
parser: reimplement [flag] enum support. Add p.vcodegen too 2020-05-26 00:00:48 +03:00
Larpon 09dc2eed82
scanner: add support for '@MOD' 2020-05-25 19:33:41 +03:00
Ruofan XU b2b0461218
scanner: fix err pos related to num literal 2020-05-21 18:43:57 +02:00
Ruofan XU aba09a7e4d
scanner: fix err pos related to num literals 2020-05-21 16:20:36 +03:00
Delyan Angelov ac396ea02f http: cleanup backend_nix.c.v, fixes vpm too 2020-05-20 12:04:28 +03:00
yuyi 7f4cf08516
parser: check `(mut f Foo)` syntax 2020-05-17 13:51:18 +02:00
Larpon aa30549337
scanner: fill out '@FN' placeholder at compile time while scanning 2020-05-16 14:20:19 +02:00
yuyi b1511ce995
parser: optimize no main file process 2020-05-13 14:02:04 +02:00
eyelash 72dfe11fa5
scanner: add a colon to error messages (#4818) 2020-05-10 16:29:15 +02:00
Alexander Medvednikov c64f8b0d1f parser/checker: pub: struct fields 2020-05-09 15:16:48 +02:00
yuyi e0e064ff08
scanner: fix string slash line breaks error 2020-05-04 10:19:23 +02:00
Delyan Angelov 0b750a234f repl: fix for single lines ending with // comment 2020-05-03 20:48:46 +03:00
yuyi de272654f1
repl: fix import xxx with no fn main error 2020-05-01 18:12:18 +02:00
Enzo Baldisserri 50491670af
fmt: fix formatting backtick char literal 2020-04-30 09:33:43 +02:00
Henrixounez 0dc7a57e1f
scanner: prevent panic with string starting on first character 2020-04-28 18:57:16 +02:00
Delyan Angelov e67bf674e3 scanner: cleanup, only v.parser now depends on v.scanner 2020-04-27 16:08:04 +03:00
yuyi 2574dce174
all: fix remaining `[]array` warnings 2020-04-26 16:25:54 +02:00
Alexander Medvednikov a48080afec parser: deprecate import(); replace remaining import()s 2020-04-26 07:36:02 +02:00
yuyi 541b058e90
all: use `a !in b` instead of `!(a in b)` 2020-04-26 06:39:23 +02:00
Ruofan XU b0e498bf0b
scanner: refactor ident_dec_number 2020-04-18 17:49:27 +02:00
Daniel Däschle 1a4113d245
checker: store errors in []Error 2020-04-13 01:56:01 +02:00
Ned Palacios db2c656da8
scanner: `!in` token 2020-04-12 07:30:26 +02:00
Alexander Medvednikov 581d836de6 !in operator 2020-04-11 21:31:54 +02:00
yuyi c1aba95d7d
parser: refactor script & repl handling 2020-04-11 15:06:26 +03:00
Alexander Medvednikov 053de0b8e3 checker: check variable mutability 2020-04-11 04:09:41 +02:00
Daniel Däschle 32550c6d69
scanner: even better error messages 2020-04-10 00:09:34 +02:00
Delyan Angelov ef19aa1de6 assert: fix line position, pretty print float literals and casts 2020-04-08 05:47:29 +03:00
Daniel Däschle fe0942043c
checker: check if BranchStmt is in a loop 2020-04-07 12:29:11 +02:00
Delyan Angelov 3b3d248637 scanner: use formatted errors for s.error too 2020-04-06 19:58:32 +03:00
Delyan Angelov 7a99949f0e errors: print more informative and pretty errors 2020-04-06 19:40:20 +03:00
Alexander Medvednikov e464c4acc5 vfmt: more fixes + run on cgen.v 2020-04-05 18:03:36 +02:00
Alexander Medvednikov df45932c03 vfmt: fix same line stmt comments 2020-04-05 16:38:33 +02:00
Alexander Medvednikov 97db4c0e9a vfmt: comments and other fixes 2020-04-05 02:08:13 +02:00
Delyan Angelov 31c4b1cda6 v2: compile vfmt again; consistent colored error messages 2020-04-03 18:42:22 +03:00
yuyi 5e6aa5371a
scanner: minor optimization (#4211) 2020-04-03 09:46:54 +03:00
Delyan Angelov 084f853a2a
v2: enhance version with current git commit hash. Cleanup redundant code. 2020-04-02 13:31:02 +02:00
yuyi 86ea886ad7
scanner: uniform bool type variable names 2020-04-02 12:23:18 +02:00
yuyi 24499aa6de
scanner: minor refactoring 2020-04-02 09:27:00 +02:00
yuyi b28e372106
scanner: small optimization 2020-04-01 12:11:52 +02:00
Delyan Angelov 5b990078f9
more precise support for internal module tests 2020-03-31 23:42:30 +02:00
Alexander Medvednikov 050ec5d9e3 parser: do not allow string{} outside of builtin 2020-03-31 21:03:21 +02:00
SleepyRoy 9b9c1cc834
scanner: fix number literal calling method 2020-03-31 12:47:32 +02:00
Delyan Angelov e09447d011
v and v2: support @VEXE 2020-03-28 21:51:45 +01:00
Delyan Angelov 2a7bc63919
vmft2: support for multiline comments, CompIf, AssertStmt, octal literals 2020-03-24 22:18:58 +01:00
yuyi 2f27758a4b
os: realpath => real_path 2020-03-20 16:41:18 +01:00
Alexander Medvednikov 843bb6dac1 cgen: lots of fixes 2020-03-15 00:46:08 +01:00
Alexander Medvednikov 4470252913 parser: fix import's position 2020-03-11 18:52:55 +01:00
yuyi 783dee1f48
os: merge with filepath 2020-03-07 22:26:26 +01:00
yuyi ea10f44fe6
os api: flush_stdout => flush 2020-03-03 00:00:30 +01:00
Alexander Medvednikov a15dcbfb2d checker: set expected_type in several places 2020-02-29 18:25:38 +01:00
Alexander Medvednikov d5faf36aa9 fmt: comments 2020-02-29 17:51:38 +01:00
lydiandy a485533dc9
make sure scanner and parser both check BOM 2020-02-29 15:05:25 +01:00
Major Taylor ee9cfe22ec
scanner: fix a typo in right_shift 2020-02-28 17:16:24 +01:00
SleepyRoy bc3d1eaf6e
scanner: simplify and unify style 2020-02-25 22:58:51 +01:00
SleepyRoy 05ed6c57b6
scanner: add check for wrong decimal numbers 2020-02-25 14:33:29 +01:00
SleepyRoy b17e49ad25
scanner: add check for bin/oct/hex with wrong digits 2020-02-25 11:11:12 +01:00
SleepyRoy f859c7f93e
scanner: fix special case - `e` or `E` at the end 2020-02-25 11:10:05 +01:00
SleepyRoy 794ee6fc9d
scanner: fix bin/oct/hex without number parts 2020-02-24 18:02:36 +01:00
SleepyRoy 96da5b33c0
scanner: fix special case - 0 at the end 2020-02-24 18:01:51 +01:00
SleepyRoy 7d2eb4f604
scanner: make `0o` prefix the only way to define octals 2020-02-23 23:43:04 +01:00
yuyi adb1d3f8c9
scanner: enable 0oxx to handle octals 2020-02-23 12:33:07 +01:00
Alexey c85ccad0a6
string: update check if a char is a space 2020-02-20 20:14:54 +01:00
Alexander Medvednikov 31c1483b9d vfmt2: fn args, comments 2020-02-18 20:20:15 +01:00
yuyi 6849a4e770
filepath: path separator (#3756) 2020-02-17 20:31:23 +01:00
penguindark 80861f2219
scanner: exponent without sign 2020-02-17 02:35:01 +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 8dd905a14d v2: more parser fixes 2020-02-13 14:08:19 +01:00
Alexander Medvednikov 9d46fb9f90 v2: [] expr for known arrays; p.expected_type 2020-02-12 17:39:51 +01:00
Alexander Medvednikov d66bc24e7f remove `as` casts for basic types 2020-02-07 22:10:48 +01:00
Alexander Medvednikov 9b60a50d07 v2: maps, <<, >>, method calls 2020-02-04 12:50:58 +01:00
Shun Sakai c8c43a2475 update copyright year 2020-01-23 21:04:46 +01:00
joe-conigliaro 543e8dc78a
v2: fix bug in scanner, introduced in da9b639 (_ in num literals) 2020-01-23 21:47:13 +11:00
penguindark da9b6394e8 0bxxxx binary literal support; _ in literals (1_000_000) 2020-01-23 03:28:25 +01:00
joe-conigliaro 80da2341aa v: fix unary `+`,`-` & rename token.TokenKind to token.Kind 2019-12-31 10:53:30 +01:00
Alexander Medvednikov c915c58d12 local vars + Parser.errror() 2019-12-29 07:14:29 +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 14e9c3c7bb rename compiler2.parser to v.parser etc 2019-12-27 06:09:16 +01:00