Kevin Atkinson
5ef53382ae
Add support for parsing quasi-quotes, doesn't do anything useful yet.
2012-02-03 20:23:49 -07:00
Kevin Cantu
8f367ebfeb
Rename (again) str::unsafe::slice -> str::unsafe::slice_bytes and
...
str::unsafe::safe_slice -> str::unsafe::slice_bytes_safe_range
2012-02-01 21:56:53 -08:00
Kevin Cantu
fceec03da0
Propagating unsafe::slice 3
2012-02-01 21:56:53 -08:00
Kevin Cantu
6156bc56cb
Propagating unsafe::slice 2
2012-02-01 21:56:53 -08:00
Tim Chevalier
e5d095d67e
Change option::t to option
...
Now that core exports "option" as a synonym for option::t, search-and-
replace option::t with option.
The only place that still refers to option::t are the modules in libcore
that use option, because fixing this requires a new snapshot
(forthcoming).
2012-01-31 17:05:20 -08:00
Paul Woolcock
6ba3d24355
Remove ternary operator
...
`expr_ternary`, `ternary_to_if`, and all parses & lexer definitions have
been removed.
2012-01-30 18:21:19 +01:00
Paul Woolcock
e1251f7b00
Change all ternary ops to if/then/else
...
All the files below had at least one instance of the ternary operator
present in the source. All have been changed to the equivalent
if/then/else expression.
2012-01-30 18:21:01 +01:00
Brian Anderson
3321880f13
Merge remote-tracking branch 'killerswan/fixing_strings_2'
...
Conflicts:
src/comp/driver/driver.rs
src/comp/middle/trans/base.rs
src/comp/syntax/parse/lexer.rs
2012-01-27 16:44:40 -08:00
Kevin Atkinson
c5e03e0e59
Keep source file around after parsing.
...
Specifically box the string (to avoid unnecessary copies) and store it
in codemap::filemap.
Remove the hack in driver::diagnostic that rereads the source from the
file and instead just get the source from the filemap.
(This commit is also a prerequisite for issue #1612 )
2012-01-25 16:00:47 -07:00
Kevin Cantu
87320a9f27
Replacing str::unsafe_from_bytes with str::from_bytes (part 4)
2012-01-25 01:20:55 -08:00
Patrick Walton
9ecd5ee81d
rustc: Split diagnostics into "span diagnostics" and "diagnostics".
...
The former contain a codemap (which is per-crate), and the latter don't. This
will be useful in order to allow more than one crate to be compiled in one run
of the compiler.
2012-01-24 21:42:54 -08:00
Patrick Walton
c267821742
rustc: ";" to "," in enums
2012-01-19 18:04:25 -08:00
Patrick Walton
bdb8f6cf52
rustc: "tag" -> "enum"
2012-01-19 14:24:03 -08:00
Tim Chevalier
04a2887f87
Remove '.' after nullary tags in patterns
...
Does what it says on the tin.
The next commit will remove support for this syntax.
2012-01-18 23:17:34 -08:00
Brian Anderson
478134354d
rustc: Rename the lexer's err message to fatal and make it fail
2012-01-13 22:07:55 -08:00
Brian Anderson
f4bd03b998
rustc: Replace the lexer's error handling with diagnostic impl
2012-01-13 22:07:55 -08:00
Brian Anderson
ced0aa13d3
rustc: Extract driver::diagnostic from syntax::codemap
2012-01-13 16:06:56 -08:00
Brian Anderson
f26266e03d
rustc: Refactor codemap::emit_* functions
...
A codemap is only needed when we have a span so put them both into the option.
2012-01-13 15:52:03 -08:00
Marijn Haverbeke
7f62944559
Convert the objects used in the lexer and parser to records + impls
2012-01-13 11:50:53 +01:00
Marijn Haverbeke
34d7f05292
Major clean-up of std::io
...
Use ifaces instead of objs, stop wrapping everything in two (or three)
layers of no-value-added indirection, and remove some of the more
pointless/outdated idioms from the code.
2012-01-11 21:00:11 +01:00
Austin Seipp
a94b1ccacb
Change all uses of 'when' in alt-patterns to 'if'
...
Issue #1396
2012-01-09 19:27:05 -08:00
Graydon Hoare
36c55b20a8
Add support in lexer for utf8 identifiers. No NFKC logic in char yet.
2011-12-29 14:45:18 -08:00
Graydon Hoare
f0dfbe7b1b
Register new snapshots, purge log_err and log_full in favour of log(...).
2011-12-22 17:53:53 -08:00
Graydon Hoare
8b580954fe
Register snapshots and switch logging over to use of log_full or #error / #debug.
2011-12-22 14:42:52 -08:00
Marijn Haverbeke
4f826d81f6
Make 1.f parse as a field access on the integer 1
...
A dot is only considered part of a number when not followed by a letter
Closes #1306
2011-12-16 11:46:57 +01:00
Graydon Hoare
fa9ad984fb
Copy first batch of material from libstd to libcore.
2011-12-13 16:34:50 -08:00
Marijn Haverbeke
a7c6cb7385
Consider variant constructors pure functions for the purpose of purity checking
...
Closes #1269
2011-12-08 10:26:42 +01:00
Marijn Haverbeke
e3eca9174b
Change literal representation to not truncate
...
Also shuffles around the organization of numeric literals and types,
separating by int/uint/float instead of machine-vs-non-machine types.
This simplifies some code.
Closes #974
Closes #1252
2011-12-07 21:08:28 +01:00
Marijn Haverbeke
7655b3c0c6
Stop lexing -1 as a single token
...
And remove the hack that made 1-1 work given that other hack.
Issue #954
2011-12-02 13:57:12 +01:00
Niko Matsakis
adc79e2f44
remove compile-command from local variable blocks
2011-11-17 11:46:13 -08:00
Haitao Li
5a7249c935
Cleanup unused imports
2011-11-10 19:19:40 -08:00
Marijn Haverbeke
1a68a98824
Disallow writing to function arguments again
...
Remove implicit copying hack.
Closes #1118
2011-11-03 10:57:54 +01:00
Marijn Haverbeke
f26e770745
Make 1-1 parse again
...
Issue #954
This is not a very elegant fix -- we should probably do something with
constant folding to handle negative-int alt patterns in the future.
2011-10-07 16:46:44 +02:00
Wade Mealing
f375391cb6
Patch to error instead of crashing when parsing unmatched double quotes
...
Patch to error and fail instead of using all available memory
then crashing to detect the error condition of an unmatched
double quote before the end of a file.
I couldn't get it to show nice error messages, so this may not be
the ideal fix.
A test case for this situation has also been added.
2011-09-27 23:20:31 -07:00
Marijn Haverbeke
133d36f452
Require body of else-less if expressions to be a value-less block
...
For consistency with other constructs that could not possibly return a
value (say, loops).
2011-09-16 18:21:06 +02:00
Josh Matthews
f6fe07d1f3
Add support for negative literals.
2011-09-14 00:47:14 -04:00
Marijn Haverbeke
577d6dd602
Improve lexing of float literals
...
Closes #575
2011-09-13 17:43:01 +02:00
Graydon Hoare
a4815b6742
Factor imports mindlessly.
2011-09-12 16:13:28 -07:00
Marijn Haverbeke
ca1df2b111
Pretty-print for new arg-mode syntax
2011-09-12 12:49:00 +02:00
Marijn Haverbeke
fc6b7c8b38
Reformat for new mode syntax, step 1
...
Long lines were fixed in a very crude way, as I'll be following up
with another reformat in a bit.
2011-09-12 12:04:14 +02:00
Brian Anderson
5c49e4f4e9
Reformat. Issue #855
2011-09-02 22:11:42 -07:00
Brian Anderson
418d09e547
Convert all uses of #ifmt to #fmt. Issue #855
2011-09-01 18:54:03 -07:00
Brian Anderson
ab6bb035e5
Rename std::istr to std::str. Issue #855
2011-09-01 17:27:58 -07:00
Brian Anderson
e824775d53
Remove std::str. Issue #855
2011-09-01 16:09:15 -07:00
Brian Anderson
498e38b705
Convert uses of #fmt to #ifmt. Issue #855
2011-08-31 11:44:06 -07:00
Brian Anderson
3dc2419443
Convert rustc::syntax::codemap to istrs. Issue #855
2011-08-27 15:58:17 -07:00
Brian Anderson
675073c266
Convert parser to istrs. Issue #855
2011-08-27 15:54:46 -07:00
Brian Anderson
26516dc8d2
Convert rustc::syntax::token to istrs. Issue #855
2011-08-27 15:54:45 -07:00
Brian Anderson
58dedcd090
Convert lexer to istrs. Issue #855
2011-08-27 15:54:45 -07:00
Brian Anderson
152cbaade7
Move functions from syntax::ast to syntax::ast_util
...
This leaves syntax::ast just defining the AST, which strikes me as somewhat
nicer
2011-08-22 10:44:04 -07:00