summaryrefslogtreecommitdiff
path: root/cli/token.hxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-04-08 14:51:57 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2020-04-27 11:38:53 +0300
commit720c5a33b6a49cf328fdd7611f49153cf8f60247 (patch)
tree9725f3d1f42ec90fde84520f49647edea013ce5e /cli/token.hxx
parent3183f3bb927a90783ae0aeaf190a0919377aabe4 (diff)
Separate tests and examples into individual packages
Also make cli module to be explicitly enabled via the config.cli configuration variable.
Diffstat (limited to 'cli/token.hxx')
-rw-r--r--cli/token.hxx135
1 files changed, 0 insertions, 135 deletions
diff --git a/cli/token.hxx b/cli/token.hxx
deleted file mode 100644
index 7045826..0000000
--- a/cli/token.hxx
+++ /dev/null
@@ -1,135 +0,0 @@
-// file : cli/token.hxx
-// author : Boris Kolpackov <boris@codesynthesis.com>
-// license : MIT; see accompanying LICENSE file
-
-#ifndef CLI_TOKEN_HXX
-#define CLI_TOKEN_HXX
-
-#include <string>
-#include <cstddef> // std::size_t
-
-class token
-{
-public:
- enum token_type
- {
- t_eos,
- t_keyword,
- t_identifier,
- t_punctuation,
- t_cxx_path_lit,
- t_cli_path_lit,
- t_string_lit,
- t_char_lit,
- t_bool_lit,
- t_int_lit,
- t_float_lit,
- t_call_expr, // The so called "call expression", e.g., (2, a).
- t_template_expr // The so called "template expression", e.g., <foo, 3>.
- };
-
- token_type
- type () const;
-
- std::size_t
- line () const;
-
- std::size_t
- column () const;
-
- // Keyword
- //
-public:
- enum keyword_type
- {
- k_source,
- k_include,
- k_namespace,
- k_class,
- k_signed,
- k_unsigned,
- k_bool,
- k_char,
- k_wchar,
- k_short,
- k_int,
- k_long,
- k_float,
- k_double,
- k_invalid
- };
-
- // Return the keyword id if type is t_keyword and k_invalid otherwise.
- //
- keyword_type
- keyword () const;
-
- // Identifier
- //
-public:
- std::string const&
- identifier () const;
-
- // Punctuation
- //
-public:
- enum punctuation_type
- {
- p_semi,
- p_comma,
- p_colon,
- p_dcolon,
- p_lcbrace,
- p_rcbrace,
- // p_lparen,
- // p_rparen,
- p_eq,
- p_or,
- p_invalid
- };
-
- // Return the punctuation id if type is t_punctuation and p_invalid
- // otherwise.
- //
- punctuation_type
- punctuation () const;
-
- // Literals.
- //
-public:
- std::string const&
- literal () const;
-
- // Expressions.
- //
-public:
- std::string const&
- expression () const;
-
- // C-tors.
- //
-public:
- // EOS.
- //
- token (std::size_t l, std::size_t c);
-
- token (keyword_type k, std::size_t l, std::size_t c);
- token (punctuation_type p, std::size_t l, std::size_t c);
-
- // Identifier, literals, and expressions.
- //
- token (token_type t, std::string const& s, std::size_t l, std::size_t c);
-
-private:
- std::size_t l_;
- std::size_t c_;
-
- token_type type_;
- keyword_type keyword_;
- punctuation_type punctuation_;
- std::string str_;
-};
-
-#include <cli/token.ixx>
-
-#endif // CLI_TOKEN_HXX