CeresEngine
0.2.0
A game development framework
Loading...
Searching...
No Matches
SLScanner.hpp
Go to the documentation of this file.
1
//
2
// CeresEngine - A game development framework
3
//
4
// Created by Rogiel Sulzbach.
5
// Copyright (c) 2018-2022 Rogiel Sulzbach. All rights reserved.
6
//
7
8
#pragma once
9
10
#include "
Scanner.hpp
"
11
12
namespace
CeresEngine::ShaderCompiler
{
13
14
// Common shading-language token scanner.
15
class
SLScanner
:
public
Scanner
{
16
public
:
17
SLScanner
(
Log
* log =
nullptr
);
18
19
// Scanns the next token.
20
TokenPtr
next
()
override
;
21
22
protected
:
23
virtual
TokenPtr
scanIdentifierOrKeyword
(
String
&&
spell
) = 0;
24
25
private
:
26
TokenPtr
scanToken
()
override
;
27
TokenPtr
scanDirective
();
28
TokenPtr
scanIdentifier
();
29
TokenPtr
scanAssignShiftRelationOp
(
const
char
chr
);
30
TokenPtr
scanPlusOp
();
31
TokenPtr
scanMinusOp
();
32
};
33
34
}
// namespace CeresEngine::ShaderCompiler
Scanner.hpp
CeresEngine::BasicString< char >
CeresEngine::ShaderCompiler::Log
Log base class.
Definition
Log.hpp:19
CeresEngine::ShaderCompiler::SLScanner
Definition
SLScanner.hpp:15
CeresEngine::ShaderCompiler::SLScanner::scanDirective
TokenPtr scanDirective()
CeresEngine::ShaderCompiler::SLScanner::SLScanner
SLScanner(Log *log=nullptr)
CeresEngine::ShaderCompiler::SLScanner::scanToken
TokenPtr scanToken() override
CeresEngine::ShaderCompiler::SLScanner::scanAssignShiftRelationOp
TokenPtr scanAssignShiftRelationOp(const char chr)
CeresEngine::ShaderCompiler::SLScanner::scanMinusOp
TokenPtr scanMinusOp()
CeresEngine::ShaderCompiler::SLScanner::scanIdentifierOrKeyword
virtual TokenPtr scanIdentifierOrKeyword(String &&spell)=0
CeresEngine::ShaderCompiler::SLScanner::next
TokenPtr next() override
CeresEngine::ShaderCompiler::SLScanner::scanIdentifier
TokenPtr scanIdentifier()
CeresEngine::ShaderCompiler::SLScanner::scanPlusOp
TokenPtr scanPlusOp()
CeresEngine::ShaderCompiler::Scanner
Definition
Scanner.hpp:29
CeresEngine::ShaderCompiler::Scanner::chr
char chr() const
Definition
Scanner.hpp:135
CeresEngine::ShaderCompiler
Definition
AST.hpp:33
CeresEngine::ShaderCompiler::TokenPtr
SPtr< Token > TokenPtr
Definition
Token.hpp:174
CeresEngine::hash
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition
Hash.hpp:25
Sources
CeresEngine
Material
ShaderCompiler
Frontend
SLScanner.hpp
Generated by
1.9.8