From 835ed5f7080a98e9ee80ac08d5585ccdbb63fe0e Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 15 Dec 2014 10:43:16 +0200 Subject: Parse directory scopes --- build/token | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) (limited to 'build/token') diff --git a/build/token b/build/token index 6f4951c..9f9b2b4 100644 --- a/build/token +++ b/build/token @@ -13,8 +13,15 @@ namespace build { - enum class token_type {eos, name, punctuation}; - enum class token_punctuation {newline, colon, lcbrace, rcbrace}; + enum class token_type + { + eos, + name, + newline, + colon, + lcbrace, + rcbrace + }; class token { @@ -25,32 +32,18 @@ namespace build std::string const& name () const {assert (t_ == token_type::name); return n_;} - token_punctuation - punctuation () const {assert (t_ == token_type::punctuation); return p_;} - - bool - is (token_punctuation p) const - { - return t_ == token_type::punctuation && p_ == p; - } - std::uint64_t line () const {return l_;} std::uint64_t column () const {return c_;} public: - token (std::uint64_t l, std::uint64_t c) - : t_ (token_type::eos), l_ (l), c_ (c) {} + token (token_type t, std::uint64_t l, std::uint64_t c) + : t_ (t), l_ (l), c_ (c) {} token (std::string n, std::uint64_t l, std::uint64_t c) : t_ (token_type::name), n_ (std::move (n)), l_ (l), c_ (c) {} - token (token_punctuation p, std::uint64_t l, std::uint64_t c) - : t_ (token_type::punctuation), p_ (p), l_ (l), c_ (c) {} - private: token_type t_; - - token_punctuation p_; std::string n_; std::uint64_t l_; -- cgit v1.1