[packages/kannel] - updated to 1.4.5 - bison 3.0+ support (patch from https://redmine.kannel.org/issues/699) - release

adamg adamg at pld-linux.org
Fri Sep 28 12:12:00 CEST 2018


commit 696776f76877f930caa7f3ea0bca69460c4f16e5
Author: Adam Gołębiowski <adamg at pld-linux.org>
Date:   Fri Sep 28 12:11:11 2018 +0200

    - updated to 1.4.5
    - bison 3.0+ support (patch from https://redmine.kannel.org/issues/699)
    - release 0.1, working on openssl 1.1.0 support

 kannel-bison.patch | 690 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 kannel.spec        |  10 +-
 2 files changed, 694 insertions(+), 6 deletions(-)
---
diff --git a/kannel.spec b/kannel.spec
index 283841d..0dab00d 100644
--- a/kannel.spec
+++ b/kannel.spec
@@ -9,17 +9,16 @@
 Summary:	SMS/WAP gateway
 Summary(pl.UTF-8):	Bramka WAP oraz SMS
 Name:		kannel
-Version:	1.4.3
-Release:	7
+Version:	1.4.5
+Release:	0.1
 License:	BSD-like (see COPYING)
 Group:		Networking/Daemons
 Source0:	http://www.kannel.org/download/%{version}/gateway-%{version}.tar.gz
-# Source0-md5:	8925b147fb7aa01a10fa4f53cfeb03e9
+# Source0-md5:	b6b5b48edb646e0e0e2ea5378c8ac9ff
 Source1:	%{name}.init
 Source2:	%{name}.sysconfig
 Source3:	%{name}.conf
-Patch0:		%{name}-types.patch
-Patch1:		%{name}-nolibs.patch
+Patch0:		%{name}-bison.patch
 URL:		http://www.kannel.org/
 BuildRequires:	ImageMagick
 BuildRequires:	autoconf
@@ -61,7 +60,6 @@ SMS, więc pozwala to na obsługę większej liczby klientów.
 %prep
 %setup -q -n gateway-%{version}
 %patch0 -p1
-#%patch1 -p1
 
 %build
 cp -f /usr/share/automake/config.sub .
diff --git a/kannel-bison.patch b/kannel-bison.patch
new file mode 100644
index 0000000..fb25963
--- /dev/null
+++ b/kannel-bison.patch
@@ -0,0 +1,690 @@
+bison 3.0+ support, patch from https://redmine.kannel.org/issues/699
+
+diff -ur gateway-1.4.5.orig/wmlscript/wsgram.y gateway-1.4.5/wmlscript/wsgram.y
+--- gateway-1.4.5.orig/wmlscript/wsgram.y	2013-12-17 05:50:51.000000000 -0500
++++ gateway-1.4.5/wmlscript/wsgram.y	2018-08-17 15:43:57.000000000 -0500
+@@ -14,18 +14,9 @@
+ 
+ #include "wmlscript/wsint.h"
+ 
+-/* The required yyerror() function.  This is actually not used but to
+-   report the internal parser errors.  All other errors are reported
+-   by using the `wserror.h' functions. */
+-extern void yyerror(char *msg);
+-
+-#if WS_DEBUG
+-/* Just for debugging purposes. */
+-WsCompilerPtr global_compiler = NULL;
+-#endif /* WS_DEBUG */
+-
+ %}
+ 
++
+ /* The possible semantic values. */
+ %union
+ {
+@@ -45,6 +36,19 @@
+     WsExpression *expr;
+ }
+ 
++%{
++/* The required yyerror() function.  This is actually not used but to
++   report the internal parser errors.  All other errors are reported
++   by using the `wserror.h' functions. */
++extern void yyerror(YYLTYPE* locp, WsCompiler* compiler, const char* msg);
++
++#if WS_DEBUG
++/* Just for debugging purposes. */
++WsCompilerPtr global_compiler = NULL;
++#endif /* WS_DEBUG */
++
++%}
++
+ /* Tokens. */
+ 
+ /* Language literals. */
+@@ -106,6 +110,8 @@
+ 
+ /* Generate reentrant parser. */
+ %pure-parser
++%parse-param { WsCompiler* compiler }
++%lex-param   { WsCompiler* compiler }
+ 
+ /* This grammar has one shift-reduce conflict.  It comes from the
+    if-else statement. */
+@@ -119,7 +125,7 @@
+ 	  Pragmas FunctionDeclarations
+ 	| FunctionDeclarations
+ 	| error
+-		{ ws_error_syntax(pctx, @1.first_line); }
++		{ ws_error_syntax(compiler, @1.first_line); }
+ 	;
+ 
+ /* Pragmas. */
+@@ -132,7 +138,7 @@
+ Pragma:
+ 	  tUSE PragmaDeclaration ';'
+ 	| error
+-		{ ws_error_syntax(pctx, @1.first_line); }
++		{ ws_error_syntax(compiler, @1.first_line); }
+ 	;
+ 
+ PragmaDeclaration:
+@@ -143,7 +149,7 @@
+ 
+ ExternalCompilationUnitPragma:
+ 	  tURL tIDENTIFIER tSTRING
+-	  	{ ws_pragma_use(pctx, @2.first_line, $2, $3); }
++	  	{ ws_pragma_use(compiler, @2.first_line, $2, $3); }
+ 	;
+ 
+ AccessControlPragma:
+@@ -153,28 +159,23 @@
+ AccessControlSpecifier:
+ 	  tDOMAIN tSTRING
+ 	  	{
+-		    WsCompiler *compiler = (WsCompiler *) pctx;
+-
+ 		    /* Pass this to the byte-code */
+ 		    if (!ws_bc_add_pragma_access_domain(compiler->bc, $2->data,
+ 						        $2->len))
+-		        ws_error_memory(pctx);
++		        ws_error_memory(compiler);
+ 		    ws_lexer_free_utf8(compiler, $2);
+ 		}
+ 	| tPATH tSTRING
+ 	  	{
+-		    WsCompiler *compiler = (WsCompiler *) pctx;
+-
+ 		    /* Pass this to the byte-code */
+ 		    if (!ws_bc_add_pragma_access_path(compiler->bc, $2->data,
+ 						      $2->len))
+-		        ws_error_memory(pctx);
++		        ws_error_memory(compiler);
+ 
+ 		    ws_lexer_free_utf8(compiler, $2);
+ 		}
+ 	| tDOMAIN tSTRING tPATH tSTRING
+ 	  	{
+-		    WsCompiler *compiler = (WsCompiler *) pctx;
+ 		    WsBool success = WS_TRUE;
+ 
+ 		    /* Pass these to the byte-code */
+@@ -187,7 +188,7 @@
+ 		        success = WS_FALSE;
+ 
+ 		    if (!success)
+-		        ws_error_memory(pctx);
++		        ws_error_memory(compiler);
+ 
+ 		    ws_lexer_free_utf8(compiler, $2);
+ 		    ws_lexer_free_utf8(compiler, $4);
+@@ -207,8 +208,6 @@
+ MetaName:
+ 	  tNAME MetaBody
+ 		{
+-		    WsCompiler *compiler = (WsCompiler *) pctx;
+-
+ 		    /* Meta information for the origin servers.  Show it
+                      * to the user if requested. */
+ 		    if (compiler->params.meta_name_cb)
+@@ -225,8 +224,6 @@
+ MetaHttpEquiv:
+ 	  tHTTP tEQUIV MetaBody
+ 	  	{
+-		    WsCompiler *compiler = (WsCompiler *) pctx;
+-
+ 		    /* Meta information HTTP header that should be
+                      * included to an HTTP response header.  Show it to
+                      * the user if requested. */
+@@ -246,7 +243,6 @@
+ 	  tUSER tAGENT MetaBody
+ 		{
+ 		    WsBool success;
+-		    WsCompiler *compiler = (WsCompiler *) pctx;
+ 
+ 		    /* Pass this pragma to the byte-code */
+ 		    if ($3) {
+@@ -272,16 +268,16 @@
+ 		        ws_pragma_meta_body_free(compiler, $3);
+ 
+ 		        if (!success)
+-		  	    ws_error_memory(pctx);
++		  	    ws_error_memory(compiler);
+ 		    }
+ 		}
+ 	;
+ 
+ MetaBody:
+ 	  MetaPropertyName MetaContent
+-		{ $$ = ws_pragma_meta_body(pctx, $1, $2, NULL); }
++		{ $$ = ws_pragma_meta_body(compiler, $1, $2, NULL); }
+ 	| MetaPropertyName MetaContent MetaScheme
+-		{ $$ = ws_pragma_meta_body(pctx, $1, $2, $3); }
++		{ $$ = ws_pragma_meta_body(compiler, $1, $2, $3); }
+ 	;
+ 
+ MetaPropertyName: tSTRING;
+@@ -301,12 +297,12 @@
+ 		{
+ 		    char *name = ws_strdup($3);
+ 
+-		    ws_lexer_free_block(pctx, $3);
++		    ws_lexer_free_block(compiler, $3);
+ 
+ 		    if (name)
+-		        ws_function(pctx, $1, name, @3.first_line, $5, $7);
++		        ws_function(compiler, $1, name, @3.first_line, $5, $7);
+ 		    else
+-		        ws_error_memory(pctx);
++		        ws_error_memory(compiler);
+ 		}
+ 	;
+ 
+@@ -317,7 +313,7 @@
+ 
+ FormalParameterListOpt:
+ 	  /* empty */
+-		{ $$ = ws_list_new(pctx); }
++		{ $$ = ws_list_new(compiler); }
+ 	| FormalParameterList
+ 	;
+ 
+@@ -332,17 +328,17 @@
+                     char *id;
+                     WsFormalParm *parm;
+ 
+-		    id = ws_f_strdup(((WsCompiler *) pctx)->pool_stree, $1);
+-                    parm = ws_formal_parameter(pctx, @1.first_line, id);
++		    id = ws_f_strdup((compiler)->pool_stree, $1);
++                    parm = ws_formal_parameter(compiler, @1.first_line, id);
+ 
+-		    ws_lexer_free_block(pctx, $1);
++		    ws_lexer_free_block(compiler, $1);
+ 
+ 		    if (id == NULL || parm == NULL) {
+-		        ws_error_memory(pctx);
++		        ws_error_memory(compiler);
+ 		        $$ = NULL;
+ 		    } else {
+-		        $$ = ws_list_new(pctx);
+-		        ws_list_append(pctx, $$, parm);
++		        $$ = ws_list_new(compiler);
++		        ws_list_append(compiler, $$, parm);
+ 		    }
+ 		}
+ 	| FormalParameterList ',' tIDENTIFIER
+@@ -350,16 +346,16 @@
+                     char *id;
+                     WsFormalParm *parm;
+ 
+-		    id = ws_f_strdup(((WsCompiler *) pctx)->pool_stree, $3);
+-                    parm = ws_formal_parameter(pctx, @1.first_line, id);
++		    id = ws_f_strdup(compiler->pool_stree, $3);
++                    parm = ws_formal_parameter(compiler, @1.first_line, id);
+ 
+-		    ws_lexer_free_block(pctx, $3);
++		    ws_lexer_free_block(compiler, $3);
+ 
+ 		    if (id == NULL || parm == NULL) {
+-		        ws_error_memory(pctx);
++		        ws_error_memory(compiler);
+ 		        $$ = NULL;
+ 		    } else
+-		        ws_list_append(pctx, $1, parm);
++		        ws_list_append(compiler, $1, parm);
+ 		}
+ 	;
+ 
+@@ -369,22 +365,22 @@
+ 	  Block
+ 		{
+ 		    if ($1)
+-		        $$ = ws_stmt_block(pctx, $1->first_line, $1->last_line,
++		        $$ = ws_stmt_block(compiler, $1->first_line, $1->last_line,
+ 				           $1);
+ 		    else
+ 		        $$ = NULL;
+ 		}
+ 	| VariableStatement
+ 	| ';'			/* EmptyStatement */
+-		{ $$ = ws_stmt_empty(pctx, @1.first_line); }
++		{ $$ = ws_stmt_empty(compiler, @1.first_line); }
+ 	| Expression ';'	/* ExpressionStatement */
+-		{ $$ = ws_stmt_expr(pctx, $1->line, $1); }
++		{ $$ = ws_stmt_expr(compiler, $1->line, $1); }
+ 	| IfStatement
+ 	| IterationStatement
+ 	| tCONTINUE ';'		/* ContinueStatement */
+-		{ $$ = ws_stmt_continue(pctx, @1.first_line); }
++		{ $$ = ws_stmt_continue(compiler, @1.first_line); }
+ 	| tBREAK ';'		/* BreakStatement */
+-		{ $$ = ws_stmt_break(pctx, @1.first_line); }
++		{ $$ = ws_stmt_break(compiler, @1.first_line); }
+ 	| ReturnStatement
+ 	;
+ 
+@@ -398,56 +394,56 @@
+ 		}
+ 	| error
+ 		{
+-		    ws_error_syntax(pctx, @1.first_line);
++		    ws_error_syntax(compiler, @1.first_line);
+ 		    $$ = NULL;
+ 		}
+ 	;
+ 
+ StatementListOpt:
+ 	  /* empty */
+-		{ $$ = ws_list_new(pctx); }
++		{ $$ = ws_list_new(compiler); }
+ 	| StatementList
+ 	;
+ 
+ StatementList:
+ 	  Statement
+ 		{
+-		    $$ = ws_list_new(pctx);
+-		    ws_list_append(pctx, $$, $1);
++		    $$ = ws_list_new(compiler);
++		    ws_list_append(compiler, $$, $1);
+ 		}
+ 	| StatementList Statement
+-		{ ws_list_append(pctx, $1, $2); }
++		{ ws_list_append(compiler, $1, $2); }
+ 	;
+ 
+ VariableStatement:
+ 	  tVAR VariableDeclarationList ';'
+-		{ $$ = ws_stmt_variable(pctx, @1.first_line, $2); }
++		{ $$ = ws_stmt_variable(compiler, @1.first_line, $2); }
+ 	| tVAR error
+-		{ ws_error_syntax(pctx, @2.first_line); }
++		{ ws_error_syntax(compiler, @2.first_line); }
+ 	;
+ 
+ VariableDeclarationList:
+ 	  VariableDeclaration
+ 		{
+-		    $$ = ws_list_new(pctx);
+-		    ws_list_append(pctx, $$, $1);
++		    $$ = ws_list_new(compiler);
++		    ws_list_append(compiler, $$, $1);
+ 		}
+ 	| VariableDeclarationList ',' VariableDeclaration
+-		{ ws_list_append(pctx, $1, $3); }
++		{ ws_list_append(compiler, $1, $3); }
+ 	;
+ 
+ VariableDeclaration:
+ 	  tIDENTIFIER VariableInitializedOpt
+ 		{
+-		    char *id = ws_f_strdup(((WsCompiler *) pctx)->pool_stree,
++		    char *id = ws_f_strdup(compiler->pool_stree,
+ 					   $1);
+ 
+-		    ws_lexer_free_block(pctx, $1);
++		    ws_lexer_free_block(compiler, $1);
+ 		    if (id == NULL) {
+-		        ws_error_memory(pctx);
++		        ws_error_memory(compiler);
+ 		        $$ = NULL;
+ 		    } else
+-		        $$ = ws_variable_declaration(pctx, id, $2);
++		        $$ = ws_variable_declaration(compiler, id, $2);
+ 		}
+ 	;
+ 
+@@ -460,29 +456,29 @@
+ 
+ IfStatement:
+ 	  tIF '(' Expression ')' Statement tELSE Statement
+-		{ $$ = ws_stmt_if(pctx, @1.first_line, $3, $5, $7); }
++		{ $$ = ws_stmt_if(compiler, @1.first_line, $3, $5, $7); }
+ 	| tIF '(' Expression ')' Statement
+-		{ $$ = ws_stmt_if(pctx, @1.first_line, $3, $5, NULL); }
++		{ $$ = ws_stmt_if(compiler, @1.first_line, $3, $5, NULL); }
+ 	;
+ 
+ IterationStatement:
+ 	  tWHILE '(' Expression ')' Statement
+-		{ $$ = ws_stmt_while(pctx, @1.first_line, $3, $5); }
++		{ $$ = ws_stmt_while(compiler, @1.first_line, $3, $5); }
+ 	| ForStatement
+ 	;
+ 
+ ForStatement:
+ 	  tFOR '(' ExpressionOpt ';' ExpressionOpt ';' ExpressionOpt ')'
+ 			Statement
+-	  	{ $$ = ws_stmt_for(pctx, @1.first_line, NULL, $3, $5, $7, $9); }
++	  	{ $$ = ws_stmt_for(compiler, @1.first_line, NULL, $3, $5, $7, $9); }
+ 	| tFOR '(' tVAR VariableDeclarationList ';' ExpressionOpt ';'
+ 	       		ExpressionOpt ')' Statement
+-	  	{ $$ = ws_stmt_for(pctx, @1.first_line, $4, NULL, $6, $8, $10); }
++	  	{ $$ = ws_stmt_for(compiler, @1.first_line, $4, NULL, $6, $8, $10); }
+ 	;
+ 
+ ReturnStatement:
+ 	  tRETURN ExpressionOpt ';'
+-		{ $$ = ws_stmt_return(pctx, @1.first_line, $2); }
++		{ $$ = ws_stmt_return(compiler, @1.first_line, $2); }
+ 	;
+ 
+ /* Expressions. */
+@@ -496,135 +492,135 @@
+ Expression:
+ 	  AssignmentExpression
+ 	| Expression ',' AssignmentExpression
+-		{ $$ = ws_expr_comma(pctx, @2.first_line, $1, $3); }
++		{ $$ = ws_expr_comma(compiler, @2.first_line, $1, $3); }
+ 	;
+ 
+ AssignmentExpression:
+ 	  ConditionalExpression
+ 	| tIDENTIFIER	'='		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, '=', $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, '=', $3); }
+ 	| tIDENTIFIER	tMULA		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tMULA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tMULA, $3); }
+ 	| tIDENTIFIER	tDIVA		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tDIVA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tDIVA, $3); }
+ 	| tIDENTIFIER	tREMA		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tREMA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tREMA, $3); }
+ 	| tIDENTIFIER	tADDA		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tADDA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tADDA, $3); }
+ 	| tIDENTIFIER	tSUBA		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tSUBA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tSUBA, $3); }
+ 	| tIDENTIFIER	tLSHIFTA	AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tLSHIFTA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tLSHIFTA, $3); }
+ 	| tIDENTIFIER	tRSSHIFTA	AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tRSSHIFTA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tRSSHIFTA, $3); }
+ 	| tIDENTIFIER	tRSZSHIFTA	AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tRSZSHIFTA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tRSZSHIFTA, $3); }
+ 	| tIDENTIFIER	tANDA		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tANDA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tANDA, $3); }
+ 	| tIDENTIFIER	tXORA		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tXORA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tXORA, $3); }
+ 	| tIDENTIFIER	tORA		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tORA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tORA, $3); }
+ 	| tIDENTIFIER	tIDIVA		AssignmentExpression
+-		{ $$ = ws_expr_assign(pctx, @1.first_line, $1, tIDIVA, $3); }
++		{ $$ = ws_expr_assign(compiler, @1.first_line, $1, tIDIVA, $3); }
+ 	;
+ 
+ ConditionalExpression:
+ 	  LogicalORExpression
+ 	| LogicalORExpression '?' AssignmentExpression ':' AssignmentExpression
+-		{ $$ = ws_expr_conditional(pctx, @2.first_line, $1, $3, $5); }
++		{ $$ = ws_expr_conditional(compiler, @2.first_line, $1, $3, $5); }
+ 	;
+ 
+ LogicalORExpression:
+ 	  LogicalANDExpression
+ 	| LogicalORExpression tOR LogicalANDExpression
+-		{ $$ = ws_expr_logical(pctx, @2.first_line, WS_ASM_SCOR, $1, $3); }
++		{ $$ = ws_expr_logical(compiler, @2.first_line, WS_ASM_SCOR, $1, $3); }
+ 	;
+ 
+ LogicalANDExpression:
+ 	  BitwiseORExpression
+ 	| LogicalANDExpression tAND BitwiseORExpression
+-		{ $$ = ws_expr_logical(pctx, @2.first_line, WS_ASM_SCAND, $1, $3); }
++		{ $$ = ws_expr_logical(compiler, @2.first_line, WS_ASM_SCAND, $1, $3); }
+ 	;
+ 
+ BitwiseORExpression:
+ 	  BitwiseXORExpression
+ 	| BitwiseORExpression '|' BitwiseXORExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_OR, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_OR, $1, $3); }
+ 	;
+ 
+ BitwiseXORExpression:
+ 	  BitwiseANDExpression
+ 	| BitwiseXORExpression '^' BitwiseANDExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_XOR, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_XOR, $1, $3); }
+ 	;
+ 
+ BitwiseANDExpression:
+ 	  EqualityExpression
+ 	| BitwiseANDExpression '&' EqualityExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_AND, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_AND, $1, $3); }
+ 	;
+ 
+ EqualityExpression:
+ 	  RelationalExpression
+ 	| EqualityExpression tEQ RelationalExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_EQ, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_EQ, $1, $3); }
+ 	| EqualityExpression tNE RelationalExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_NE, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_NE, $1, $3); }
+ 	;
+ 
+ RelationalExpression:
+ 	  ShiftExpression
+ 	| RelationalExpression '<' ShiftExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_LT, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_LT, $1, $3); }
+ 	| RelationalExpression '>' ShiftExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_GT, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_GT, $1, $3); }
+ 	| RelationalExpression tLE ShiftExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_LE, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_LE, $1, $3); }
+ 	| RelationalExpression tGE ShiftExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_GE, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_GE, $1, $3); }
+ 	;
+ 
+ ShiftExpression:
+ 	  AdditiveExpression
+ 	| ShiftExpression tLSHIFT AdditiveExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_LSHIFT, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_LSHIFT, $1, $3); }
+ 	| ShiftExpression tRSSHIFT AdditiveExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_RSSHIFT, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_RSSHIFT, $1, $3); }
+ 	| ShiftExpression tRSZSHIFT AdditiveExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_B_RSZSHIFT, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_B_RSZSHIFT, $1, $3); }
+ 	;
+ 
+ AdditiveExpression:
+ 	  MultiplicativeExpression
+ 	| AdditiveExpression '+' MultiplicativeExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_ADD, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_ADD, $1, $3); }
+ 	| AdditiveExpression '-' MultiplicativeExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_SUB, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_SUB, $1, $3); }
+ 	;
+ 
+ MultiplicativeExpression:
+ 	  UnaryExpression
+ 	| MultiplicativeExpression '*' UnaryExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_MUL, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_MUL, $1, $3); }
+ 	| MultiplicativeExpression '/' UnaryExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_DIV, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_DIV, $1, $3); }
+ 	| MultiplicativeExpression tIDIV UnaryExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_IDIV, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_IDIV, $1, $3); }
+ 	| MultiplicativeExpression '%' UnaryExpression
+-		{ $$ = ws_expr_binary(pctx, @2.first_line, WS_ASM_REM, $1, $3); }
++		{ $$ = ws_expr_binary(compiler, @2.first_line, WS_ASM_REM, $1, $3); }
+ 	;
+ 
+ UnaryExpression:
+ 	  PostfixExpression
+ 	| tTYPEOF UnaryExpression
+-		{ $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_TYPEOF, $2); }
++		{ $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_TYPEOF, $2); }
+ 	| tISVALID UnaryExpression
+-		{ $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_ISVALID, $2); }
++		{ $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_ISVALID, $2); }
+ 	| tPLUSPLUS tIDENTIFIER
+-		{ $$ = ws_expr_unary_var(pctx, @1.first_line, WS_TRUE, $2); }
++		{ $$ = ws_expr_unary_var(compiler, @1.first_line, WS_TRUE, $2); }
+ 	| tMINUSMINUS tIDENTIFIER
+-		{ $$ = ws_expr_unary_var(pctx, @1.first_line, WS_FALSE, $2); }
++		{ $$ = ws_expr_unary_var(compiler, @1.first_line, WS_FALSE, $2); }
+ 	| '+' UnaryExpression
+ 		{
+                     /* There is no direct way to compile unary `+'.
+@@ -638,65 +634,65 @@
+                      * because binary `+' accepts strings, which makes the
+ 		     * type conversion different.
+                      */
+-                    $$ = ws_expr_binary(pctx, @1.first_line, WS_ASM_SUB, $2,
+-                              ws_expr_const_integer(pctx, @1.first_line, 0));
++                    $$ = ws_expr_binary(compiler, @1.first_line, WS_ASM_SUB, $2,
++                              ws_expr_const_integer(compiler, @1.first_line, 0));
+ 		}
+ 	| '-' UnaryExpression
+-		{ $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_UMINUS, $2); }
++		{ $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_UMINUS, $2); }
+ 	| '~' UnaryExpression
+-		{ $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_B_NOT, $2); }
++		{ $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_B_NOT, $2); }
+ 	| '!' UnaryExpression
+-		{ $$ = ws_expr_unary(pctx, @1.first_line, WS_ASM_NOT, $2); }
++		{ $$ = ws_expr_unary(compiler, @1.first_line, WS_ASM_NOT, $2); }
+ 	;
+ 
+ PostfixExpression:
+ 	  CallExpression
+ 	| tIDENTIFIER tPLUSPLUS
+-		{ $$ = ws_expr_postfix_var(pctx, @1.first_line, WS_TRUE, $1); }
++		{ $$ = ws_expr_postfix_var(compiler, @1.first_line, WS_TRUE, $1); }
+ 	| tIDENTIFIER tMINUSMINUS
+-		{ $$ = ws_expr_postfix_var(pctx, @1.first_line, WS_FALSE, $1); }
++		{ $$ = ws_expr_postfix_var(compiler, @1.first_line, WS_FALSE, $1); }
+ 	;
+ 
+ CallExpression:
+ 	  PrimaryExpression
+ 	| tIDENTIFIER Arguments                 /* LocalScriptFunctionCall */
+ 		{
+-		    WsFunctionHash *f = ws_function_hash(pctx, $1);
++		    WsFunctionHash *f = ws_function_hash(compiler, $1);
+ 
+ 		    /* Add an usage count for the local script function. */
+ 		    if (f)
+ 		      f->usage_count++;
+ 
+-		    $$ = ws_expr_call(pctx, @1.first_line, ' ', NULL, $1, $2);
++		    $$ = ws_expr_call(compiler, @1.first_line, ' ', NULL, $1, $2);
+ 		}
+ 	| tIDENTIFIER '#' tIDENTIFIER Arguments /* ExternalScriptFunctionCall*/
+-		{ $$ = ws_expr_call(pctx, @3.first_line, '#', $1, $3, $4); }
++		{ $$ = ws_expr_call(compiler, @3.first_line, '#', $1, $3, $4); }
+ 	| tIDENTIFIER '.' tIDENTIFIER Arguments /* LibraryFunctionCall */
+-		{ $$ = ws_expr_call(pctx, @3.first_line, '.', $1, $3, $4); }
++		{ $$ = ws_expr_call(compiler, @3.first_line, '.', $1, $3, $4); }
+ 	;
+ 
+ PrimaryExpression:
+ 	  tIDENTIFIER
+-		{ $$ = ws_expr_symbol(pctx, @1.first_line, $1); }
++		{ $$ = ws_expr_symbol(compiler, @1.first_line, $1); }
+ 	| tINVALID
+-		{ $$ = ws_expr_const_invalid(pctx, @1.first_line); }
++		{ $$ = ws_expr_const_invalid(compiler, @1.first_line); }
+ 	| tTRUE
+-		{ $$ = ws_expr_const_true(pctx, @1.first_line); }
++		{ $$ = ws_expr_const_true(compiler, @1.first_line); }
+ 	| tFALSE
+-		{ $$ = ws_expr_const_false(pctx, @1.first_line); }
++		{ $$ = ws_expr_const_false(compiler, @1.first_line); }
+ 	| tINTEGER
+-		{ $$ = ws_expr_const_integer(pctx, @1.first_line, $1); }
++		{ $$ = ws_expr_const_integer(compiler, @1.first_line, $1); }
+ 	| tFLOAT
+-		{ $$ = ws_expr_const_float(pctx, @1.first_line, $1); }
++		{ $$ = ws_expr_const_float(compiler, @1.first_line, $1); }
+ 	| tSTRING
+-		{ $$ = ws_expr_const_string(pctx, @1.first_line, $1); }
++		{ $$ = ws_expr_const_string(compiler, @1.first_line, $1); }
+ 	| '(' Expression ')'
+ 		{ $$ = $2; }
+ 	;
+ 
+ Arguments:
+ 	  '(' ')'
+-		{ $$ = ws_list_new(pctx); }
++		{ $$ = ws_list_new(compiler); }
+ 	| '(' ArgumentList ')'
+ 		{ $$ = $2; }
+ 	;
+@@ -704,17 +700,17 @@
+ ArgumentList:
+ 	  AssignmentExpression
+ 		{
+-		    $$ = ws_list_new(pctx);
+-		    ws_list_append(pctx, $$, $1);
++		    $$ = ws_list_new(compiler);
++		    ws_list_append(compiler, $$, $1);
+ 		}
+ 	| ArgumentList ',' AssignmentExpression
+-		{ ws_list_append(pctx, $1, $3); }
++		{ ws_list_append(compiler, $1, $3); }
+ 	;
+ 
+ %%
+ 
+ void
+-yyerror(char *msg)
++yyerror(YYLTYPE* locp, WsCompiler* compiler, const char* msg)
+ {
+ #if WS_DEBUG
+   fprintf(stderr, "*** %s:%ld: wsc: %s - this msg will be removed ***\n",
+diff -ur gateway-1.4.5.orig/wmlscript/wsint.h gateway-1.4.5/wmlscript/wsint.h
+--- gateway-1.4.5.orig/wmlscript/wsint.h	2018-01-17 04:24:38.000000000 -0500
++++ gateway-1.4.5/wmlscript/wsint.h	2018-08-17 15:45:26.000000000 -0500
+@@ -269,9 +269,6 @@
+ 
+ /********************* Lexer and parser *********************************/
+ 
+-#define YYPARSE_PARAM   pctx
+-#define YYLEX_PARAM     pctx
+-
+ /* The lexer. */
+ extern int yylex();
+ 
+@@ -293,6 +290,6 @@
+ void ws_lexer_free_utf8(WsCompiler *compiler, WsUtf8String *string);
+ 
+ /* The parser. */
+-int ws_yy_parse(void *context);
++int ws_yy_parse(WsCompiler* compiler);
+ 
+ #endif /* not WSINT_H */
+diff -ur gateway-1.4.5.orig/wmlscript/wslexer.c gateway-1.4.5/wmlscript/wslexer.c
+--- gateway-1.4.5.orig/wmlscript/wslexer.c	2018-01-17 04:24:38.000000000 -0500
++++ gateway-1.4.5/wmlscript/wslexer.c	2018-08-17 15:15:28.000000000 -0500
+@@ -218,9 +218,8 @@
+ 
+ /********************* Global functions *********************************/
+ 
+-int ws_yy_lex(YYSTYPE *yylval, YYLTYPE *yylloc, void *context)
++int ws_yy_lex(YYSTYPE *yylval, YYLTYPE *yylloc, WsCompiler* compiler)
+ {
+-    WsCompiler *compiler = (WsCompiler *) context;
+     WsUInt32 ch, ch2;
+     WsBuffer buffer;
+     unsigned char *p;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kannel.git/commitdiff/696776f76877f930caa7f3ea0bca69460c4f16e5



More information about the pld-cvs-commit mailing list