head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.26 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.24 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.22 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.20 pkgsrc-2011Q2-base:1.2 pkgsrc-2009Q4:1.2.0.18 pkgsrc-2009Q4-base:1.2 pkgsrc-2008Q4:1.2.0.16 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.14 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.12 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.10 pkgsrc-2008Q2-base:1.2 pkgsrc-2008Q1:1.2.0.8 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.6 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.4 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.2 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.1.0.2 pkgsrc-2007Q1-base:1.1; locks; strict; comment @# @; 1.2 date 2007.05.23.13.53.00; author markd; state dead; branches; next 1.1; 1.1 date 2007.03.24.14.01.30; author markd; state Exp; branches; next ; desc @@ 1.2 log @Update kdevelop to 3.4.1 (part of KDE 3.5.7) @ text @$NetBSD: patch-bf,v 1.1 2007/03/24 14:01:30 markd Exp $ --- buildtools/lib/parsers/qmake/qmakedriver.cpp.orig 2007-01-26 04:42:02.000000000 +1300 +++ buildtools/lib/parsers/qmake/qmakedriver.cpp @@@@ -20,57 +20,67 @@@@ #include "qmakedriver.h" #include "qmakeast.h" -#include #include #include -extern FILE *yyin, *yyout; -extern int yyparse(); -extern int yydebug; -typedef struct yy_buffer_state *YY_BUFFER_STATE; -extern YY_BUFFER_STATE yy_scan_string(const char*); -extern void yy_delete_buffer(YY_BUFFER_STATE); -extern QValueStack projects; +#include +#include +#include + +#include "qmake_lex.h" +#include "qmake_yacc.hpp" namespace QMake { -int Driver::parseFile(const char *fileName, ProjectAST **ast) +int Driver::parseFile(const char *fileName, ProjectAST **ast, int debug) { - yyin = fopen(fileName, "r"); - if (yyin == 0) + std::ifstream inf( fileName, std::ios::in ); + if ( !inf.is_open() ) { *ast = 0; return 1; } // yydebug = 1; - int ret = yyparse(); - *ast = projects.top(); + Lexer l(&inf); + l.set_debug(debug); + int depth = 0; + QValueStack stack; + Parser p(&l, stack, depth); + p.set_debug_level(debug); + int ret = p.parse(); + *ast = stack.top(); (*ast)->setFileName(fileName); return ret; } -int Driver::parseFile(QString fileName, ProjectAST **ast) +int Driver::parseFile(QString fileName, ProjectAST **ast, int debug) { - return parseFile(fileName.ascii(), ast); + return parseFile(fileName.ascii(), ast, debug); } -int Driver::parseFile(KURL fileName, ProjectAST **ast) +int Driver::parseFile(KURL fileName, ProjectAST **ast, int debug) { QString tmpFile; int ret = 0; if (KIO::NetAccess::download(fileName, tmpFile, 0)) - ret = parseFile(tmpFile, ast); + ret = parseFile(tmpFile, ast, debug); KIO::NetAccess::removeTempFile(tmpFile); return ret; } -int Driver::parseString( const char* string, ProjectAST **ast ) +int Driver::parseString( const char* string, ProjectAST **ast, int debug ) { - YY_BUFFER_STATE state = yy_scan_string( string ); - int ret = yyparse(); - *ast = projects.top(); + std::istringstream ins; + ins.str(string); + Lexer l(&ins); + l.set_debug(debug); + int depth = 0; + QValueStack stack; + Parser p(&l, stack, depth); + p.set_debug_level(debug); + int ret = p.parse(); + *ast = stack.top(); (*ast)->setFileName(""); - yy_delete_buffer( state ); return ret; } @ 1.1 log @Update kdevelop-base to 3.4.0 KDevelop 3.4.0 closes more than 500 bugs. There is an impressive list of additional features including improved Qt 4 support, new debugging abilities, more attractive default user interface layout and improvements for C++, Ruby and PHP support. pkg includes post 3.4.0 fixes for a QMake parser bug. @ text @d1 1 a1 1 $NetBSD$ @