83 Commits

Author SHA1 Message Date
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