Ninja
DyndepParser Struct Reference

Parses dyndep files. More...

#include <dyndep_parser.h>

Inheritance diagram for DyndepParser:

Public Member Functions

 DyndepParser (State *state, FileReader *file_reader, DyndepFile *dyndep_file)
 
bool Load (const std::string &filename, std::string *err, Lexer *parent=NULL)
 Load and parse a file.
 
bool ParseTest (const std::string &input, std::string *err)
 Parse a text string of input. Used by tests.
 

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

bool Parse (const std::string &filename, const std::string &input, std::string *err)
 Parse a file, given its contents as a string.
 
bool ParseDyndepVersion (std::string *err)
 
bool ParseEdge (std::string *err)
 
bool ParseLet (std::string *key, EvalString *val, std::string *err)
 

Private Attributes

DyndepFiledyndep_file_
 
BindingEnv env_
 

Detailed Description

Parses dyndep files.

Definition at line 25 of file dyndep_parser.h.

Constructor & Destructor Documentation

◆ DyndepParser()

DyndepParser::DyndepParser ( State * state,
FileReader * file_reader,
DyndepFile * dyndep_file )

Definition at line 27 of file dyndep_parser.cc.

References dyndep_file_, and Parser::Parser().

Member Function Documentation

◆ ExpectToken()

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

◆ Load()

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

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()

bool DyndepParser::Parse ( const std::string & filename,
const std::string & input,
std::string * err )
privatevirtual

Parse a file, given its contents as a string.

Implements Parser.

Definition at line 33 of file dyndep_parser.cc.

References Lexer::BUILD, Lexer::ERROR, Lexer::IDENT, Parser::lexer_, Lexer::NEWLINE, ParseDyndepVersion(), ParseEdge(), Lexer::TEOF, and Lexer::TokenName().

Referenced by ParseTest().

◆ ParseDyndepVersion()

bool DyndepParser::ParseDyndepVersion ( std::string * err)
private

Definition at line 77 of file dyndep_parser.cc.

References env_, EvalString::Evaluate(), Parser::lexer_, ParseLet(), and ParseVersion().

Referenced by Parse().

◆ ParseEdge()

◆ ParseLet()

bool DyndepParser::ParseLet ( std::string * key,
EvalString * val,
std::string * err )
private

Definition at line 95 of file dyndep_parser.cc.

References Lexer::EQUALS, Parser::ExpectToken(), and Parser::lexer_.

Referenced by ParseDyndepVersion(), and ParseEdge().

◆ ParseTest()

bool DyndepParser::ParseTest ( const std::string & input,
std::string * err )
inline

Member Data Documentation

◆ dyndep_file_

DyndepFile* DyndepParser::dyndep_file_
private

Definition at line 43 of file dyndep_parser.h.

Referenced by DyndepParser(), and ParseEdge().

◆ env_

BindingEnv DyndepParser::env_
private

Definition at line 44 of file dyndep_parser.h.

Referenced by ParseDyndepVersion(), and ParseEdge().

◆ file_reader_

FileReader* Parser::file_reader_
protectedinherited

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: