Functional-lang  0.0
An example functional programming language
Public Member Functions | Public Attributes | List of all members
Lexer Class Reference

Public Member Functions

 Lexer (std::istream &input, std::vector< std::string > &lines)
 
int nextChar ()
 Aquire next char. More...
 
int currentChar () const noexcept
 
Token nextToken ()
 
Token currentToken () const noexcept
 
Operator currentOperator () const noexcept
 
double currentNumber () const noexcept
 
std::int64_t currentInteger () const noexcept
 
size_t currentLine () const noexcept
 
size_t getTokenStartPos () const noexcept
 
size_t getTokenEndPos () const noexcept
 
const std::vector< std::string > & getLines ()
 
TokenPos getTokenPos () const noexcept
 
const std::string & currentIdentifier () const noexcept
 
int currentPrecedence ()
 Returns precedence of current token.
 
Token reportError (const std::string &msg) noexcept
 Prints error to console (std::cerr). More...
 
Token reportError (const std::string &msg, const TokenPos &pos) noexcept
 
Token reportError (const std::string &msg, size_t start, size_t end) noexcept
 

Public Attributes

bool skipNewLine = false
 True if lines should be ignored/skipped by nextToken. More...
 
std::string skippedNewLinePrefix = ""
 Prefix to print if line was ignored/skipped by nextToken. More...
 

Member Function Documentation

◆ currentChar()

int Lexer::currentChar ( ) const
noexcept
Returns
Returns char returned by the latest nextChar() call.
See also
nextChar

◆ currentIdentifier()

const std::string& Lexer::currentIdentifier ( ) const
noexcept
Returns
Returns identifier, which was returned by the latest nextToken() == tok_id call.

◆ currentInteger()

std::int64_t Lexer::currentInteger ( ) const
noexcept
Returns
Returns integer number, which was returned by the latest nextToken() = tok_int call.

◆ currentNumber()

double Lexer::currentNumber ( ) const
noexcept
Returns
Returns floating-point number, which was returned by the latest nextToken() == tok_num call.

◆ currentOperator()

Operator Lexer::currentOperator ( ) const
noexcept
Returns
Returns operator, which was returned by the lastest nextToken() == tok_op call.

◆ currentToken()

Token Lexer::currentToken ( ) const
noexcept
Returns
Returns token, which was returned by the latest nextToken() call.
See also
nextToken

◆ nextChar()

int Lexer::nextChar ( )

Aquire next char.

Returns
Returns next char.

Gets next character in file-stream. Also generates a string for the current line, count current column and line.

◆ nextToken()

Token Lexer::nextToken ( )
Returns
Returns next token.
See also
Token, nextToken

◆ reportError()

Token Lexer::reportError ( const std::string &  msg)
noexcept

Prints error to console (std::cerr).

Returns
Returns tok_err.

Member Data Documentation

◆ skipNewLine

bool Lexer::skipNewLine = false

True if lines should be ignored/skipped by nextToken.

See also
nextToken

◆ skippedNewLinePrefix

std::string Lexer::skippedNewLinePrefix = ""

Prefix to print if line was ignored/skipped by nextToken.

See also
nextToken, skipNewLine

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