Ninja
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
Parser Struct Referenceabstract

Base class for parsers. More...

#include <parser.h>

Inheritance diagram for Parser:
Inheritance graph
[legend]

Public Member Functions

bool Load (const std::string &filename, std::string *err, Lexer *parent=NULL)
 Load and parse a file. More...
 
 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". More...
 

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. More...
 

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.

◆ ~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(), METRIC_RECORD_IF, and FileReader::Okay.

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 ManifestParser, and DyndepParser.

Member Data Documentation

◆ file_reader_

FileReader* Parser::file_reader_
protected

Definition at line 40 of file parser.h.

Referenced by ManifestParser::ParseFileInclude().

◆ lexer_

Lexer Parser::lexer_
protected

◆ state_

State* Parser::state_
protected

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