From ecccc0d649088720a8c4af86e1722b9a26ca31dc Mon Sep 17 00:00:00 2001 From: Luqman Aden Date: Sat, 9 Mar 2013 22:37:50 -0800 Subject: Parse inline assembly. --- src/libsyntax/parse/parser.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/libsyntax/parse/parser.rs') diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 99c1c2cb1fe..6076ad0ce0e 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -27,7 +27,7 @@ use ast::{expr_field, expr_fn_block, expr_if, expr_index}; use ast::{expr_lit, expr_log, expr_loop, expr_loop_body, expr_mac}; use ast::{expr_method_call, expr_paren, expr_path, expr_repeat}; use ast::{expr_ret, expr_swap, expr_struct, expr_tup, expr_unary}; -use ast::{expr_vec, expr_vstore, expr_vstore_mut_box}; +use ast::{expr_vec, expr_vstore, expr_vstore_mut_box, expr_inline_asm}; use ast::{expr_vstore_fixed, expr_vstore_slice, expr_vstore_box}; use ast::{expr_vstore_mut_slice, expr_while, extern_fn, field, fn_decl}; use ast::{expr_vstore_uniq, TyClosure, TyBareFn, Onceness, Once, Many}; @@ -1184,6 +1184,14 @@ pub impl Parser { } } hi = self.span.hi; + } else if self.eat_keyword(&~"__asm__") { + self.expect(&token::LPAREN); + let asm = self.parse_str(); + self.expect(&token::COMMA); + let cons = self.parse_str(); + ex = expr_inline_asm(asm, cons); + hi = self.span.hi; + self.expect(&token::RPAREN); } else if self.eat_keyword(&~"log") { self.expect(&token::LPAREN); let lvl = self.parse_expr(); -- cgit 1.4.1-3-g733a5 From 885d0d3d3369bef72590a4d5671c0de83e968dda Mon Sep 17 00:00:00 2001 From: Luqman Aden Date: Sun, 10 Mar 2013 22:34:25 -0700 Subject: Stop parsing __asm__. --- src/etc/vim/syntax/rust.vim | 2 +- src/libsyntax/parse/parser.rs | 8 -------- src/libsyntax/parse/token.rs | 1 - 3 files changed, 1 insertion(+), 10 deletions(-) (limited to 'src/libsyntax/parse/parser.rs') diff --git a/src/etc/vim/syntax/rust.vim b/src/etc/vim/syntax/rust.vim index ccd1ddc2430..f811fbf5855 100644 --- a/src/etc/vim/syntax/rust.vim +++ b/src/etc/vim/syntax/rust.vim @@ -11,7 +11,7 @@ elseif exists("b:current_syntax") endif syn match rustAssert "\ HashMap<~str, ()> { pub fn strict_keyword_table() -> HashMap<~str, ()> { let words = HashMap(); let keys = ~[ - ~"__asm__", ~"as", ~"assert", ~"break", ~"const", ~"copy", -- cgit 1.4.1-3-g733a5