Ninja
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
DyndepParser Struct Reference

Parses dyndep files. More...

#include <dyndep_parser.h>

Inheritance diagram for DyndepParser:
Inheritance graph
[legend]

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. More...
 
bool ParseTest (const std::string &input, std::string *err)
 Parse a text string of input. Used by tests. More...
 

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

bool Parse (const std::string &filename, const std::string &input, std::string *err)
 Parse a file, given its contents as a string. More...
 
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.

Member Function Documentation

◆ ExpectToken()

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

If the next token is not expected, produce an error string saying "expected foo, got bar".

Definition at line 40 of file parser.cc.

References Lexer::TokenErrorHint(), and Lexer::TokenName().

Referenced by ManifestParser::ParseDefault(), ParseEdge(), ManifestParser::ParseEdge(), ManifestParser::ParseFileInclude(), ParseLet(), ManifestParser::ParseLet(), ManifestParser::ParsePool(), and ManifestParser::ParseRule().

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

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

◆ Parse()

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

◆ ParseDyndepVersion()

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

Definition at line 77 of file dyndep_parser.cc.

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

Referenced by Parse().

◆ ParseEdge()

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

◆ ParseLet()

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

◆ ParseTest()

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

Parse a text string of input. Used by tests.

Definition at line 30 of file dyndep_parser.h.

References Parse().

Referenced by DyndepParserTest::AssertParse(), and TEST_F().

Member Data Documentation

◆ dyndep_file_

DyndepFile* DyndepParser::dyndep_file_
private

Definition at line 43 of file dyndep_parser.h.

Referenced by 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 ManifestParser::ParseFileInclude().

◆ lexer_

Lexer Parser::lexer_
protectedinherited

◆ state_

State* Parser::state_
protectedinherited

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