Phasor
3.1.1
Stack VM based Programming Language
Loading...
Searching...
No Matches
Lexer.hpp
Go to the documentation of this file.
1
#pragma once
2
#include "
../../../AST/AST.hpp
"
3
#include <string>
4
#include <vector>
5
#include <iostream>
7
namespace
pulsar
8
{
10
class
Lexer
11
{
12
public
:
13
Lexer
(
const
std::string &
source
);
14
std::vector<Phasor::Token>
tokenize
();
15
16
private
:
17
std::string
source
;
18
size_t
position
= 0;
19
size_t
line
= 1;
20
size_t
column
= 1;
21
22
char
peek
();
23
char
advance
();
24
bool
isAtEnd
();
25
void
skipWhitespace
();
26
void
skipShebang
();
27
Phasor::Token
scanToken
();
28
Phasor::Token
identifier
();
29
Phasor::Token
number
();
30
Phasor::Token
string
();
31
Phasor::Token
complexString
();
32
};
33
}
// namespace pulsar
AST.hpp
pulsar::Lexer::number
Phasor::Token number()
pulsar::Lexer::source
std::string source
Definition
Lexer.hpp:17
pulsar::Lexer::isAtEnd
bool isAtEnd()
pulsar::Lexer::skipShebang
void skipShebang()
pulsar::Lexer::skipWhitespace
void skipWhitespace()
pulsar::Lexer::complexString
Phasor::Token complexString()
pulsar::Lexer::line
size_t line
Definition
Lexer.hpp:19
pulsar::Lexer::position
size_t position
Definition
Lexer.hpp:18
pulsar::Lexer::identifier
Phasor::Token identifier()
pulsar::Lexer::advance
char advance()
pulsar::Lexer::tokenize
std::vector< Phasor::Token > tokenize()
pulsar::Lexer::Lexer
Lexer(const std::string &source)
pulsar::Lexer::column
size_t column
Definition
Lexer.hpp:20
pulsar::Lexer::string
Phasor::Token string()
pulsar::Lexer::scanToken
Phasor::Token scanToken()
pulsar::Lexer::peek
char peek()
pulsar
The Pulsar Scripting Language.
Definition
Compiler.cpp:13
Phasor::Token
Token structure.
Definition
AST.hpp:25
src
Language
Pulsar
Lexer
Lexer.hpp
Generated by
1.16.1