Ninja
Parser Struct Referenceabstract

Base class for parsers. More...

#include <parser.h>

Inheritance diagram for Parser:

Public Member Functions

bool Load (const std::string &filename, std::string *err, Lexer *parent=NULL)
 Load and parse a file.
 
 Parser (State *state, FileReader *file_reader)
 
virtual ~Parser ()
 

Protected Member Functions

bool ExpectToken (Lexer::Token expected, std::string *err)
 If the next token is not expected, produce an error string saying "expected foo, got bar".
 

Protected Attributes

FileReaderfile_reader_
 
Lexer lexer_
 
Statestate_
 

Private Member Functions

virtual bool Parse (const std::string &filename, const std::string &input, std::string *err)=0
 Parse a file, given its contents as a string.
 

Detailed Description

Base class for parsers.

Definition at line 26 of file parser.h.

Constructor & Destructor Documentation

◆ Parser()

Parser::Parser ( State * state,
FileReader * file_reader )
inline

Definition at line 27 of file parser.h.

References file_reader_, and state_.

Referenced by DyndepParser::DyndepParser(), and ManifestParser::ManifestParser().

◆ ~Parser()

virtual Parser::~Parser ( )
inlinevirtual

Definition at line 29 of file parser.h.

Member Function Documentation

◆ ExpectToken()

bool Parser::ExpectToken ( Lexer::Token expected,
std::string * err )
protected

◆ Load()

bool Parser::Load ( const std::string & filename,
std::string * err,
Lexer * parent = NULL )

Load and parse a file.

Definition at line 22 of file parser.cc.

References Lexer::Error(), file_reader_, METRIC_RECORD_IF, FileReader::Okay, and Parse().

Referenced by DyndepLoader::LoadDyndepFile(), LoadManifests(), and TEST_F().

◆ Parse()

virtual bool Parser::Parse ( const std::string & filename,
const std::string & input,
std::string * err )
privatepure virtual

Parse a file, given its contents as a string.

Implemented in DyndepParser, and ManifestParser.

Referenced by Load().

Member Data Documentation

◆ file_reader_

FileReader* Parser::file_reader_
protected

Definition at line 40 of file parser.h.

Referenced by Load(), ManifestParser::ParseFileInclude(), and Parser().

◆ lexer_

◆ state_


The documentation for this struct was generated from the following files: