Delyan Angelov
8b8cd13929
parser: add some infrastructure for more specific errors
...
* compiler: change s.line_nr in just one place, so that s.last_nl_pos will be updated in tandem too.
* Cleanup spurious spaces.
* Store ScannerPos info inside the cached tokens.
Use the stored information when errors are encountered.
* Fix #2079 ( cannot use type...in assignment ).
* do not store scannerpos per each token, instead rescan the source once on error to get the position.
* compiler: implement highlighting for errors. Use only line/col info stored in the cached tokens.
* fixing building on windows
* Split can_show_color to _nix and _win files.
2019-09-29 04:33:23 +03:00
Delyan Angelov
a4cbe78d97
compiler: streamline main function handling
...
* compiler: streamline C main function generation
* fix most tests
* compiler: fix for 'go update()' in graph.v . More precise parser error messages.
* Fix temporarily examples/hot_reload/message.v by using os inside it (os.clear).
* Make graph.v easier to quickly modify by defining y outside the loop.
* Fix failure of /v/nv/compiler/tests/defer_test.v when run with 'v -g' (#line directive was not on its own line, but right after } ).
* Do not pass the os.args to tests, even if the tests import os (they are more stable when run in a controlled environment).
* fix declared and not used in the js backend.
* fix js main => main__main too.
2019-09-28 20:42:29 +03:00
Delyan Angelov
0160c7a89d
compiler: change s.line_nr in just one place in tandem with s.last_nl_pos
...
* compiler: change s.line_nr in just one place, so that s.last_nl_pos will be updated in tandem too.
* v test v: run repl tests again
* Show gcc version in both windows gcc cases in a) github actions, and b) travis .
* adding inline to is_name_char is_nl and contains_capital does not help actually, just increases slightly binary size.
* Cleanup spurious spaces.
2019-09-28 20:41:11 +03:00
Alexander Medvednikov
1821dac795
compiler: remove old generics hack; disable generics and repl tests for
...
now
2019-09-28 02:29:04 +03:00
Alexander Medvednikov
dd58298500
compiler: fix interfaces after the recent tokens change
2019-09-27 21:01:08 +03:00
joe-conigliaro
ad99b82930
compiler: make vgen use strings.Builder & allow parser creation from string
2019-09-27 14:02:01 +03:00
Alexander Medvednikov
8f9c0b621e
parser: fix columns in errors
2019-09-27 05:27:57 +03:00
Alexander Medvednikov
da43267e09
parser: cached tokens (second step)
2019-09-27 04:01:12 +03:00
Alexander Medvednikov
a45255337d
bring back "parser: cache tokens (first step)"
...
This reverts commit 0fcdd7db35
.
2019-09-27 04:00:48 +03:00
Alexander Medvednikov
0fcdd7db35
Revert "parser: cache tokens (first step)"
...
This reverts commit 8992707fbb
.
2019-09-26 06:05:18 +03:00
Alexander Medvednikov
8992707fbb
parser: cache tokens (first step)
2019-09-26 05:20:08 +03:00
Alexander Medvednikov
04e4018228
compiler: small fixes + some logic for freeing strings
2019-09-26 03:24:58 +03:00
Alexander Medvednikov
55d09d23b4
compiler: rename cerror() to verror(); some small optimizations
2019-09-24 19:38:04 +03:00
Alexander Medvednikov
a232b215a7
double quotes for denoting strings
2019-09-21 17:18:02 +03:00
Alexander Medvednikov
90e26a34c5
scanner: better interpolation names + disable vweb html test for now
2019-09-21 01:27:13 +03:00
Alexander Medvednikov
6ebd62020a
double quote
2019-09-21 01:23:53 +03:00
Delyan Angelov
f042dfb861
compiler: fix line numbers in unused variable error messages
2019-09-20 13:42:37 +03:00
Alexander Medvednikov
1397d532c6
compiler: check if mutable receivers are modified
2019-09-17 13:10:43 +03:00
Alexander Medvednikov
849bef987c
more C warnings fixed
2019-09-15 15:53:57 +03:00
Alexander Medvednikov
5cc81b91cb
JavaSript backend (early stage)
2019-09-15 03:49:57 +03:00
unknown-v
26edb7d797
scanner: @FILE escape \
2019-09-11 20:16:42 +03:00
Henrixounez
af60f9ead4
compiler: escapes quote on literals
2019-09-11 15:48:08 +03:00
Delyan Angelov
08262b5c43
compiler: stage 1 of printing shortened commit on v --version
2019-09-10 23:08:48 +03:00
Delyan Angelov
0ade45db08
compiler: print the offending source line on error
2019-09-10 13:08:43 +03:00
Delyan Angelov
d5665997e0
compiler: @FILE, @LINE, @FN, @COLUMN
2019-09-07 13:44:41 +03:00
Alexander Medvednikov
0e2c41e0f9
replace *Foo with &Foo everywhere
2019-09-01 22:51:16 +03:00
Henrixounez
52c2763ee3
compiler: prompt error if trying to use f for floats
2019-08-29 21:39:58 +03:00
Delyan Angelov
83954acfd4
compiler: use cerror instead of panic.
2019-08-29 11:50:18 +03:00
Alexander Medvednikov
df593870ae
scanner: fix a string overflow
2019-08-23 03:28:25 +03:00
Delyan Angelov
77b31de117
compiler: produce errors in C "filepath:line:column:" format
2019-08-22 14:15:11 +03:00
Alexander Medvednikov
fe2d2bd2a3
fmt: remove trailing spaces
2019-08-17 22:21:43 +03:00
Marco Böttcher
d6d17fe3f2
scanner: string interpolation with $var at the end
2019-08-16 17:06:27 +03:00
Marco Böttcher
87216cff63
compiler: '\$' escape
2019-08-15 12:41:23 +03:00
Julian Schurhammer
1864e92ff4
parser: disallow statements after a return, branch check $if, $else, switch, and loops correctly
2019-08-10 10:26:42 +02:00
Alexander Medvednikov
ae0e3efb8e
scanner: experimental ≠ etc support
2019-08-09 09:32:51 +02:00
Alexander Medvednikov
34e0b164eb
make function arguments immutable by default
2019-08-07 08:59:00 +02:00
Henrixounez
347e59d604
compiler: fix scanner overflowing string on numbers without newline
2019-08-06 11:50:09 +02:00
Alexander Medvednikov
350e13679c
force `()` in complex bool expressions: `(a && b) || c` instead of `a && b || c`
2019-08-05 03:22:28 +02:00
Alexander Medvednikov
ee437de8d3
type name check fixes
2019-08-04 09:38:46 +02:00
Alvydas Vitkauskas
69084b0c57
change error printing format
2019-08-02 23:26:23 +02:00
Alexander Medvednikov
207bab5f79
generics, vweb, comptime codegen, etc
2019-07-29 18:24:48 +02:00
Emily Hudson
90bb48db5d
interactive debugging
2019-07-26 16:45:16 +02:00
Delyan Angelov
61fea2d82a
#! support on Unix systems
2019-07-25 12:27:59 +02:00
Alexander Medvednikov
c28a490c17
@ for escaping keywords
2019-07-24 02:28:29 +02:00
d2verb
88758082d2
scanner.v: refactoring
2019-07-24 00:06:48 +02:00
Alexander Medvednikov
390394b56b
string: make substr() copy the data, like in Java and C#; remove .cstr()
...
this makes managing memory used by strings much easier
V strings are now fully compatible with C strings
2019-07-22 17:03:45 +02:00
Alexander Medvednikov
c35adbea91
vfmt fixes
2019-07-17 21:00:39 +02:00
Alexander Medvednikov
a9463a180d
new match statement
2019-07-17 02:41:08 +02:00
Igor Pershikov
3f506714ec
Fix bug with BOM
2019-07-17 00:05:04 +02:00
Alexander Medvednikov
f7dbbf5810
re-write map.v and update the compiler
2019-07-14 22:08:17 +02:00