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.02; author markd; state dead; branches; next 1.1; 1.1 date 2007.03.24.14.01.32; 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-bp,v 1.1 2007/03/24 14:01:32 markd Exp $ --- buildtools/lib/parsers/qmake/qmake.ll.orig 2007-01-26 04:42:02.000000000 +1300 +++ buildtools/lib/parsers/qmake/qmake.ll @@@@ -19,9 +19,12 @@@@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#include #include +#define DONT_INCLUDE_FLEXLEXER + +#include "qmake_lex.h" + /** @@file qmake.ll QMake Lexer @@@@ -48,6 +51,9 @@@@ To debug this lexer, put the line below %} %option noyywrap +%option yylineno +%option c++ +%option yyclass="QMake::Lexer" %x list %x list_with_comment @@@@ -55,69 +61,160 @@@@ To debug this lexer, put the line below delim [ \t] ws {delim}+ -begin_ws ^{delim}+[^\n\t ] +begin_ws ^{delim}+[^\r\n\t ] quote "\"" -var_value [^\n\t ]*[^\n\t \\] +var_value [^\r\n\t ]*[^\r\n\t \\] quoted_var_value {quote}({var_value}|[\t ])({var_value}|[\t ])*{quote} letter [A-Za-z] digit [0-9] id_simple ({digit}|{letter}|\!|-|_|\*|\$)({letter}|{digit}|\||\!|-|_|\*|\$|\.|\+|\-)* -id_args [^\n]*\) +id_args [^\r\n]*\) number {digit}+ comment #.* -comment_cont {ws}*#.*\n +comment_cont {ws}*#.*(\n|\r|\r\n) comment_cont_nn {ws}*#.* -cont \\{ws}*\n +cont \\{ws}*(\n|\r|\r\n) %% -{ws} {} -{ws} { yylval.value = yytext; return LIST_WS; } -{begin_ws} { - yylval.value = yytext; - unput(char(yylval.value.at(yylval.value.length()-1).latin1())); - yylval.value = yylval.value.mid(0, yylval.value.length()-1); - return INDENT; +{ws} {} + +{ws} { + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return Parser::token::token::LIST_WS; } -{cont} { BEGIN(list); return CONT; } -{id_simple} { yylval.value = yytext; return (ID_SIMPLE); } +{begin_ws} { + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + unput(char(mylval->value.at(mylval->value.length()-1).latin1())); + mylval->value = mylval->value.mid(0, mylval->value.length()-1); + return Parser::token::token::INDENT; +} + +{cont} { + BEGIN(list); + return Parser::token::token::CONT; +} +{id_simple} { + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return (Parser::token::token::ID_SIMPLE); +} {comment_cont_nn} { - yylval.value = yytext; + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); BEGIN(list); - return (LIST_COMMENT_WITHOUT_NEWLINE); + return (Parser::token::token::LIST_COMMENT_WITHOUT_NEWLINE); } {comment_cont} { - yylval.value = yytext; + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); BEGIN(list); - return (LIST_COMMENT); + return (Parser::token::token::LIST_COMMENT); } {id_args} { - yylval.value = yytext; - yylval.value = yylval.value.mid(0, yylval.value.length()-1); + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + mylval->value = mylval->value.mid(0, mylval->value.length()-1); unput(')'); BEGIN(INITIAL); - return (ID_ARGS); + return (Parser::token::token::ID_ARGS); } -{var_value} { BEGIN(list_with_comment); yylval.value = yytext; return VARIABLE_VALUE; } -{quoted_var_value} { BEGIN(list_with_comment); yylval.value = yytext; return QUOTED_VARIABLE_VALUE; } +{var_value} { + BEGIN(list_with_comment); + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return Parser::token::token::VARIABLE_VALUE; +} + +{quoted_var_value} { + BEGIN(list_with_comment); + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return Parser::token::token::QUOTED_VARIABLE_VALUE; +} + +"=" { +BEGIN(list); +mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); +return Parser::token::token::EQ; +} + +"+=" { + BEGIN(list); + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return Parser::token::token::PLUSEQ; +} + +"-=" { + BEGIN(list); + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return Parser::token::token::MINUSEQ; +} + +"*=" { + BEGIN(list); + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return Parser::token::token::STAREQ; +} + +"~=" { + BEGIN(list); + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return Parser::token::token::TILDEEQ; +} + +"{" { + return Parser::token::token::LCURLY; +} + +":"{delim}*"{" { + return Parser::token::token::LCURLY; +} + +"}" { + return Parser::token::token::RCURLY; +} + +"(" { + BEGIN(funcargs); + return Parser::token::token::LBRACE; +} + +")" { + BEGIN(INITIAL); + return Parser::token::token::RBRACE; +} + +":" { + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return Parser::token::token::COLON; +} -"=" { BEGIN(list); yylval.value = yytext; return EQ; } -"+=" { BEGIN(list); yylval.value = yytext; return PLUSEQ; } -"-=" { BEGIN(list); yylval.value = yytext; return MINUSQE; } -"*=" { BEGIN(list); yylval.value = yytext; return STAREQ; } -"~=" { BEGIN(list); yylval.value = yytext; return TILDEEQ; } -"{" { return LCURLY; } -":"{delim}*"{" { return LCURLY; } -"}" { return RCURLY; } -"(" { BEGIN(funcargs); return LBRACE; } -")" { BEGIN(INITIAL); return RBRACE; } -":" { yylval.value = yytext; return COLON; } -"\n" { BEGIN(INITIAL); return NEWLINE; } +"\n" { + BEGIN(INITIAL); + return Parser::token::token::NEWLINE; +} -{comment} { yylval.value = yytext; return (COMMENT); } +{comment} { + mylval->value = QString::fromLocal8Bit( YYText(), YYLeng() ); + return (Parser::token::token::COMMENT); +} %% +namespace QMake +{ + Lexer::Lexer( std::istream* argin, std::ostream* argout ) + : yyFlexLexer(argin, argout), mylval(0) + { + } + + int Lexer::yylex( QMake::Parser::semantic_type* yylval ) + { + mylval = yylval; + return yylex(); + } +} + +int QMakelex( QMake::Parser::semantic_type* yylval, QMake::Lexer* lexer) +{ + return lexer->yylex( yylval ); +} + @ 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$ @