about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2017-01-22 09:09:33 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2017-01-22 21:37:40 +0000
commit31417efcd3e739b48c1cf78214e8c4ff82dc424f (patch)
tree4413d6b5f496231eb9590bac942271a2bc197d01
parent2dc60b1180b2974b8966c33100e9541845e1d2e8 (diff)
downloadrust-31417efcd3e739b48c1cf78214e8c4ff82dc424f.tar.gz
rust-31417efcd3e739b48c1cf78214e8c4ff82dc424f.zip
Remove crate `proc_macro_tokens`.
-rw-r--r--mk/crates.mk3
-rw-r--r--src/Cargo.lock7
-rw-r--r--src/libproc_macro_tokens/Cargo.toml12
-rw-r--r--src/libproc_macro_tokens/build.rs85
-rw-r--r--src/libproc_macro_tokens/lib.rs64
-rw-r--r--src/libproc_macro_tokens/parse.rs23
-rw-r--r--src/libproc_macro_tokens/prelude.rs12
7 files changed, 1 insertions, 205 deletions
diff --git a/mk/crates.mk b/mk/crates.mk
index d7218b6bc89..f801605d9fa 100644
--- a/mk/crates.mk
+++ b/mk/crates.mk
@@ -60,7 +60,7 @@ RUSTC_CRATES := rustc rustc_typeck rustc_mir rustc_borrowck rustc_resolve rustc_
                 rustc_data_structures rustc_platform_intrinsics rustc_errors \
                 rustc_plugin rustc_metadata rustc_passes rustc_save_analysis \
                 rustc_const_eval rustc_const_math rustc_incremental proc_macro
-HOST_CRATES := syntax syntax_ext proc_macro_tokens proc_macro_plugin syntax_pos $(RUSTC_CRATES) \
+HOST_CRATES := syntax syntax_ext proc_macro_plugin syntax_pos $(RUSTC_CRATES) \
 		rustdoc fmt_macros flate arena graphviz log serialize
 TOOLS := compiletest rustdoc rustc rustbook error_index_generator
 
@@ -102,7 +102,6 @@ DEPS_syntax := std term serialize log arena libc rustc_bitflags std_unicode rust
 DEPS_syntax_ext := syntax syntax_pos rustc_errors fmt_macros proc_macro
 DEPS_proc_macro := syntax syntax_pos rustc_plugin log
 DEPS_syntax_pos := serialize
-DEPS_proc_macro_tokens := syntax syntax_pos log
 DEPS_proc_macro_plugin := syntax syntax_pos rustc_plugin
 
 DEPS_rustc_const_math := std syntax log serialize rustc_i128
