Paul Stansifer
4c2bf8e4a7
The parser is represented by a class now.
2012-05-23 16:23:11 -07:00
Michael Sullivan
15cef374b9
Get rid of the >>> operator and make >> logical or arithmetic depending on the signedness. Closes #2417 .
2012-05-22 14:59:15 -07:00
Niko Matsakis
0f969da882
port some code to use dvec
2012-05-18 20:00:50 -07:00
Lindsey Kuper
b8880e3254
Remove be
keyword.
...
Closes #2227 .
2012-05-15 10:41:14 -07:00
Tim Chevalier
5428a22b95
First cut at dtors for classes
...
Classes with dtors should compile now. Haven't yet tested
whether they actually run correctly.
Beginnings of support for #2295 , though that won't be done until
there's more test cases and resources are removed.
2012-05-14 14:26:10 -07:00
Paul Stansifer
13c924c049
Remove do { ... } while ...
from the language.
2012-05-10 15:09:33 -07:00
Marijn Haverbeke
96a159a6ea
Support visibility modifiers and attributes on view items
...
Issue #1893
Tangentially, issue #2357
2012-05-08 23:14:24 +02:00
Marijn Haverbeke
5c0577f233
Import ast::* in parser.rs
...
And make the code look a lot less awkward.
2012-05-08 16:09:40 +02:00
Marijn Haverbeke
b619954457
Start parsing pub/priv on regular items
...
Issue #1893
2012-05-08 16:09:40 +02:00
Marijn Haverbeke
df3bf7c2a0
parser: Consolidate some duplicated code
2012-05-08 16:09:40 +02:00
Niko Matsakis
8a9df5aa38
make it illegal to implicitly capture mutable variables
...
this is the final part of #1273
2012-05-07 13:22:42 -07:00
Niko Matsakis
50ec6bd2c3
new cap clause syntax
2012-05-04 12:33:08 -07:00
Niko Matsakis
cfa09d35a3
Revert "allow fn exprs to omit arg types"
...
This reverts commit 1ba4ca4c4a
.
2012-05-03 14:42:34 -07:00
Niko Matsakis
1ba4ca4c4a
allow fn exprs to omit arg types
...
also, avoid using type variables for fn args with omitted types
unless necessary. This will be important for bound regions in
fn types.
fixes #2093
2012-05-03 14:32:32 -07:00
Niko Matsakis
2db4259b35
Stop inferring bot/static when types/regions are unconstrained.
...
Also, some other changes that came up along the way:
- add a 'blk' region for the current block.
- detect unused type/region variables.
2012-04-30 19:53:02 -07:00
Brian Anderson
5eca3c2210
parser: More refactoring of restricted value name checking
2012-04-27 16:45:54 -07:00
Brian Anderson
21dc41649b
parser: Remove a restricted keyword check
...
I can't find a way to trigger this error
2012-04-27 16:45:54 -07:00
Brian Anderson
48368c5a07
test: Add test for two restricted keyword cases
2012-04-27 16:45:54 -07:00
Brian Anderson
bde5a842ce
parser: Make parse_value_path use parse_value_ident
2012-04-27 16:45:54 -07:00
Brian Anderson
8ab9efe262
parser: Rewrite parse_path_without_tps so it knows beforehand which is the last ident
...
Needed to centralize all keyword-as-value parsing in parse_value_ident
2012-04-27 16:45:54 -07:00
Brian Anderson
beece25abe
parser: Fix lookahead of > 1 token
2012-04-27 16:45:54 -07:00
Brian Anderson
345a21916c
syntax: Refactor ident parsing
2012-04-27 16:45:54 -07:00
Tim Chevalier
8e15640ada
Refactor operator precedence code
...
Use functions instead of a dynamically created table to determine
operator precedence. Gets rid of a FIXME in syntax::parse::prec.
Change precedences from int to uint while we're at it, since
don't use negative precedences.
2012-04-26 16:16:18 -07:00
Niko Matsakis
825fd1808e
lots of work to make iface/impls parameterized by regions
...
- paths can now take region parameters, replacing the dirty hack
I was doing before of abusing vstores. vstores are now a bit
of a hack though.
- fix various small bugs:
- we never checked that iface types were compatible when casting
to an iface with `as`
- we allowed nonsense like int<int>
- and more! (actually that may be it)
2012-04-25 19:26:56 -07:00
Brian Anderson
c9e3f387f4
syntax: Divide keywords into contextual/restricted. No bad words
2012-04-24 22:58:00 -07:00
Brian Anderson
98ac8d4625
syntax: Clean up the bad_expr_word functions
2012-04-24 21:12:16 -07:00
Brian Anderson
7ee90cc7be
syntax: Rename is_word to is_keyword, etc.
2012-04-24 21:08:49 -07:00
Tim Chevalier
f7641286b2
Allow classes to be cast to ifaces that are in the same crate
...
I had to xfail one existing test case (class-implements-int) because,
I think, of the same bug described in #2272 .
2012-04-23 21:15:03 -07:00
Marijn Haverbeke
a872a99bfe
Simplify representation of ast::path
2012-04-23 13:04:46 +02:00
Brian Anderson
512927573e
syntax: Replace token::DOLLAR_PAREN, DOLLAR_NUM with just DOLLAR
...
Figure the rest out in the parser
2012-04-22 17:24:49 -07:00
Brian Anderson
7321c17171
syntax: Eliminate token::POUND_LT, POUND_LBRACE
...
Use lookahead in the parser
2012-04-22 15:19:14 -07:00
Brian Anderson
7235f3cee2
syntax: Eliminate 'mutable' keyword. Closes #2254
2012-04-21 14:27:20 -07:00
Tim Chevalier
37b0549730
Add new syntax for patterns that match the head constructor only
...
Adds a new kind of pattern C(*) where C is a constructor that may
have any number of fields. This pattern matches any value
constructed with C, without binding names for any of the fields.
Closes #1701 .
2012-04-20 00:56:46 -07:00
Brian Anderson
7fa7e56341
syntax: Move fn spanned into ast_util
2012-04-19 21:58:45 -07:00
Brian Anderson
bcbcbad774
syntax: Extract some functions into mod common
2012-04-19 21:58:45 -07:00
Brian Anderson
628e80d525
syntax: Extract attribute parsing to its own mod
2012-04-19 21:58:45 -07:00
Niko Matsakis
3d6c79109e
update syntax to include a slash
2012-04-19 21:01:11 -07:00
Niko Matsakis
3c995fb8f3
make nominal types optionally parameterized by a self region.
...
Issue #2201 .
2012-04-19 21:01:11 -07:00
Tim Chevalier
31ff64c62d
Annotate FIXMEs in parser
...
Also, get rid of two FIXMEs by refactoring some code, and moving the
call_expr check for be expressions into typeck, where it seems to
make more sense.
2012-04-19 19:17:59 -07:00
Brian Anderson
b9ae0c555b
syntax: Funnel all words through a single keyword table
2012-04-19 16:59:28 -07:00
Brian Anderson
9a8a04629e
syntax: Put the main parser interface in mod parse
2012-04-18 10:50:50 -07:00
Brian Anderson
2c0cb901c8
syntax: Begin moving functions from mod parser to mod classify
2012-04-18 10:50:50 -07:00
Brian Anderson
d51973a6a6
syntax: Move some functions from parser to token
2012-04-18 10:50:50 -07:00
Brian Anderson
476d5a099d
syntax: Extract prec mod from parser mod
2012-04-18 10:50:50 -07:00
Brian Anderson
321ccc123d
syntax: Add explicit exports in parser mods
2012-04-17 20:10:58 -07:00
Brian Anderson
fac7fcc123
syntax: Remove extra 'mut' from bad word table
2012-04-17 14:22:47 -07:00
Niko Matsakis
35a93e61d4
rewrite region resolution so it takes place in typeck
2012-04-16 19:48:00 -07:00
Brian Anderson
2319c2d1ba
syntax: lexer doesn't need a codemap
2012-04-15 03:57:24 -07:00
Brian Anderson
0e87f9ed02
syntax: Eliminate token's dependency on lexer
2012-04-15 03:44:32 -07:00
Tim Chevalier
1adc26d5e7
Annotate FIXMEs in syntax::ast and syntax::ast_util
...
The main non-comment change was to change simple_path to path,
as per a FIXME in ast.
2012-04-13 01:46:56 -07:00