diff options
| author | Tim Foley <tfoley@nvidia.com> | 2017-06-15 13:12:51 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2017-06-15 13:12:51 -0700 |
| commit | 517513645afb8eaf4841e7b7035f1ba3a9c7cd57 (patch) | |
| tree | eb0fdf58f5f42c427ade3aac136a9053fbf21d54 /source/slang/lexer.h | |
| parent | c34a433d7aa3fdbfefee22f20d5aac2d960f392a (diff) | |
Rename `Slang::Compiler` -> `Slang`
This gets rid of one unecessary namespace.
Diffstat (limited to 'source/slang/lexer.h')
| -rw-r--r-- | source/slang/lexer.h | 175 |
1 files changed, 86 insertions, 89 deletions
diff --git a/source/slang/lexer.h b/source/slang/lexer.h index d11e92d84..d599b3b7f 100644 --- a/source/slang/lexer.h +++ b/source/slang/lexer.h @@ -6,96 +6,93 @@ namespace Slang { - namespace Compiler + using namespace CoreLib::Basic; + + struct TokenList + { + Token* begin() const; + Token* end() const; + + List<Token> mTokens; + }; + + struct TokenSpan + { + TokenSpan(); + TokenSpan( + TokenList const& tokenList) + : mBegin(tokenList.begin()) + , mEnd (tokenList.end ()) + {} + + Token* begin() const { return mBegin; } + Token* end () const { return mEnd ; } + + int GetCount() { return (int)(mEnd - mBegin); } + + Token* mBegin; + Token* mEnd; + }; + + struct TokenReader { - using namespace CoreLib::Basic; - - struct TokenList - { - Token* begin() const; - Token* end() const; - - List<Token> mTokens; - }; - - struct TokenSpan - { - TokenSpan(); - TokenSpan( - TokenList const& tokenList) - : mBegin(tokenList.begin()) - , mEnd (tokenList.end ()) - {} - - Token* begin() const { return mBegin; } - Token* end () const { return mEnd ; } - - int GetCount() { return (int)(mEnd - mBegin); } - - Token* mBegin; - Token* mEnd; - }; - - struct TokenReader - { - TokenReader(); - explicit TokenReader(TokenSpan const& tokens) - : mCursor(tokens.begin()) - , mEnd (tokens.end ()) - {} - explicit TokenReader(TokenList const& tokens) - : mCursor(tokens.begin()) - , mEnd (tokens.end ()) - {} - - bool IsAtEnd() const { return mCursor == mEnd; } - Token PeekToken() const; - TokenType PeekTokenType() const; - CodePosition PeekLoc() const; - - Token AdvanceToken(); - - int GetCount() { return (int)(mEnd - mCursor); } - - Token* mCursor; - Token* mEnd; - }; - - typedef unsigned int LexerFlags; - enum - { - kLexerFlag_InDirective = 1 << 0, - kLexerFlag_ExpectFileName = 2 << 0, - }; - - struct Lexer - { - Lexer( - String const& path, - String const& content, - DiagnosticSink* sink); - - ~Lexer(); - - Token lexToken(); - - TokenList lexAllTokens(); - - String path; - String content; - DiagnosticSink* sink; - - char const* cursor; - char const* end; - CodePosition loc; - TokenFlags tokenFlags; - LexerFlags lexerFlags; - }; - - // Helper routines for extracting values from tokens - String getStringLiteralTokenValue(Token const& token); - String getFileNameTokenValue(Token const& token); - } + TokenReader(); + explicit TokenReader(TokenSpan const& tokens) + : mCursor(tokens.begin()) + , mEnd (tokens.end ()) + {} + explicit TokenReader(TokenList const& tokens) + : mCursor(tokens.begin()) + , mEnd (tokens.end ()) + {} + + bool IsAtEnd() const { return mCursor == mEnd; } + Token PeekToken() const; + TokenType PeekTokenType() const; + CodePosition PeekLoc() const; + + Token AdvanceToken(); + + int GetCount() { return (int)(mEnd - mCursor); } + + Token* mCursor; + Token* mEnd; + }; + + typedef unsigned int LexerFlags; + enum + { + kLexerFlag_InDirective = 1 << 0, + kLexerFlag_ExpectFileName = 2 << 0, + }; + + struct Lexer + { + Lexer( + String const& path, + String const& content, + DiagnosticSink* sink); + + ~Lexer(); + + Token lexToken(); + + TokenList lexAllTokens(); + + String path; + String content; + DiagnosticSink* sink; + + char const* cursor; + char const* end; + CodePosition loc; + TokenFlags tokenFlags; + LexerFlags lexerFlags; + }; + + // Helper routines for extracting values from tokens + String getStringLiteralTokenValue(Token const& token); + String getFileNameTokenValue(Token const& token); } #endif
\ No newline at end of file |
