about summary refs log tree commit diff
path: root/src/comp/syntax/parse/parser.rs
AgeCommit message (Collapse)AuthorLines
2011-09-01Make resolve recognize upvarsMarijn Haverbeke-1/+0
Upvars are now marked with def_upvar throughout, not just when going through freevars::lookup_def. This makes things less error-prone. One thing to watch out for is that def_upvar is used in `for each` bodies too, when they refer to a local outside the body.
2011-08-29Implement non-internal ivecsMarijn Haverbeke-4/+2
Vectors are now similar to our old, pre-internal vectors, except that they are uniquely owned, not refcounted. Their name should probably change too, then. I've renamed them to vec in the runtime, will do so throughout the compiler later.
2011-08-27Convert rustc::syntax::codemap to istrs. Issue #855Brian Anderson-4/+4
2011-08-27Convert parser to istrs. Issue #855Brian Anderson-199/+200
2011-08-27Convert rustc::syntax::eval to istrs. Issue #855Brian Anderson-3/+3
2011-08-27Convert rustc::syntax::token to istrs. Issue #855Brian Anderson-10/+14
2011-08-27Convert lexer to istrs. Issue #855Brian Anderson-5/+6
2011-08-27Convert rest of the AST to istrs. Issue #855Brian Anderson-6/+10
2011-08-27Convert ast::ident to istr. Issue #855Brian Anderson-18/+31
2011-08-27Convert std::map::new_str_hash to istrs. Issue #855Brian Anderson-43/+44
2011-08-27Convert std::io to istrs. Issue #855Brian Anderson-1/+1
2011-08-27Convert std::fs to istrs. Issue #855Brian Anderson-1/+3
2011-08-25Remove remaining use of 'pred' and make 'pred' a non-reserved word. Huzzah\!Tim Chevalier-6/+0
2011-08-25Remove typestate workaround that's no longer necessaryTim Chevalier-4/+1
2011-08-25Support unchecked blocksTim Chevalier-7/+19
This patch supports the syntax unchecked { ... } to disable purity checking within a block. Presumably it will only be used within a declared "pure fn". However, there is no checking that it doesn't occur elsewhere, and it would be harmless for it to do so. I went with Lindsey's suggestion for the syntax, but it's subject to change. This allows you to write code that uses predicates that call arbitrary Rust functions, but you must declare your intentions by wrapping it in an unchecked { ... } block. The test case run-pass/unchecked-predicates.rs demonstrates how to do that.
2011-08-24hmm, this should have been in the last commit. Oops.Tim Chevalier-0/+1
2011-08-24Change "pred" to "pure fn" (but still accept "pred")Tim Chevalier-4/+8
This is part 1 of changing the "pred" keyword to "pure fn". Right now, the compiler accepts both "pred" and "pure fn".
2011-08-23Add kind-checking for assign-op, copy, ret, be, fail exprs. Fix caught ↵Graydon Hoare-1/+1
kinding-violations in rustc and libstd.
2011-08-23Fix pretty-printing of istr literals. Issue #855Brian Anderson-1/+2
2011-08-22Move functions from syntax::ast to syntax::ast_utilBrian Anderson-15/+16
This leaves syntax::ast just defining the AST, which strikes me as somewhat nicer
2011-08-22Implement pattern guardsMarijn Haverbeke-1/+5
The syntax is alt x { mypat where mycond { ... } } The condition may refer to any of the variables bound by the pattern. When a guard fails, pattern-matching continues with the next pattern. Closes #857
2011-08-22Drop arguments on the caller side, not the calleeMarijn Haverbeke-1/+2
This makes it easier for the caller to optimize the take/drop away for temporary values, and opens up new possibilities for alias handling. Breaks tail calls.
2011-08-20Stop parsing ~[] vector syntaxBrian Anderson-8/+0
2011-08-20Stop parsing .() indexesBrian Anderson-7/+0
2011-08-20ReformatBrian Anderson-320/+298
This changes the indexing syntax from .() to [], the vector syntax from ~[] to [] and the extension syntax from #fmt() to #fmt[]
2011-08-19Parse x[y] as indexesBrian Anderson-0/+7
2011-08-19Getting rid of superfluous log statement.Lindsey Kuper-2/+0
2011-08-18Change ast::ty_ivec, ty::ty_ivec to ty_vecBrian Anderson-1/+1
2011-08-18Remove seq_kind from ast::expr_vecBrian Anderson-4/+4
2011-08-18Remove or _-prefix all unused function argumentsMarijn Haverbeke-11/+8
This should make the compilation process a bit less noisy.
2011-08-17Stop parsing old-style vec typesBrian Anderson-5/+0
2011-08-17Allow multiple imports in a single statementBrian Anderson-2/+37
Like so: import foo::{bar, baz}; Issue #817
2011-08-17Allow multiple exports in a single export statement. Issue #817Brian Anderson-2/+3
2011-08-16Remove support for expr[T] syntax.Erick Tryzelaar-11/+1
2011-08-16Remove support for foo[T] declaration syntax.Erick Tryzelaar-5/+1
2011-08-16Remove type parameter and vec/port/chan foo[T] syntax.Erick Tryzelaar-19/+6
2011-08-16Port the compiler to the expr foo::<T> syntax.Erick Tryzelaar-2/+2
2011-08-16Port the compiler to foo<T> decl syntax.Erick Tryzelaar-8/+8
2011-08-16Port the compiler to the typaram foo<T> syntax.Erick Tryzelaar-30/+30
2011-08-16Change expr foo[T] syntax to foo::<T>.Erick Tryzelaar-2/+29
This preserves the old syntax for now.
2011-08-16Change declaration type parameter syntax to foo<T>.Erick Tryzelaar-0/+3
2011-08-16Change type parameter syntax to foo<T>.Erick Tryzelaar-10/+57
This preserves the old syntax for now.
2011-08-16Removing tasks, ports and chans from the compiler.Eric Holk-20/+0
2011-08-16Rename std::ivec to std::vecBrian Anderson-14/+14
2011-08-16Revert "Revert "Make [] and ~[] both construct ivecs""Brian Anderson-1/+1
This reverts commit 28bf19021981bd41a365aaa684c71afd2cf079d7. Should work now that tests are all using ivecs
2011-08-16Removed trans_comm.rs from the compiler. Updating aio/sio to work with the ↵Eric Holk-39/+0
new chan and port system, started on a networking module for the standard library.
2011-08-15The wonky for...in... whitespace was bothering me. Sorry!Lindsey Kuper-3/+3
2011-08-15Parse type inferred lambda-block expressions.Michael Sullivan-7/+41
2011-08-15Add operator 'copy', translates as fall-through.Graydon Hoare-0/+5
2011-08-15Use span stacks to track macro expansion for less troublesome error messages.Paul Stansifer-1/+2