23 #include <tqvaluestack.h> 24 #include <tdeio/netaccess.h> 30 #include "qmake_lex.h" 31 #include "qmake_yacc.hpp" 37 std::ifstream inf( fileName, std::ios::in );
47 TQValueStack<ProjectAST*> stack;
48 Parser p(&l, stack, depth);
52 (*ast)->setFileName(fileName);
53 switch( l.lineending() )
55 case TQMake::Lexer::Windows:
56 (*ast)->setLineEnding(TQMake::ProjectAST::Windows);
58 case TQMake::Lexer::MacOS:
59 (*ast)->setLineEnding(TQMake::ProjectAST::MacOS);
61 case TQMake::Lexer::Unix:
63 (*ast)->setLineEnding(TQMake::ProjectAST::Unix);
71 return parseFile(fileName.ascii(), ast, debug);
78 if (TDEIO::NetAccess::download(fileName, tmpFile, 0))
80 TDEIO::NetAccess::removeTempFile(tmpFile);
84 int Driver::parseString(
const char*
string,
ProjectAST **ast,
int debug )
86 std::istringstream ins;
91 TQValueStack<ProjectAST*> stack;
92 Parser p(&l, stack, depth);
96 (*ast)->setFileName(
"");
97 switch( l.lineending() )
99 case TQMake::Lexer::Windows:
100 (*ast)->setLineEnding(TQMake::ProjectAST::Windows);
102 case TQMake::Lexer::MacOS:
103 (*ast)->setLineEnding(TQMake::ProjectAST::MacOS);
105 case TQMake::Lexer::Unix:
107 (*ast)->setLineEnding(TQMake::ProjectAST::Unix);
void set_debug_level(debug_level_type l)
Set the current debugging level.
Driver for a qmake parser.
Abstract Syntax Tree (AST) class declarations.
static int parseFile(const char *fileName, ProjectAST **ast, int debug)
Parses the file fileName and stores the resulting ProjectAST root into ast.
virtual int parse()
Parse.