aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdlang/symbol.d
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2016-10-01 14:12:13 -0400
committerRalph Amissah <ralph@amissah.com>2019-04-10 15:14:13 -0400
commitba1712e77b31704fd9ba16d14e15518e7a7dd104 (patch)
tree1a0d3233fb611b68dbf43e098a41a0d9378e9ace /src/sdlang/symbol.d
parentupdate sdlang, start looking to using dub remote dependencies (diff)
0.7.0 using dub remote dependencies (local src related to sdlang removed)
Diffstat (limited to 'src/sdlang/symbol.d')
-rw-r--r--src/sdlang/symbol.d61
1 files changed, 0 insertions, 61 deletions
diff --git a/src/sdlang/symbol.d b/src/sdlang/symbol.d
deleted file mode 100644
index ebb2b93..0000000
--- a/src/sdlang/symbol.d
+++ /dev/null
@@ -1,61 +0,0 @@
-// SDLang-D
-// Written in the D programming language.
-
-module sdlang.symbol;
-
-import std.algorithm;
-
-static immutable validSymbolNames = [
- "Error",
- "EOF",
- "EOL",
-
- ":",
- "=",
- "{",
- "}",
-
- "Ident",
- "Value",
-];
-
-/// Use this to create a Symbol. Ex: symbol!"Value" or symbol!"="
-/// Invalid names (such as symbol!"FooBar") are rejected at compile-time.
-template symbol(string name)
-{
- static assert(validSymbolNames.find(name), "Invalid Symbol: '"~name~"'");
- immutable symbol = _symbol(name);
-}
-
-private Symbol _symbol(string name)
-{
- return Symbol(name);
-}
-
-/// Symbol is essentially the "type" of a Token.
-/// Token is like an instance of a Symbol.
-///
-/// This only represents terminals. Nonterminal tokens aren't
-/// constructed since the AST is built directly during parsing.
-///
-/// You can't create a Symbol directly. Instead, use the `symbol`
-/// template.
-struct Symbol
-{
- private string _name;
- @property string name()
- {
- return _name;
- }
-
- @disable this();
- private this(string name)
- {
- this._name = name;
- }
-
- string toString()
- {
- return _name;
- }
-}