diff --git a/src/Cargo.lock b/src/Cargo.lock
index 86fdece237b..7db243c5eb9 100644
--- a/src/Cargo.lock
+++ b/src/Cargo.lock
@@ -214,13 +214,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc_macro_tokens"
-version = "0.0.0"
-dependencies = [
- "syntax 0.0.0",
-]
-
-[[package]]
 name = "rand"
 version = "0.0.0"
 dependencies = [
diff --git a/src/libproc_macro_tokens/Cargo.toml b/src/libproc_macro_tokens/Cargo.toml
deleted file mode 100644
index 2cec4d7af54..00000000000
--- a/src/libproc_macro_tokens/Cargo.toml
+++ /dev/null
@@ -1,12 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "proc_macro_tokens"
-version = "0.0.0"
-build = false
-
-[lib]
-path = "lib.rs"
-crate-type = ["dylib"]
-
-[dependencies]
-syntax = { path = "../libsyntax" }
diff --git a/src/libproc_macro_tokens/build.rs b/src/libproc_macro_tokens/build.rs
deleted file mode 100644
index ed97d57cccd..00000000000
--- a/src/libproc_macro_tokens/build.rs
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use syntax::ast::Ident;
-use syntax::codemap::DUMMY_SP;
-use syntax::parse::token::{self, Token};
-use syntax::symbol::keywords;
-use syntax::tokenstream::{self, TokenTree, TokenStream};
-use std::rc::Rc;
-
-/// A wrapper around `TokenStream::concat` to avoid extra namespace specification and
-/// provide TokenStream concatenation as a generic operator.
-pub fn concat(ts1: TokenStream, ts2: TokenStream) -> TokenStream {
-    TokenStream::concat([ts1, ts2].iter().cloned())
-}
-
-/// Checks if two identifiers have the same name, disregarding context. This allows us to
-/// fake 'reserved' keywords.
-// FIXME We really want `free-identifier-=?` (a la Dybvig 1993). von Tander 2007 is
-// probably the easiest way to do that.
-pub fn ident_eq(tident: &TokenTree, id: Ident) -> bool {
-    let tid = match *tident {
-        TokenTree::Token(_, Token::Ident(ref id)) => id,
-        _ => {
-            return false;
-        }
-    };
-
-    tid.name == id.name
-}
-
-// ____________________________________________________________________________________________
-// Conversion operators
-
-/// Convert a `&str` into a Token.
-pub fn str_to_token_ident(s: &str) -> Token {
-    Token::Ident(Ident::from_str(s))
-}
-
-/// Converts a keyword (from `syntax::parse::token::keywords`) into a Token that
-/// corresponds to it.
-pub fn keyword_to_token_ident(kw: keywords::Keyword) -> Token {
-    Token::Ident(Ident::from_str(&kw.name().as_str()[..]))
-}
-
-// ____________________________________________________________________________________________
-// Build Procedures
-
-/// Generically takes a `ts` and delimiter and returns `ts` delimited by the specified
-/// delimiter.
-pub fn build_delimited(ts: TokenStream, delim: token::DelimToken) -> TokenStream {
-    TokenTree::Delimited(DUMMY_SP, Rc::new(tokenstream::Delimited {
-        delim: delim,
-        open_span: DUMMY_SP,
-        tts: ts.trees().cloned().collect(),
-        close_span: DUMMY_SP,
-    })).into()
-}
-
-/// Takes `ts` and returns `[ts]`.
-pub fn build_bracket_delimited(ts: TokenStream) -> TokenStream {
-    build_delimited(ts, token::DelimToken::Bracket)
-}
-
-/// Takes `ts` and returns `{ts}`.
-pub fn build_brace_delimited(ts: TokenStream) -> TokenStream {
-    build_delimited(ts, token::DelimToken::Brace)
-}
-
-/// Takes `ts` and returns `(ts)`.
-pub fn build_paren_delimited(ts: TokenStream) -> TokenStream {
-    build_delimited(ts, token::DelimToken::Paren)
-}
-
-/// Constructs `()`.
-pub fn build_empty_args() -> TokenStream {
-    build_paren_delimited(TokenStream::empty())
-}
diff --git a/src/libproc_macro_tokens/lib.rs b/src/libproc_macro_tokens/lib.rs
deleted file mode 100644
index e20ed689915..00000000000
--- a/src/libproc_macro_tokens/lib.rs
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! # Proc_Macro
-//!
-//! A library for procedural macro writers.
-//!
-//! ## Usage
-//! This crate provides the prelude (at libproc_macro_tokens::prelude), which
-//! provides a number of operations:
-//! - `concat`, for concatenating two TokenStreams.
-//! - `ident_eq`, for checking if two identifiers are equal regardless of syntax context.
-//! - `str_to_token_ident`, for converting an `&str` into a Token.
-//! - `keyword_to_token_delim`, for converting a `parse::token::keywords::Keyword` into a
-//!    Token.
-//! - `build_delimited`, for creating a new TokenStream from an existing one and a delimiter
-//!    by wrapping the TokenStream in the delimiter.
-//! - `build_bracket_delimited`, `build_brace_delimited`, and `build_paren_delimited`, for
-//!    easing the above.
-//! - `build_empty_args`, which returns a TokenStream containing `()`.
-//! - `lex`, which takes an `&str` and returns the TokenStream it represents.
-//!
-//! ## TokenStreams
-//!
-//! TokenStreams serve as the basis of the macro system. They are, in essence, vectors of
-//! TokenTrees, where indexing treats delimited values as a single term. That is, the term
-//! `even(a+c) && even(b)` will be indexibly encoded as `even | (a+c) | even | (b)` where,
-//! in reality, `(a+c)` is actually a decorated pointer to `a | + | c`.
-//!
-//! If a user has a TokenStream that is a single, delimited value, they can use
-//! `maybe_delimited` to destruct it and receive the internal vector as a new TokenStream
-//! as:
-//! ```
-//! `(a+c)`.maybe_delimited() ~> Some(a | + | c)`
-//! ```
-//!
-//! Check the TokenStream documentation for more information; the structure also provides
-//! cheap concatenation and slicing.
-//!
-
-#![crate_name = "proc_macro_tokens"]
-#![unstable(feature = "rustc_private", issue = "27812")]
-#![crate_type = "dylib"]
-#![crate_type = "rlib"]
-#![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
-       html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
-       html_root_url = "https://doc.rust-lang.org/nightly/")]
-#![deny(warnings)]
-
-#![feature(staged_api)]
-#![feature(rustc_private)]
-
-extern crate syntax;
-
-pub mod build;
-pub mod parse;
-pub mod prelude;
diff --git a/src/libproc_macro_tokens/parse.rs b/src/libproc_macro_tokens/parse.rs
deleted file mode 100644
index d1c1e99bcdc..00000000000
--- a/src/libproc_macro_tokens/parse.rs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-//! Parsing utilities for writing procedural macros.
-
-use syntax::parse::{ParseSess, filemap_to_tts};
-use syntax::tokenstream::TokenStream;
-
-/// Map a string to tts, using a made-up filename. For example, `lex("15")` will return a
-/// TokenStream containing the literal 15.
-pub fn lex(source_str: &str) -> TokenStream {
-    let sess = ParseSess::new();
-    let filemap =
-        sess.codemap().new_filemap("<procmacro_lex>".to_string(), None, source_str.to_owned());
-    filemap_to_tts(&sess, filemap).into_iter().collect()
-}
diff --git a/src/libproc_macro_tokens/prelude.rs b/src/libproc_macro_tokens/prelude.rs
deleted file mode 100644
index 4c0c8ba6c66..00000000000
--- a/src/libproc_macro_tokens/prelude.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-pub use build::*;
-pub use parse::*;