Commit Graph

234 Commits (7a2705d8ce756dff19f080216311b946c95f5567)

Author SHA1 Message Date
Lukas Neubert f30faf2627
scanner: allow \e escape used for ANSI colors (#7177) 2020-12-07 17:21:34 +01:00
yuyi f377710c0b
scanner: minor optimization in `text_scan()` (#7172) 2020-12-07 06:33:41 +01:00
Daniel Däschle 47d0ed308d
parser: prepare for better VLS integration, more accurate parser errors (#7119) 2020-12-04 20:34:05 +02:00
Delyan Angelov 7a8d6a7c7b
scanner: treat warnings as errors on -W too, simillar to the parser 2020-12-04 15:11:35 +02:00
Delyan Angelov eefdf4baa6
scanner: do not warn for \x07 in strings 2020-12-03 14:11:32 +02:00
yuyi 0b96cd50e1
scanner: fix escape `\u` (fix #6849) (#7012) 2020-11-29 17:01:40 +02:00
yuyi f336c2c5cc
scanner: fix error of backslash escaping x in ident_string(fix #6850) (#6994) 2020-11-29 00:39:45 +02:00
Delyan Angelov e6116c47be scanner: guarantee an early exit when the parser/scanner is stuck 2020-11-27 12:44:39 +02:00
Alexander Medvednikov 9b0c96d792 scanner: allow \r after $ 2020-11-27 03:27:34 +01:00
Alexander Medvednikov c27818e247 all: remove remaining broken escape sequences 2020-11-27 03:17:19 +01:00
Alexander Medvednikov 62ee436944 all: remove broken escape sequences after $ in strings 2020-11-27 03:07:37 +01:00
Ned Palacios b957c64905
scanner: store errors and warnings on silent mode (#6883) 2020-11-20 11:44:19 +02:00
Delyan Angelov 7d472d887e scanner: vfmt scanner.v 2020-11-11 17:25:58 +02:00
Delyan Angelov 8c241cb745 checker: check that fns with return values, and matches, do return 2020-11-11 17:23:57 +02:00
Larpon 4051ce869c
all: remove unused enum value and improve error message for `@` tokens in scanner (#6751) 2020-11-05 12:59:49 +02:00
Larpon 785bf40f67
all: remove comp time '@' expansion from scanner (#6746) 2020-11-05 10:12:32 +02:00
Enzo b083f4014b
fmt: fix multiple things and format most of the compiler (#6631)
Format expressions inside string interpolation like the rest (it used to be a+b instead of a + b, not too sure why)
Fix formatting some match branches when there were only one statement inside (it was inlined)
Fix parsing and formatting some comments edge case on struct field init. You should check out this test because the result is a bit different from before. I personally find it more logical but I would understand if the former format was to stay
Fix formatting of void-returning function signature
2020-10-15 22:12:59 +02:00
Alexander Medvednikov 982056894e fmt: use `f(x int, y int)` instead of `f(x, y int)` 2020-10-15 12:00:46 +02:00
Delyan Angelov 8e5067421f vet: accumulate the collected errors manually (fixes CI) 2020-10-06 10:02:35 +03:00
Alexander Medvednikov 256a572cbe vet: fix vet_errors 2020-10-06 07:07:50 +02:00
Alexander Medvednikov 63c9b88e7f vet: remove unnecessary &[]string 2020-10-06 06:43:28 +02:00
Henrixounez 0f1ed1ca09
scanner: add an error for unfinished string literals (#6519) 2020-10-01 16:40:59 +03:00
Alexander Medvednikov 624f22e27e all: mutability check (part 1); enable mutable sumtype args 2020-09-22 05:28:29 +02:00
Swastik Baranwal 077b597bd8
scanner/parser: change error msgs for `\0` and `\x00` and add error for r`byte` and c`byte` (#6436) 2020-09-21 17:34:24 +03:00
Swastik Baranwal 1c886ad067
scanner: add check for `!is_raw` for null `\0` (#6427) 2020-09-19 19:09:18 +03:00
Henrixounez 99574e465d
scanner: allow escape on null character (#6404) 2020-09-18 01:02:06 +02:00
Daniel Däschle 3a146a6dbe
checker: fix error pos on default value (#6338) 2020-09-09 15:34:41 +02:00
Delyan Angelov 47f59d3fb6 v.scanner: fix error line numbers when comments end with CRLF 2020-08-26 11:39:32 +03:00
Nick Treleaven 98c39a37c0
scanner: warn about interpolation for `$f(expr)` (#6179) 2020-08-22 05:48:06 +02:00
Uwe Krüger 9a5f040f72
all: handle `<-` arrow token for channel operations (#6152) 2020-08-17 20:12:00 +02:00
Delyan Angelov 36eae1c175
builtin: x.vstring() instead of string(x) (#6102) 2020-08-10 18:05:26 +02:00
Maciej Michalec 449c98e861
scanner: floats without fraction (fix #5262) (#6064) 2020-08-05 05:11:29 +02:00
Swastik Baranwal 8b66816bdc
scanner: more checks for `_` as num_sep (#5992) 2020-07-28 16:09:19 +10:00
Delyan Angelov a552674254 vvet: fix segfault on `v vet .` 2020-07-25 15:57:57 +03:00
Alexander Medvednikov 632e27a4a9 all: fix a big mutability bug and update all mutable vars 2020-07-23 23:16:36 +02:00
Enzo 8a855ccae1
fmt,vet: handle `var in [single_value]` (#5882) 2020-07-19 19:58:34 +02:00
Swastik Baranwal f3a505b558
scanner: add check for `_` in num literals (#5849) 2020-07-16 17:29:07 +03:00
Delyan Angelov c891014c77 scanner: reduce memory, increase speed for long commented sections 2020-07-11 21:27:39 +03:00
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 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 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 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
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
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
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 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