Phasor 3.1.1
Stack VM based Programming Language
Loading...
Searching...
No Matches
pulsar::Lexer Class Reference

Pulsar Lexer. More...

#include <Lexer.hpp>

Public Member Functions

 Lexer (const std::string &source)
std::vector< Phasor::Tokentokenize ()

Private Member Functions

char peek ()
char advance ()
bool isAtEnd ()
void skipWhitespace ()
void skipShebang ()
Phasor::Token scanToken ()
Phasor::Token identifier ()
Phasor::Token number ()
Phasor::Token string ()
Phasor::Token complexString ()

Private Attributes

std::string source
size_t position = 0
size_t line = 1
size_t column = 1

Detailed Description

Pulsar Lexer.

Definition at line 10 of file Lexer.hpp.

Constructor & Destructor Documentation

◆ Lexer()

pulsar::Lexer::Lexer ( const std::string & source)

Member Function Documentation

◆ advance()

char pulsar::Lexer::advance ( )
private

◆ complexString()

Phasor::Token pulsar::Lexer::complexString ( )
private

◆ identifier()

Phasor::Token pulsar::Lexer::identifier ( )
private

◆ isAtEnd()

bool pulsar::Lexer::isAtEnd ( )
private

◆ number()

Phasor::Token pulsar::Lexer::number ( )
private

◆ peek()

char pulsar::Lexer::peek ( )
private

◆ scanToken()

Phasor::Token pulsar::Lexer::scanToken ( )
private

◆ skipShebang()

void pulsar::Lexer::skipShebang ( )
private

◆ skipWhitespace()

void pulsar::Lexer::skipWhitespace ( )
private

◆ string()

Phasor::Token pulsar::Lexer::string ( )
private

◆ tokenize()

std::vector< Phasor::Token > pulsar::Lexer::tokenize ( )

Member Data Documentation

◆ column

size_t pulsar::Lexer::column = 1
private

Definition at line 20 of file Lexer.hpp.

◆ line

size_t pulsar::Lexer::line = 1
private

Definition at line 19 of file Lexer.hpp.

◆ position

size_t pulsar::Lexer::position = 0
private

Definition at line 18 of file Lexer.hpp.

◆ source

std::string pulsar::Lexer::source
private

Definition at line 17 of file Lexer.hpp.


The documentation for this class was generated from the following file: