Aprepro 5.0x
Loading...
Searching...
No Matches
SEAMS::Scanner Class Reference

#include <apr_scanner.h>

Inheritance diagram for SEAMS::Scanner:
Collaboration diagram for SEAMS::Scanner:

Public Member Functions

 Scanner (Aprepro &aprepro_yyarg, std::istream *in=nullptr, std::ostream *out=nullptr)
 ~Scanner () override
bool add_include_file (const std::string &filename, bool must_exist)
int yywrap () override
void yyerror (const char *s)
void LexerOutput (const char *buf, int size) override
int LexerInput (char *buf, int max_size) override
virtual Parser::token_type lex (Parser::semantic_type *yylval)
char * rescan (char *string)
char * execute (char *string)
char * import_handler (char *string)
char * if_handler (double x)
char * elseif_handler (double x)
char * switch_handler (double x)
char * case_handler (double x)
void set_debug (bool b)
void save_history_string ()
Public Member Functions inherited from SEAMSFlexLexer
 SEAMSFlexLexer (std::istream *arg_yyin=nullptr, std::ostream *arg_yyout=nullptr)
 ~SEAMSFlexLexer () override
void yy_switch_to_buffer (struct yy_buffer_state *new_buffer) override
struct yy_buffer_stateyy_create_buffer (std::istream *file, int size) override
void yy_delete_buffer (struct yy_buffer_state *b) override
void yyrestart (std::istream *input_file) override
void yypush_buffer_state (struct yy_buffer_state *new_buffer)
void yypop_buffer_state ()
int yylex () override
void switch_streams (std::istream *new_in, std::ostream *new_out=nullptr) override
Public Member Functions inherited from FlexLexer
 FlexLexer ()
virtual ~FlexLexer ()
const char * YYText () const
int YYLeng () const
int yylex (std::istream *new_in, std::ostream *new_out=nullptr)
int lineno () const
int debug () const
void set_debug (int flag)

Public Attributes

class Apreproaprepro

Friends

class Parser

Additional Inherited Members

Protected Member Functions inherited from SEAMSFlexLexer
virtual void LexerError (const char *msg)
void yyunput (int c, char *yy_bp)
int yyinput ()
void yy_load_buffer_state ()
void yy_init_buffer (struct yy_buffer_state *b, std::istream *file)
void yy_flush_buffer (struct yy_buffer_state *b)
void yy_push_state (int new_state)
void yy_pop_state ()
int yy_top_state ()
yy_state_type yy_get_previous_state ()
yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state)
int yy_get_next_buffer ()
void yyensure_buffer_stack (void)
Protected Attributes inherited from SEAMSFlexLexer
int yy_start_stack_ptr
int yy_start_stack_depth
int * yy_start_stack
std::istream * yyin
std::ostream * yyout
char yy_hold_char
int yy_n_chars
char * yy_c_buf_p
int yy_init
int yy_start
int yy_did_buffer_switch_on_eof
size_t yy_buffer_stack_top
size_t yy_buffer_stack_max
struct yy_buffer_state ** yy_buffer_stack
yy_state_type yy_last_accepting_state
char * yy_last_accepting_cpos
yy_state_typeyy_state_buf
yy_state_typeyy_state_ptr
char * yy_full_match
int * yy_full_state
int yy_full_lp
int yy_lp
int yy_looking_for_trail_begin
int yy_more_flag
int yy_more_len
int yy_more_offset
int yy_prev_more_offset
Protected Attributes inherited from FlexLexer
char * yytext
int yyleng
int yylineno
int yy_flex_debug

Constructor & Destructor Documentation

◆ Scanner()

SEAMS::Scanner::Scanner ( Aprepro & aprepro_yyarg,
std::istream * in = nullptr,
std::ostream * out = nullptr )
explicit

Create a new scanner object. The streams arg_yyin and arg_yyout default to cin and cout, but that assignment is only made when initializing in yylex().

◆ ~Scanner()

SEAMS::Scanner::~Scanner ( )
override

Required for virtual functions

Member Function Documentation

◆ add_include_file()

bool SEAMS::Scanner::add_include_file ( const std::string & filename,
bool must_exist )

◆ case_handler()

char * SEAMS::Scanner::case_handler ( double x)

◆ elseif_handler()

char * SEAMS::Scanner::elseif_handler ( double x)

◆ execute()

char * SEAMS::Scanner::execute ( char * string)

◆ if_handler()

char * SEAMS::Scanner::if_handler ( double x)

◆ import_handler()

char * SEAMS::Scanner::import_handler ( char * string)

◆ lex()

virtual Parser::token_type SEAMS::Scanner::lex ( Parser::semantic_type * yylval)
virtual

This is the main lexing function. It is generated by flex according to the macro declaration YY_DECL above. The generated bison parser then calls this virtual function to fetch new tokens.

◆ LexerInput()

int SEAMS::Scanner::LexerInput ( char * buf,
int max_size )
overridevirtual

Reimplemented from SEAMSFlexLexer.

◆ LexerOutput()

void SEAMS::Scanner::LexerOutput ( const char * buf,
int size )
overridevirtual

Reimplemented from SEAMSFlexLexer.

◆ rescan()

char * SEAMS::Scanner::rescan ( char * string)

◆ save_history_string()

void SEAMS::Scanner::save_history_string ( )

◆ set_debug()

void SEAMS::Scanner::set_debug ( bool b)

Enable debug output (via arg_yyout) if compiled into the scanner.

◆ switch_handler()

char * SEAMS::Scanner::switch_handler ( double x)

◆ yyerror()

void SEAMS::Scanner::yyerror ( const char * s)

◆ yywrap()

int SEAMS::Scanner::yywrap ( )
overridevirtual

Reimplemented from SEAMSFlexLexer.

◆ Parser

friend class Parser
friend

Member Data Documentation

◆ aprepro

class Aprepro& SEAMS::Scanner::aprepro

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